Deposit sBTC you already hold, or send bitcoin from your own wallet and let the bridge turn it into sBTC. Both end up in the same place. Every deposit needs some STX alongside it, and the page works out how much as you type. Until the pool stakes, your deposit stays yours — withdraw it any time. After that it earns with the pool until the bond ends.
{{ joinClosedNote }}
A queued deposit is withdrawable on demand and carries no vote. It becomes committed shares at the roll, and only then does it earn.
Still holding a position in {{ retiredName }}? Nothing moves between the two contracts on its own — take it out there, then deposit it here.
{{ join.amountLockNote }}
{{ join.shortText }}
{{ join.networkWarning }}
{{ l1.addressNote }}
{{ l1.walletWrongNote }}
{{ l1.suggestAddress }}
sBTC you already hold moves in one call. L1 bitcoin is five steps and the order is the whole point — the page walks you through them.
One call moves both legs: the sBTC you already hold to the treasury, and the STX beside it to the pool. Nothing else to do.
{{ join.closedWhy }}
You commit to the address the bitcoin will come from, reveal it a block later, and then send. Nothing has to be built before the first two steps — the address is one you already have.
This L1 deposit route is mainly a demo of what is possible. Bridging Bitcoin L1 is easier with the sBTC bridge. The L1 deposit route here carries a real risk: a race condition means we have to trust the operator not to sweep the deposited sBTC before it is claimed on Stacks (see issue #8).
{{ l1.stageNote }}
Commit a hash of that address and the amount. This takes the STX leg, and gives the address away to nobody. {{ l1.s1.state }}
Reveal it one bitcoin block later, which claims the address before anyone watching the mempool can. {{ l1.s2.state }}
{{ l1.digestShort }}
Your bitcoin address and a secret, mixed into one number. This is what stands on chain in place of the address, so nobody reading it can tell which address you mean — or claim it before you do. Revealing turns it back into the address.
{{ l1.saltNote }}
Deposit — only now, and only from the address you revealed. The bitcoin goes to a one-off address that credits the treasury. {{ l1.s3.state }}
{{ l1.revealedShort }}
Every input of the transaction is checked against this address, so sats sent from another address of yours are not credited to you.
{{ l1.targetShort }}
Yours alone: it commits to the treasury as the account to credit, the signers' current key, and a reclaim path only you can spend — after ~950 blocks, if they never sweep it.
It is not an account. It is a one-off bitcoin address with exactly two ways to spend it, both written into the address itself: the sBTC signers may sweep it and mint sBTC to the pool's treasury, or you may take it back with your own key. There is no third way, and no key here can be changed after the fact — a different address would be a different string, and you are looking at this one.
{{ l1.proofReclaimNote }}
{{ l1.proofDeposit }}
{{ l1.proofReclaim }}
Nothing about the bitcoin side is special: it is an ordinary transaction to the address above, and any wallet, node or exchange can make it. This page offers to send it only because your Stacks wallet can, not because it has to.
Two rules, and they are the bridge's. Every input must come from the address you revealed — the contract reads them all and rejects a transaction that mixes in coins from anywhere else, so use a wallet that lets you choose which coins to spend. And use at most eight inputs, which is as many as the contract will check.
Send, then paste the transaction id under “I sent it from somewhere else” and register it. Change back to your own address is fine; it is the inputs that are checked, not the outputs.
Wait for the sBTC signers to sweep it. They take their fee out of the amount, and the pool credits what arrives. {{ l1.s4.state }}
{{ l1.emilyNote }}
Nothing to press. The page can be closed — step 5 is permissionless and works whenever you come back.
Complete once it has landed. Permissionless — a keeper can do this for you. {{ l1.s5.state }}
Every commitment, reveal and credit this address has made through the bridge.
{{ l1.historyNote }}
pox-5 never required the wait: its own unstake takes any amount at any point in a bond. This vault takes it up on that, and the four numbers below are the whole of what it costs — read from the contract, not worked out here.
{{ early.blockedWhy }}
{{ early.atRisk }} of reward sBTC has arrived but has not been split yet. Your shares leave the epoch the moment you unstake, so it would be split among whoever is left. Syncing first banks your part of it — anyone may make the call.
What comes back arrives as released principal, not in your wallet: claim it above once this confirms. Take the whole position and you are marked as exiting, and the roll releases the STX leg — pox-5 frees a staker's locked STX on the bond's own unlock cycle, so no call here can hand it over sooner. pox-5 also refuses during a reward cycle's prepare phase; if it bounces on that, try again a few blocks later.
New to this? How the pool works explains the roll, the two legs and what a share is — and what the operator cannot do is the part worth reading before you send anything.
{{ beeNpub }}
{{ beeLinked }}
A deposit has two legs. The sBTC is the position; the STX beside it is what pox-5 asks a staker to put up with it, and it has to be STX you can spend.
Locked STX comes back when your stacking cycle ends; nothing here can hurry it. Until then it pays for nothing, which is why the two routes below are the short way round.
This is not mainnet, so there is nothing to buy and nothing worth swapping — the faucets on this page are where testnet STX comes from.
Your amount is still in the field. Come back when the STX lands and press Deposit.