Skip to content

Missing stackers in "stackers-for-signer-in-cycle" endpoint when pool uses multiple signers #2356

@aryzing

Description

@aryzing

Describe the bug

When a Stacks Pool (a signle Stacks address) uses multiple signers, the "stackers-for-signer-in-cycle" endpoint incorrectly returns the stackers assigned to each signer.

To Reproduce

Consistent reproduction of the issue can be achieved using clarinet:

1. Create a pool key + address

Can use one of the pre-seeded wallets, e.g. wallet_5 as the Pool Admin.

2. Set up clarinet with three signers.

Add the private keys to settings/Devnet.toml:

[devnet]
stacks_signers_keys = [
  "1234...0001",
  "1234...0002",
  "1234...0003"
]
# ... other props

3. Stack against these signers

Create a few (e.g. 100) random wallets, fund them by pulling funds from the pre-seeded wallets, and delegate their funds to the pool.

The pool admin then stacks these funds, evenly distributing them among the three signers.

Expected behavior

When querying the "stackers-for-signer-in-cycle" endpoint, each signer should have the stackers it was assigned.

Actual behavior

Two things stand out:

Bug 1: The API seems to assign all stackers to a single signer. The results for each signer will look something like:

Signer 1: 100 stackers
Signer 2: 0 stackers
Signer 3: 0 stackers

Bug 2: As stackers continue to be added, the API will at some point start to "drop" them. For example, after stacking ~400 stackers, the API will return something like:

Signer 1: 233 stackers (expecting 400)
Signer 2: 0 stackers
Signer 3: 0 stackers

Desktop (please complete the following information):

  • OS: MacOS 15.5
  • Clarinet: clarinet 3.7.0

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions