Documentation
Fast Pool Documentation
Last updated: July 30, 2026
What is Fast Pool?
Fast Pool is a staking pool built on the Stacks blockchain. It lets users stake their STX tokens to participate in Proof‑of‑Transfer (PoX) staking without running a node or a signer. Rewards are paid in sBTC. Fast Pool handles reward distribution, cycle tracking, and provides transparency through reporting.
Since the Stacks 4.0 hard fork (Bitcoin block 960,230, reward cycle 141) Fast Pool runs on pox-5, also known as Bitcoin Staking. pox-5 works differently from the pox-4 pools Fast Pool used before: you now lock your own STX in a single transaction that names Fast Pool's signer, rather than delegating to a pool contract.
Key Features
- Non‑custodial: You lock your own STX and keep control of them. There is no delegation and no
allow-contract-callerapproval — the pool never gains the ability to move your funds. - No minimum: Anyone can join regardless of balance. Rewards are proportional to the amount staked.
- No cooldown: You can increase your stake, extend it, or move it from another pool to Fast Pool without unlocking and without missing a reward cycle.
- Transparent management: All pool operations are governed by on‑chain Clarity contracts, and rewards are accounted for on-chain per staker.
How staking works
- Lock — you call
stakeon the pox-5 contract, naming Fast Pool's signer. Your STX lock from the start of the next reward cycle. - Change —
stake-updateincreases the amount, extends the term, or switches your position to a different signer. Switching to Fast Pool from another pool carries your position straight into the next cycle, so no rewards are skipped. - Unlock —
unstakestops staking. Your STX are released at the start of the next reward cycle.
Two limits are worth knowing:
- The preparation phase. During the last 100 Bitcoin blocks of every cycle (roughly 17 hours), the next cycle's signer set is being finalised and pox-5 rejects all staking changes — locking, increasing, switching and unlocking alike. The website shows how long is left and reopens automatically.
- Keep some STX spendable. Locking is a transaction, and so is unlocking. Because rewards arrive as sBTC rather than STX, a position that locks every last STX leaves nothing to pay the unlock fee. The website therefore keeps a small amount spendable when you use "Max".
Smart Contracts
Fast Pool on pox-5 involves two contracts. You interact with the pox-5 contract directly; Fast Pool's signer-manager is the "pool" your stake is associated with. Check the addresses below against the one your wallet shows before signing.
Fast Pool signer-manager — Fast Pool's signer on pox-5. It admits stakers, claims the pool's sBTC rewards each cycle and pays out each staker's share. This is the contract you name when you stake with Fast Pool:
Its registered signer key is 0x023d6e4adbd5e7bedd5a1e1b85940e1e8c6c34924fd0d584e5e15d84c8572083d9, which you can verify with get-signer-info on pox-5.
Two things it promises in code, which you can read for yourself rather than take on trust:
- The fee can never exceed 5%.
update-feesasserts againstMAX_FEE_BIPS u500, so no admin can set more. - A fee increase is announced two cycles ahead. An increase is queued and only becomes active
FEE_ACTIVATION_DELAY_CYCLES(2) cycles later, which is about four weeks to move if you dislike it. A decrease applies immediately.
You can check the fee in force with get-active-fee-bips, and any queued change with get-pending-fees.
The previous signer, SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.fastpool-1-signer-manager, is still on pox-5 with signer key 0x023d6ecdc36fa1e1c6a9f116c7f13ae843001ed9d617f66f6c68cabf751bf82555. If you are staked with it, switching moves your position without unlocking it or missing a cycle.
pox-5 — the Stacks protocol contract that locks STX and tracks stakers, signers and rewards. Your stake, stake-update and unstake transactions go here:
Getting paid in Bitcoin
Rewards arrive as sBTC on Stacks by default. You can instead be paid in native BTC on L1: tick "Receive rewards in native BTC" when you lock, give a Bitcoin address, and each payout is sent through the sBTC withdrawal system to that address.
Two numbers come with it:
- Bitcoin fee budget (
max-fee) — set aside from each payout to pay the Bitcoin transaction. You cannot be paid out until you have earned at least this much, so a larger budget means fewer, larger payouts. - Smallest payout (
min-claim) — below this, only you can trigger a payout. It stops anyone else from paying you out early and spending your fee budget on a trivial amount. It has to be more than the fee budget plus Bitcoin's dust limit of 546 sats, or the payout would arrive unspendable.
Your settings live in the signer-manager's payout-configs map, and you can change them at any time without re-staking by calling set-payout-config — or clear-payout-config to go back to sBTC.
One thing to know if you stake again later: the signer reads your settings from every stake and stake-update, and no settings means your address is cleared. The website carries them forward for you and warns you if you are about to turn them off.
Rewards
Rewards are accounted for on-chain in sBTC, in three steps per cycle:
calculate-rewardson pox-5 settles the cycle.claim-rewardson the signer-manager pulls Fast Pool's sBTC for that cycle.claim-staker-rewardspays each staker their share, minus the pool fee.
You can read your own entitlement at any time with get-earned-staker-rewards on the signer-manager, and the fee for a cycle with get-fee-bips-for-cycle (in basis points; 100 bips = 1%). The fee is taken from sBTC rewards and is currently set to 0 for the first cycles.
By default rewards are paid as sBTC on Stacks. pox-5 also supports directing them to a Bitcoin address on L1.
History
Fast Pool has been running since reward cycle 3 (February 2021), first as Friedger's pool-tool and, from cycle 56 (April 2023), as Fast Pool. Across cycles 3 to 139 — the whole pox-1 to pox-4 era, up to the Stacks 4.0 hard fork:
- 243.74893299 BTC received in rewards from miners.
- 14,131,031 STX distributed to members: 3,057,722 STX in the pool-tool years and 11,073,309 STX under Fast Pool.
Members were paid in different currencies as the ecosystem changed: STX at first, bought with the reward BTC through xBTC and later sBTC, then BTC and sBTC directly. The per-cycle record is on the rewards page.
BTC figures for cycles 3 to 30 predate the pool's own payout records and were recovered from the Bitcoin reward payments to the pool's PoX addresses — 1AJm7XWhbPTFqgtJT6oS9wQ3XThk7rA2yF and 33WSGLeVoEpuZDjB54HKZ1y5YsERELoVNq. Measured against the cycles where both exist, that method lands within about 1% of the recorded figures, so treat the earliest cycles as very close rather than exact.
Historical addresses (pox-4, up to cycle 140)
Before the Stacks 4.0 hard fork, Fast Pool ran on pox-4: members delegated to a pool contract, Bitcoin rewards arrived at the pool's reward addresses, and were then consolidated and bridged to sBTC for distribution. These addresses are kept for verifying past cycles — they are no longer used for new rewards. You can verify any pox-4 cycle on-chain by following the BTC from the reward addresses to the proxy, then watching the distributor contract pay out members in sBTC on Stacks.
Pool contracts — the Pool Administrators members delegated to:
BTC reward addresses — where Bitcoin rewards arrived each cycle:
- Fast Pool v1:
bc1qs0kkdpsrzh3ngqgth7mkavlwlzr7lms2zv3wxe - Fast Pool v2 (standard):
bc1q7w0jpwwjyq48qhyecnuwazfqv56880q67pmtfc - Fast Pool v2 (dripping sBTC):
bc1prmczk9umkeldwgn2uj2dxd2tm3ys2mdrlypxdlr90tk5yekjr2jqvaprcr
Proxy address — consolidated BTC from the reward addresses before it was bridged to sBTC for distribution on Stacks:
bc1quj0ysumcxjs9qklfhjnukcrhwmkwttd0etm5nl: standardbc1qs3rq94gjs849uslyaenhfkka0cwjkk6djflyqc: one-off
sBTC deposit addresses — taproot addresses the proxy sent BTC to so it was minted as sBTC on Stacks:
- manual deposit from proxy:
bc1pzstgwyj557qcf5ufpz0qfumq7tgkzpceeqetcu8h604akm8vpkys02pnf9 - manual deposit from proxy (second):
bc1p00mhewhg5t7smzzqxmxw7lzhk844a3m25k9vn4v2fc699g632lzq8m90n4 - Reward drip (fed the
fp-deposit-vault-admincontract):bc1prmczk9umkeldwgn2uj2dxd2tm3ys2mdrlypxdlr90tk5yekjr2jqvaprcr - previous deposit address (5.32100699 BTC):
bc1p3vvpunzs08pm8jtcm60lyytdnqcey3pae8le2hvu2csm0tse7ynstzau6g
Stacks distributor address — the Stacks principal that paid members in sBTC:
Source Code & Tools
The core Clarity contracts and utilities are available in these repositories:
https://github.com/friedger/clarity-stacking-pools
https://github.com/friedger/clarity-trustless-pool/
Feel free to browse the code, audit the contracts, or fork for your own pool.