NTU CCTF × SNZ INNOVATEX · TRACK 1

V2 BASE SEPOLIA · VERIFIED

The payment that wins trust is the one that refuses to move.

A Singapore treasury wants to settle a supplier invoice in China. AI prepares the intent. Separate payer and approver role wallets authorize. The contract—not the model—decides whether funds can move.

mUSDproject demo asset · no financial value · loading token
SG → CNsynthetic business scenario · not proof of geography
Public evidence replayread-only receipts · no wallet or broadcast
THE JUDGE MOMENT

A synthetic sanctions flag changes after funding. Release is blocked before transfer. Escrow is then cancelled and the payer is made whole.

LIVE READ-ONLY CHAIN CHECK

Do not trust the replay. Re-read Base Sepolia.

The verifier asks a public Base Sepolia RPC for all 26 receipts, both terminal settlement states, token balances, escrow liability, and solvency. It has no wallet connection, signing path, or transaction method.

Public RPC availability can fail independently of the on-chain proof. The downloadable deep verifier additionally checks calldata, senders, events, ordering, and the historical revert reason.
BASE SEPOLIA · CHAIN ID 84532READY
26 receipts + final state

Press verify to fetch fresh chain data from the public RPC.

RECEIPTS—
EXPECTED BLOCK—
SETTLEMENTS—
ESCROW / SOLVENCY—

No request has been sent.

JUDGE CONTROL ROOM

One event. Every decision exposed.

Public evidence replay · This section reads the committed V2 manifest; the live-proof section above separately re-reads current chain state. Neither path connects a wallet or broadcasts.

01 · AI PLANNO SIGNING KEY
AI

“Invoice INV-0042 requires two separate approver wallets. I prepared typed data for payer review. I cannot sign or broadcast it.”

corridorSG → CN · synthetic
assetmUSD · demo only
amount15,000.00
authoritypayer + approver wallets + contract
EIP-712 TARGET ENVELOPE

Readable typed intent binds chain, contract, payer, beneficiary, asset, amount, policy digest, commitment, and nonce.

V2 payer-signed intent accepted by a relayer on Base Sepolia ↗
02 · ENFORCEMENT TRACEFUNDED
  1. 1
    Unsigned intent preparedAI explains; no privileged key or broadcast path
    PLAN
  2. 2
    Payer authorizationEIP-712 payer-wallet signature
    SIGNED
  3. 3
    Separate approval walletsApprover role wallet A + wallet B
    2 / 2
  4. 4
    Escrow funded · T0Daily limit checked; challenge window starts now
    15K
  5. 5
    Synthetic sanctions flag updatedRelease rechecks the current policy state
    RISK
  6. 6
    Release blocked; payer refundedNo beneficiary transfer; escrow returns to zero
    SAFE
03 · VERIFIABLE OUTCOMEBLOCKED
RELEASE DECISION DO NOT TRANSFER

The beneficiary’s policy status changed during the funded challenge window.

Payer15,000 restoredafter cancellation
Escrow0fully reconciled
Beneficiary0release blocked
V2 BASE SEPOLIA RECEIPTS LOADING VERIFIED RECEIPTS

The blocked release must resolve with status 0; the refund must resolve with status 1.

Blocked-release replay ready. Six steps tell the story; none are presented as a live transaction.

DETERMINISTIC TRUST BOUNDARY

AI prepares. Role wallets authorize. Contracts enforce.

01AI orchestrator

Parses a synthetic invoice, explains risk, and prepares unsigned typed data.

Cannot sign
→
02Role wallets

Separate payer and approver addresses authorize the public-testnet transactions.

EIP-712 · public testnet
→
03Policy attestor

Publishes a digest, expiry, and synthetic risk status—not raw KYC records.

External trust declared
→
04Treasury contract

Checks roles, limits, policy, challenge timing, escrow, release, and refund.

Only enforcement authority

SELECTIVE DISCLOSURE

Reveal the invoice only when it matters.

Raw invoice and KYC records remain off-chain. V2 domain-separates each commitment and binds it to the chain, treasury contract, payer, beneficiary, amount, corridor digest, client order, invoice bytes, and salt. Changing any bound field must fail disclosure.

keccak256(abi.encode(INVOICE_COMMITMENT_DOMAIN, block.chainid, address(this), payer, beneficiary, amount, corridorDigest, clientOrderId, invoiceData, salt)) == invoiceCommitment INVOICE_COMMITMENT_DOMAIN = keccak256("VTA_INVOICE_COMMITMENT_V2"). Hash commitments minimize disclosure; they are not a zero-knowledge proof or secure storage system.
DISCLOSURE CHECKV2 VERIFIED
Invoice bytes
loading public synthetic disclosure
Commitment
loading commitment
Amount
15,000 mUSD
Public salt
loading synthetic salt
LOADINGReading the public V2 evidence manifest.

JUDGE QUESTIONS · ANSWERED FIRST

What this is—and what it is not.

WHY NOT ORDINARY ESCROW?

Because approval addresses, policy freshness, risk-status changes, challenge timing, cancellation, and reconciliation are separately inspectable.

WHERE IS THE AI?

A real read-only Codex run explained the deterministic plan into a strict schema. It returned UNSIGNED_REVIEW_REQUIRED; giving it a privileged key would violate the product’s core safety claim.

WHAT IS VERIFIED TODAY?

V2 publicly proves separate role addresses, payer-wallet authorization, two approver-wallet transactions, funded escrow, status-0 policy blocking, full refund, and clean release.

WHAT REMAINS TO PROVE?

Production audit, real stablecoin integration, licensed payment operations, real compliance feeds, key custody, fiat, FX, and off-ramp execution.

CLAIM LEDGER

Verified evidence and target architecture never share a label.

V2 public receipts and final balances are loaded from the current public manifest. Only V2 evidence is counted below.

V2 · PUBLIC TESTNETVERIFIED
26

public transaction records, including one expected status-0 block

  • Valueless project-deployed mUSD, not USDC
  • Separate payer, clean-beneficiary, and blocked-beneficiary addresses
  • Payer-wallet signature plus two separate approver-wallet transactions
  • Synthetic risk update → status 0 → full refund
  • 9,303,697 gas · 0.00005595 test ETH · 736 s public block span
Inspect V2 treasury contract ↗
V2 · TWO TERMINAL OUTCOMESRECONCILED
2

public scenarios: clean release and blocked-then-refunded

  • Clean beneficiary: 15,000 mUSD
  • Blocked beneficiary: 0 mUSD
  • Escrow: 0 mUSD
  • Solvent and invoice disclosure verified
Inspect complete V2 manifest ↗
V2 · LOCAL REGRESSIONVERIFIED LOCALLY
33

V2 contract, state-path, orchestrator, and live-verifier tests

  • Exact EIP-712 payer authorization and anti-replay
  • Separate role wallets and approval-address conflicts
  • Funded-start window, synthetic-risk block, and refunds
  • 64 generated state paths plus deterministic planner
  • Real Codex explanation run · schema-valid · no signing or broadcast
  • Browser RPC verifier · receipt/state/accounting checks · fails closed
  • Blockscout source published · partial verification · unchanged bytecode
Inspect the Codex boundary trace ↗
EXPECTED POLICY BLOCKSTATUS 0on-chain failed release · state and escrow preserved
V2 RECONCILIATIONPASSEDpayer 15K · clean beneficiary 15K · blocked beneficiary 0
FINAL ESCROW0 mUSDtotalEscrowed 0 · solvent true

Observed confirmation latency median: 7.499 seconds for the nine public transactions whose client-side timing was retained; this is not a 26-transaction latency sample. This is public Base Sepolia proof only, not production or financial settlement. mUSD has no financial value and is not Circle USDC. SG → CN and sanctions inputs are synthetic scenarios; there is no fiat, FX, off-ramp, KYC provider, certified screening feed, regulatory approval, or real-funds safety claim. Ephemeral keys are test-only, not production key management. Revocability ends at release.