sentinelHow it worksPricingBlogSign in

Start

IntroductionQuickstartAuthentication

Guides

Monitor a contractAdmin changesLarge outflowssBTC and PoX-5Slack and webhooks

Concepts

Watches & alertsBilling

Reference

CLIMCP serverSDKAPI reference
Powered bysecondlayer
Guides / sBTC and PoX-5
Previous← Large outflowsNextSlack and webhooks →

On this page

sBTC and PoX-5 alerts: stalled withdrawals, peg and admin changes

Get an email, Slack message or signed webhook when an sBTC withdrawal stalls, the peg moves in a way it shouldn't, or a PoX-5 admin role changes. One line per check, no contract to name.

sBTC and PoX-5 are watched as a whole: there is no target and no plan. Each named check runs once for everyone, from secondlayer's sBTC and PoX-5 feeds, and alerts every account that holds it.

Stalled withdrawals

shell
sentinel when sbtc stall
$ sentinel when sbtc stall --gap 5 --open 40 --to slack:#peg

stall alerts when a withdrawal is due (6 Bitcoin confirmations) and no sweep confirms for more than --gap blocks (default 7), or when a withdrawal stays open --open blocks (default 30) with no accept or reject. Over MCP, send the same text to the when tool: when { line: "sbtc stall --gap 5 --open 40" }.

Peg and key changes

shell
sentinel when sbtc peg --to slack:#peg
$ sentinel when sbtc rotation --to email

peg alerts when the newest peg output is spent outside a sweep, when a sweep moves it to a script the signer registry doesn't derive, or when a confirmed sweep waits more than 90 minutes for its acknowledgment on Stacks. rotation alerts when deposits completed more than --after (default 6h) after a key rotation are still locked to an earlier key set.

PoX-5 admin and bonds

shell
sentinel when pox5 admin --to slack:#oncall
$ sentinel when pox5 bond-setup --to email
$ sentinel when pox5 early-exit --to slack:#oncall
CheckAlerts when
pox5 adminThe bond-admin or pause-admin role moves, or signer rewards are paused. Urgent.
pox5 bond-setupA bond is set up. Normal inside the earlier bonds' parameters, urgent when its target rate, ratios, early-exit script, a staker or a max-sats is outside them.
pox5 early-exitAn L1 bond's Bitcoin output is spent before its lock opens, by a staker who never announced an early exit. Urgent.

The other sBTC checks

CheckAlerts when
sbtc payoutAn accepted withdrawal's sweep output doesn't pay its recipient exactly what it asked, or a sweep pays an output no accept explains.
sbtc mintA completed deposit isn't backed by a sweep that spends it. A v2 deposit hides its recipient, so it says "v2: not verifiable now", never unbacked.
sbtc protocol-updateA protocol contract (governance, deposit, withdrawal) is replaced. Urgent, with the code diff.
sbtc reserveThe peg holds more than 0.01 BTC less than the sBTC it backs, 3 sweeps in a row.

What arrives

Facts only: the transactions, the blocks, the numbers, and where each came from. No model writes an alert. Bitcoin transactions come from secondlayer's SPV proofs, checked before use. Data that can't be read, or reads stale, makes a check wait and retry; it never alerts.

What to know

Paid tierSystem watches are refused on Free with 402 and sentinel upgrade builder. They are included on a paid tier and don't count toward your contracts.
Shared checksA check runs once for everyone. You choose which to hold, their parameters and where alerts go; you don't change the logic.
After the blockAn alert follows the block or Bitcoin transaction that holds the event, not the mempool.
Witness fieldsFields read from a transaction's witness (a deposit's recipient, max fee and lock keys) come from the transaction bytes, which SPV doesn't prove.
CostSee Pricing. Events are never billed.

Related

  • Watches & alerts: sBTC and PoX-5
  • Billing: what counts
  • Monitor a Stacks contract and get alerts
  • Send Stacks contract alerts to Slack or a signed webhook