Bound

Reference

Deployments

Testnet accounts, code hashes, how to check the wasm, and every recorded demo run.

Everything is on NEAR testnet, deployed on 2026-11-14 by boundproto-nh26.testnet. The record is near/deployments/testnet.json: account ids, deploy transactions, wasm sha256 and on-chain code hashes, and every demo run with its transaction hashes. It holds no keys.

Accounts

RoleAccount
Bound contractbound-v3.boundproto-nh26.testnet
Mock USDC tokenusdc.boundproto-nh26.testnet
Treasurytreasury.boundproto-nh26.testnet
Arbiterarbiter.boundproto-nh26.testnet
Owner / deployerboundproto-nh26.testnet
Verified demo agent (cert 1)bound-agent2-mwfnc6q8.testnet
Settled demo agent (cert 0)bound-agent-mwfnc6q8.testnet

RPC: https://test.rpc.fastnear.com, https://rpc.testnet.fastnear.com. rpc.testnet.near.org now answers every call with a deprecation error, so both entries are FastNEAR. Old transactions are looked up on archival-rpc.testnet.fastnear.com, because regular nodes forget them after a few epochs.

Code

Contractwasm sha256code hash (base58)bytes
bound-v3.boundproto-nh26.testnet867c678cdf5717dcdca3f8355e418ddf2fb43ef869a57fb793a96e82e7c82d2eA3yf1yzihbUdZAaHn92aAm5dBAdFCq1QCwhBJixD2B4H294494
usdc.boundproto-nh26.testnetf40f5337da2aa21d6884a6c83bd930e8ebc9cb49a9e6634a2e66e7ca4dd2c674HRi2r4HbNpjb9Z1p9gSXGXpiHG8kG372jK7Lf3S8NzjM148990

The NEAR code hash is the base58 encoding of the wasm's sha256. The build is cargo near build non-reproducible-wasm on the pinned toolchain, not a reproducible Docker build: the check is that a local build of this commit gives the same sha256 as the deployed code.

Check the wasm yourself

what runs on chain
near account view-account-summary bound-v3.boundproto-nh26.testnet network-config testnet now
# Local Contract (SHA-256 checksum hex)  867c678cdf5717dcdca3f8355e418ddf2fb43ef869a57fb793a96e82e7c82d2e
what this commit builds
cd near/contracts/bound && cargo near build non-reproducible-wasm
cd ../.. && shasum -a 256 target/near/bound/bound.wasm
# 867c678cdf5717dcdca3f8355e418ddf2fb43ef869a57fb793a96e82e7c82d2e

Or let the repository do both: near/scripts/verify.sh rebuilds both wasm files and compares them with the record, and pnpm --silent near:status compares the on-chain code_hash with the recorded one. The app shows the same comparison live.

Configuration

Demo timers keep the whole lifecycle inside minutes: claim window 90 s, post-expiry 300 s, grace 60 s. Production defaults would be 72 h, 7 d and 24 h. The full table is in the contract reference, and get_config returns the live values.

Recorded demo runs

Each run is committed as near/evidence/near-demo-<run>.txt (human) and .json (machine). pnpm --silent near:evidence re-checks every recorded transaction hash on an archival node, and each run page here does the same.

RunContractStartedTransactionsResult
mwfnc6q8bound-v3 (current)2026-11-14 00:0737all steps as expected
mwfiv11vbound-v2 (superseded)2026-11-13 22:0137all steps as expected
mwfgqr0ubound-v1 (superseded)2026-11-13 21:0237all steps as expected
mwfgi0ijbound-v1 (superseded)2026-11-13 20:5537all steps as expected

MCP agent runs are recorded beside them as mcp-agent-<run>.txt and .json: mwfnc6q8 on the current contract, mwfiv11v and mwfgqr0u on the superseded ones. See near/evidence.

Superseded contracts

Two earlier deployments are left running exactly as they were, so their evidence stays checkable. Do not use them.

ContractLiveWhy it was replaced
bound-v2.boundproto-nh26.testnet2026-11-13 22:01 to 2026-11-14 00:07Ran the code from before the second review's fixes. In its run mwfiv11v the unslashed allocation went back to the auditor at close_window; on bound-v3 it stays allocated until the settlement deadline.
bound-v1.boundproto-nh26.testnet2026-11-13 20:34 to 2026-11-13 22:01Truncated u64 certificate ids to u32. Cert id 2^32 aliased cert 0 but opened its own claim window, and closing that window unfroze cert 0 while the real one was open. Fixed in bound-v2.
  • bound-v1 runs: mwfgi0ij, mwfgqr0u (and MCP run mwfgqr0u). Its certificates 0 to 2 came from two early development runs that failed part way, before the evidence format existed. They hold no evidence and are not part of the demo.
  • bound-v2 run: mwfiv11v (and MCP run mwfiv11v).
  • The current contract, bound-v3, starts from cert 0 with run mwfnc6q8.

The evidence log of mwfnc6q8 counts certificates by ordinal and calls the second one "cert 2"; its on-chain id is 1, as the verify on the next line of the log shows.