The whole loop,
run live on testnet.
Deposit → earn → authorize → spend, plus a native USDC bridge — every leg executed on-chain, with real transaction hashes you can open in a block explorer. The plumbing working end to end, not a mock-up.
Deposit & earn
Proven on ArcArc · MintwareYieldVault 0x11Ef…C4215 USDC deposited into the treasury vault. The same transaction routed it through the adapter into the yield source — the capital went straight to work rather than sitting idle.
Authorize — sub-10 ms, off live NAV
Live serviceedge-auth → live Arc NAV (7.00 USDC backing)The Rust edge-auth service, pointed at the live Arc vault, decided each spend off the real NAV — reserving a hold on approval, failing closed otherwise. Off-chain, so no tx hash; these are the running service’s live responses.
| Request | Decision | Reason | Latency |
|---|---|---|---|
| $2.00 | Approved | hold reserved · headroom 7→5 | 7.2 ms |
| $10.00 | Declined | insufficient_equity (over 5 headroom) | 6.9 ms |
| $300.00 | Declined | high-value lane · 2nd-signer absent → fail-closed | 6.1 ms |
| $2.00 · no bearer | 401 | fail-closed: endpoint reserves equity | — |
Settle — spend as USDC
Proven on ArcArc · MintwarePaymentGateway 0x1D07…5399A signed EIP-712 spend permit → the gateway burned exactly the shares needed and paid the merchant 2 USDC. The event trace unwinds the earn path in reverse (yield source redeemed → adapter → vault → merchant) — the dollars came out of the earning position at the moment of the spend.
Bridge — native USDC, Base → Arc
Proven end-to-endBase Sepolia → CCTP domain 26 (Arc)1 USDC burned on Base Sepolia through Circle’s CCTP v2, attested by Circle (~22 min, standard finality), then minted natively on Arc and deposited straight into the vault as yield-earning shares. Bridged capital arrived already earning.
The suites behind it
The on-chain run rides code that is green across every layer — Solidity, Rust, and the property-based invariants where money can be lost.
| Contract | Network | Address |
|---|---|---|
| Treasury vault | Arc | 0x11Ef…C421 |
| Payment gateway | Arc | 0x1D07…5399 |
| Yield adapter | Arc | 0xb9FB…2B88 |
| CCTP deposit router | Arc | 0xDB9D…Fc03 |
| CCTP TokenMessenger | Base Sepolia | 0x8FE6…2DAA |
Recorded 2026-08-19 · Arc testnet (5042002) + Base Sepolia (84532) · unaudited. To reproduce or extend the run, see the deploy scripts in contracts-v4/script and the runbook docs/developers/session-handoff-arc.md. What is YPN? →