{"x402Version":2,"facilitator":"zBase Privacy Facilitator","version":"1.0.0","status":"pilot","description":"PILOT — settlement works and is open to anyone who deposits, but payments are NOT private yet: the pool has an unknown number of independent depositor(s) and privacy requires 30. Every pilot settlement discloses this in its response. Privacy is claimed only when the set is real.","customerReady":false,"pilotReady":true,"verificationReady":true,"blockingReasons":[{"code":"ANONYMITY_SET_BELOW_MINIMUM","message":"The independent-depositor count could not be read, so the anonymity set cannot be asserted.","blocks":["customer"]},{"code":"PRICING_NOT_ENFORCED","message":"Hosted mainnet pricing is not enforced consistently.","blocks":["customer"]},{"code":"MAINNET_E2E_NOT_VERIFIED","message":"An unrelated end-to-end mainnet private settlement has not been approved.","blocks":["customer"]},{"code":"LEGAL_CLEARANCE_NOT_APPROVED","message":"Jurisdiction-specific legal clearance is not approved.","blocks":["customer"]},{"code":"CUSTOMER_PULL_NOT_CONFIRMED","message":"Signed customer pull for private routing is not confirmed.","blocks":["customer"]},{"code":"ANONYMITY_SET_PROVENANCE_NOT_VERIFIED","message":"The mainnet anonymity set has not been approved as independent enough for customer privacy claims.","blocks":["customer"]}],"supported":[],"pilot":{"enabled":true,"private":false,"anonymitySet":null,"minimumForPrivacy":30,"howToJoin":"Open to anyone who deposits — no key, no allowlist. Deposit at /app#deposit, then POST /api/facilitator/settle-x402 as usual. Payments settle and the seller is paid; every response carries a privacy block stating that the payment is NOT private and why. Each independent depositor grows the set toward the privacy minimum, which is the only thing that makes it private. SDK callers must pass acceptNotPrivate:true — an explicit acknowledgement that this is not private yet, so nobody wires zBase in expecting privacy and silently gets none."},"privacy":{"enabled":false,"verificationReady":true,"organicAnonymitySet":null,"method":"Groth16 ZK-SNARK (Privacy Pools)","compliance":"Association Set Provider (ASP)","anonymitySet":23,"minimumCustomerAnonymitySet":30,"minimumDepositAmount":"1000000","requiredMinimumDepositAmount":"1000000","latestAspRoot":"0x16557cebc960504495c27b6be575d5da338154a22c569e2ece710ef6ba3eb505","indexer":{"configured":true,"leafCount":23,"stateRootMatches":true,"aspRootMatches":true}},"contracts":{"entrypoint":"0x275fAA86e2E316Abe46807453c1D95f101d36431","privacyPool":"0x46753CED1E87871eA1aaF24Aed47DFA2D95855Dd","network":"Base Mainnet (8453)"},"stack":"production","agentRegistry":{"enabled":true,"productionReady":false,"register":"POST /api/agent/register","list":"GET /api/agent/register","lookup":"GET /api/agent/register?id=agent_xxx","features":["Agent identity (public key + owner wallet)","Per-transaction spend limits","Daily spend limits","Provider whitelist","Category-based permissions","Spend tracking + tx count"],"note":"Prototype surface only. It does not establish production authorization, demand, or wallet-owned enforcement."},"pricing":{"model":"Per-deposit access fee + on-chain per-settle percentage take","enforced":false,"storageBackend":"upstash","networks":{"eip155:84532":{"name":"Base Sepolia (testnet)","pricingMode":"free-for-testing","note":"Testnet is free for development. Access fee + per-settle take are paid in Sepolia USDC (faucet-funded, no real value). The same fee mechanism that runs on mainnet runs here too, so you can size your agent's economics before flipping to production."},"eip155:8453":{"name":"Base mainnet (production)","pricingMode":"paid","note":"Production pricing. Access fee + per-settle take are real USDC routed on-chain to the treasury wallet."}},"tiers":{"standard":{"takeBps":500,"takePercent":"5%","accessFee":{"sepoliaAtomic":"1000","sepoliaUsdc":"0.001","mainnetAtomic":"5000","mainnetUsdc":"0.005"},"minimumSettle":{"sepoliaAtomic":"40000","sepoliaUsdc":"0.040000","mainnetAtomic":"20000","mainnetUsdc":"0.020000"},"target":"AI agents wanting basic ZK-unlinkable settles. No SLA. No compliance attestation."},"compliance":{"takeBps":500,"takePercent":"5%","accessFee":{"sepoliaAtomic":"1000","sepoliaUsdc":"0.001","mainnetAtomic":"5000","mainnetUsdc":"0.005"},"minimumSettle":{"sepoliaAtomic":"40000","sepoliaUsdc":"0.040000","mainnetAtomic":"20000","mainnetUsdc":"0.020000"},"target":"Regulated agent operators. Audit-ready settle receipts."},"enterprise":{"takeBps":0,"subscription":"custom","target":"Dedicated infra, custom ASP signer, white-label endpoint. Contact @zbase__ on Twitter.","howToAccess":"Out-of-band onboarding; nullifiers recorded by zBase sales, not via /authorize."}},"treasury":"0xdbaa23601a95a01ee9b90160f6aa784cbe4e0f21","note":"Per-settle fee = paymentAmount × takeBps / 10000, enforced ON-CHAIN by the pool contract via the relay struct's feeRecipient + relayFeeBPS fields. Settles below minimumSettle are rejected with HTTP 400 (so the percentage take is always ≥ floor).","docs":"https://docs.zbase.app"},"endpoints":{"verify":"POST /api/facilitator/verify","settle":"POST /api/facilitator/settle","settleX402":"POST /api/facilitator/settle-x402"},"links":{"docs":"https://docs.zbase.app","repo":"https://github.com/goheesheng/zBase","deposit":"/app#deposit","sdk":"https://www.npmjs.com/package/@zbase-protocol/core","authorize":"/api/facilitator/authorize"}}