Demo

Try AgentTrust in your own terminal.

Run a real sandbox gateway flow against https://sandbox.aisthetic.services, 401 → 402 → 200 + signed receipt, without contacting us, without a sign-up, and without real funds.

What you will do

  1. Check that the gateway is live.
  2. Fetch the bounded sandbox helper context.
  3. Call without identity → 401 Unauthorized.
  4. Call with sandbox identity headers → 402 Payment Required.
  5. Call with the sandbox proof header → 200 + signed receipt.
  6. Verify the receipt and proof bundle offline.

Lifecycle

01

401 Unauthorized

Identity evidence missing or invalid. No wallet, no DID, no VC. Nothing reaches the upstream provider.

02

402 Payment Required

Identity is good, policy allows the call, but the call is paid. The gateway emits a payment challenge bound to this exact request.

03

200 + signed receipt

Verified, paid, audited. The response carries an X-AgentTrust-Receipt-Id pointing at the canonical Ed25519-signed receipt.

04

Proof bundle

The receipt + hash-chained audit + proof bundle verify offline against the published gateway public key. No contact with us required.

Try it now

1. Liveness probe

curl -i https://sandbox.aisthetic.services/live
# → 200 OK
# { "ok": true, "service": "agenttrust-api", ... }

2. Sandbox helper context

curl -s https://sandbox.aisthetic.services/v1/sandbox/demo-session
# → bounded JSON, no secrets, schema-versioned

3. Unauthenticated call → 401

curl -i -X POST https://sandbox.aisthetic.services/g/aisthetic/probe
# → 401 Unauthorized
# identity evidence missing

4. Identified but unpaid → 402

curl -i -X POST https://sandbox.aisthetic.services/g/aisthetic/probe \
  -H "X-AgentTrust-Wallet-Address: 0xSANDBOX" \
  -H "X-AgentTrust-Signature-Scheme: sandbox" \
  -H "X-AgentTrust-Principal: did:web:sandbox.aisthetic.services"
# → 402 Payment Required
# challenge body bound to the request hash

5. Sandbox paid call → 200 + signed receipt

X-AgentTrust-Sandbox-Proof: demo-paid is a sandbox-only header. It accepts no real settlement, calls no facilitator, touches no chain. Production deploys refuse the header unconditionally.

curl -i -X POST https://sandbox.aisthetic.services/g/aisthetic/probe \
  -H "X-AgentTrust-Wallet-Address: 0xSANDBOX" \
  -H "X-AgentTrust-Signature-Scheme: sandbox" \
  -H "X-AgentTrust-Principal: did:web:sandbox.aisthetic.services" \
  -H "X-AgentTrust-Sandbox-Proof: demo-paid"
# → 200 OK
# X-AgentTrust-Receipt-Id: rcp_<placeholder>

6. Verify offline

# clone the repo locally, then:
pnpm proof:verify ./bundle-<placeholder>.zip
# → { "verdict": "valid", "hashChainContinuous": true, "signaturesValid": true }

Solana SPL USDC lane (dormant)

The product focus is Circle Arc L1. A Solana mainnet SPL lane was built and canary-verified (historical evidence below) and is preserved, but it is dormant — not the active path. The same 401 → 402 → 200 + signed receipt invariant applied: an agent transferred 0.01 USDC via SPL transferChecked, the gateway waited for finalized commitment, an on-chain Anchor receipt verifier program validated the signed receipt against the Ed25519SigVerify sysvar instruction, and a signed receipt was issued — verify-first, settle-once, never-retry, the same invariant as the x402 path.

1. Build the SPL transferChecked transaction

Recipient associated token account: Hbzx5A9MzU1PfHD2UMaGFcBLi3fDDadphBcyVtH6s11A. USDC mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Network: solana-mainnet. Commitment: finalized. Amount: 0.01 USDC (10000 base units, 6 decimals).

# Build the SPL transferChecked tx with 0.01 USDC to:
#   Hbzx5A9MzU1PfHD2UMaGFcBLi3fDDadphBcyVtH6s11A
# Mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
# Network: solana-mainnet (commitment: finalized)
# Sign with the agent's wallet, submit, and capture the base58 signature.

2. Send the signature to the gateway

curl -i -X POST \
  -H "X-AgentTrust-Wallet-Address: <agent solana wallet>" \
  -H "X-AgentTrust-Signature-Scheme: solana" \
  -H "X-AgentTrust-Principal: <agent principal DID>" \
  -H "X-Payment-Solana: <base58 signature>" \
  https://sandbox.aisthetic.services/g/aisthetic/probe
# → 200 OK
# X-AgentTrust-Receipt-Id: <UUID>
# (the receipt's externalPaymentId is the Solana transaction signature)

3. Canary evidence (historical)

Historical mainnet canary transaction (slot 417818028, 2026-05-05): solscan.io/tx/4N9XggyC…gQaY. On-chain Anchor receipt verifier program FWdCDkFnex…vw9Z was the deployed verifier on Solana mainnet (now dormant).

What this proves

What this does not prove