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
| Role | Account |
|---|---|
| Bound contract | bound-v3.boundproto-nh26.testnet |
| Mock USDC token | usdc.boundproto-nh26.testnet |
| Treasury | treasury.boundproto-nh26.testnet |
| Arbiter | arbiter.boundproto-nh26.testnet |
| Owner / deployer | boundproto-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
| Contract | wasm sha256 | code hash (base58) | bytes |
|---|---|---|---|
bound-v3.boundproto-nh26.testnet | 867c678cdf5717dcdca3f8355e418ddf2fb43ef869a57fb793a96e82e7c82d2e | A3yf1yzihbUdZAaHn92aAm5dBAdFCq1QCwhBJixD2B4H | 294494 |
usdc.boundproto-nh26.testnet | f40f5337da2aa21d6884a6c83bd930e8ebc9cb49a9e6634a2e66e7ca4dd2c674 | HRi2r4HbNpjb9Z1p9gSXGXpiHG8kG372jK7Lf3S8NzjM | 148990 |
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
near account view-account-summary bound-v3.boundproto-nh26.testnet network-config testnet now
# Local Contract (SHA-256 checksum hex) 867c678cdf5717dcdca3f8355e418ddf2fb43ef869a57fb793a96e82e7c82d2ecd near/contracts/bound && cargo near build non-reproducible-wasm
cd ../.. && shasum -a 256 target/near/bound/bound.wasm
# 867c678cdf5717dcdca3f8355e418ddf2fb43ef869a57fb793a96e82e7c82d2eOr 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.
| Run | Contract | Started | Transactions | Result |
|---|---|---|---|---|
| mwfnc6q8 | bound-v3 (current) | 2026-11-14 00:07 | 37 | all steps as expected |
| mwfiv11v | bound-v2 (superseded) | 2026-11-13 22:01 | 37 | all steps as expected |
| mwfgqr0u | bound-v1 (superseded) | 2026-11-13 21:02 | 37 | all steps as expected |
| mwfgi0ij | bound-v1 (superseded) | 2026-11-13 20:55 | 37 | all 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.
| Contract | Live | Why it was replaced |
|---|---|---|
bound-v2.boundproto-nh26.testnet | 2026-11-13 22:01 to 2026-11-14 00:07 | Ran 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.testnet | 2026-11-13 20:34 to 2026-11-13 22:01 | Truncated 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 runmwfgqr0u). 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 runmwfiv11v). - 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.