401 Unauthorized
Identity evidence missing or invalid. No wallet, no DID, no VC. Nothing reaches the upstream provider.
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.
Identity evidence missing or invalid. No wallet, no DID, no VC. Nothing reaches the upstream provider.
Identity is good, policy allows the call, but the call is paid. The gateway emits a payment challenge bound to this exact request.
Verified, paid, audited. The response carries an X-AgentTrust-Receipt-Id pointing at the canonical Ed25519-signed receipt.
The receipt + hash-chained audit + proof bundle verify offline against the published gateway public key. No contact with us required.
curl -i https://sandbox.aisthetic.services/live
# → 200 OK
# { "ok": true, "service": "agenttrust-api", ... }curl -s https://sandbox.aisthetic.services/v1/sandbox/demo-session # → bounded JSON, no secrets, schema-versioned
curl -i -X POST https://sandbox.aisthetic.services/g/aisthetic/probe # → 401 Unauthorized # identity evidence missing
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
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>
# clone the repo locally, then:
pnpm proof:verify ./bundle-<placeholder>.zip
# → { "verdict": "valid", "hashChainContinuous": true, "signaturesValid": true }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.
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.
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)
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).