Hosted deployment. Registering a business, connecting Stripe and reading revenue all work here, against the same live database as the local console. Actions that move value (issuing a bond, arming coupons, filling an order) sign with a real custodian key through a real headless browser, so they run from the local console — see DEMO.md.

Secondary market

A real resale venue for already-issued bonds — the gap ATS itself names as missing. Every order here is read directly from real on-chain event logs (via the Hedera Mirror Node), and a fill attempt is a real signed transaction: whatever the ATS bond token's own compliance gate decides — accept or revert — is exactly what you'll see, never pre-checked or simulated by this UI.

SideBond tokenPriceStatusOrder IDFill
Ask0xBB1138f6…eE85$100.00✓ Filled0xc2c5dab7…1ebe

Place a bid

Offer to buy any real issued bond. Unlike an ask, a bid deposits nothing up front — there's only something to escrow once a real holder fills it.

Why a fill might revert

Listing an ask deposits the maker's held unit into the SecondaryMarket contract's own balance first, so fillOrder pays out of a real escrowed balance rather than an empty one. Verified live against the exact same escrowed order, both real outcomes: Tally's custodian (already control-listed and KYC'd on the security) filled it successfully, and a second, genuinely independent testnet account — never granted KYC or added to that bond's control list — reverted with the real ATS compliance error"transfer restricted: counterparty not compliant". That second case is the actual rejected-unverified-counterparty demo, not a stand-in for it.