Skip to content

Circuit-breaker demo run

TESTNET DEMO ONLY. The lending pool is a deliberately tiny demo (no interest, no liquidation, fixed 1:1 prices) that exists only to show Assay Guard. Figures are demo values, not a real asset’s reserves.

Run on 2026-10-14 by scripts/src/demo-circuit-breaker.ts. Each borrow asks Assay Guard is_healthy(ADEMO, policy) first. A rejected borrow moves nothing and records the guard’s reason in a successful transaction (the pool returns Rejected(reason) and emits borrow_rejected), so every step has a transaction to open.

Demo policy: minimum coverage 100%, max report age 90 seconds (so the stale step can happen live), at least 1 attestor, disagreement up to 5%, supply mismatch up to 0.5%. Borrow limit 50% of collateral.

Step Result Transactions (report, then borrow)
Fresh report at 101% borrow succeeded bda39ffb…, 84fefd06…
Attestor posts 92% borrow rejected (UNDERCOVERED) 773163e0…, 84d31e35…
Fresh report at 100.4% borrow succeeded 2956390b…, 683abc8d…
No new report past the 90-second max age borrow rejected (STALE) ec2c5847…

Reasons are the guard’s: OK, NO_REPORT, STALE, TOO_FEW_ATTESTORS, UNDERCOVERED, DISAGREEMENT, SUPPLY_MISMATCH.

  • All 22 transactions return SUCCESS from Stellar RPC and open on stellar.expert.
  • The two successful borrows’ events include the DUSD transfer; the two rejected borrows emit only borrow_rejected, with reason Undercovered and Stale, and no transfer.
  • Final position (position(borrower)): 1,000 ADEMO collateral, 200 DUSD debt (two borrows of 100).
  • The ADEMO token contract was deployed during D3; its transaction is in TESTNET.md.
Registry CBMTQWT7DZOPHQ6WJZN4OYZIFJ6XLSZYRCYJZVOWMWHMQR4TZ3MCOG4U
Assay Guard CCVEIPYTY6RRVJZONFZL4WVGN66H5IU77H3HSSQJKH7I7WSDL6DIEKDV
Demo pool (TESTNET DEMO ONLY) CCQP73IMYC67UUF7R4OIHMEWRZWMUZO2TQEKCTOFGYZ6NUFZT6JNKY33
ADEMO (demo RWA token, collateral) CC22EDRUYLGMSF4YOP77GKP6O6SQQT6WY2VP6VHNHALTOBPGXNIKRWTB
DUSD (demo stablecoin) CDKWYXW5W5ZOK3FDZFHNGXHNOO6YISS7DBGCSDQTQINVMH7THUTDWDGL
Step Transactions
Deploy registry CBMTQWT7DZOPHQ6WJZN4OYZIFJ6XLSZYRCYJZVOWMWHMQR4TZ3MCOG4U c9ea09dd…
Deploy guard CCVEIPYTY6RRVJZONFZL4WVGN66H5IU77H3HSSQJKH7I7WSDL6DIEKDV 178e373a…, 2e7b3222…
ADEMO token contract CC22EDRUYLGMSF4YOP77GKP6O6SQQT6WY2VP6VHNHALTOBPGXNIKRWTB (collateral) already deployed
DUSD token contract CDKWYXW5W5ZOK3FDZFHNGXHNOO6YISS7DBGCSDQTQINVMH7THUTDWDGL (demo stablecoin) 49832143…
Deploy demo pool CCQP73IMYC67UUF7R4OIHMEWRZWMUZO2TQEKCTOFGYZ6NUFZT6JNKY33 (TESTNET DEMO ONLY) 39981565…, 93248a20…
Registry: register ADEMO (unit USD) 4688e7db…
Registry: add attestor bd422369…
Registry: set supply witness 36ae64a4…
Registry: witness posts supply 1,000,000 ADEMO 14b903e2…
Borrower trustline ADEMO f1387896…
Borrower trustline DUSD af6760b8…
Issuer mints 1,000 ADEMO to the borrower 33dec226…
Fund the pool with 100,000 DUSD 016129dd…
Borrower deposits 1,000 ADEMO as collateral aa27d961…

Receipt: audit/e2e-receipts/circuit-breaker-2026-10-14.json.

Reproduce: pnpm --filter @garkuwa/assay-scripts demo:circuit-breaker (deploys new contracts; needs the testnet identities named in the script).