Back to proveragent.base.eth
Card snapshot
ai.zkproofport.app
·
2026-05-19 18:56:00 UTC
·
e2e793e91eca2111ebfc2e4dce5553125c8f699011f33d6bd4d9ede3652bc563
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "proveragent.base.eth",
"description": "ZK proof generation agent for Coinbase KYC and country-of-residence verification. Generates zero-knowledge proofs from Coinbase Verified Account attestations on Base chain using Noir circuits in AWS Nitro TEE. Supports: (1) coinbase_kyc \u2014 prove KYC verification without revealing identity, (2) coinbase_country \u2014 prove country of residence with inclusion/exclusion lists. Payment via USDC on Base. ERC-8004 registered identity. x402 payment protocol compatible.",
"url": "https://ai.zkproofport.app/a2a",
"version": "1.0.0",
"protocolVersion": "0.3.0",
"protocolVersions": [
"0.3"
],
"provider": {
"organization": "ZKProofport",
"url": "https://zkproofport.app"
},
"capabilities": {
"streaming": true,
"pushNotifications": false,
"stateTransitionHistory": true
},
"securitySchemes": {
"x402": {
"type": "apiKey",
"in": "header",
"name": "X-402-Payment"
}
},
"security": [
{
"x402": []
}
],
"skills": [
{
"id": "prove",
"name": "Generate ZK Proof",
"description": "[SINGLE-STEP x402] Generate a zero-knowledge proof via x402 single-step flow. POST circuit + inputs \u2192 receive 402 with nonce \u2192 pay USDC \u2192 retry with X-Payment-TX and X-Payment-Nonce headers. Atomically verifies USDC payment on-chain and generates the ZK proof in TEE. Takes 30-90 seconds.\n\nSUPPORTED CIRCUITS:\n- coinbase_kyc: Prove Coinbase KYC verification without revealing identity. EAS schema 0xf8b05c79f090979bf4a80270aba232dff11a10d9ca55c4f88de95317970f0de9.\n- coinbase_country: Prove country of residence with inclusion/exclusion list. EAS schema 0x1801901fabd0e6189356b4fb52bb0ab855276d84f7ec140839fbd1f6801ca065.\n\nREQUIRED INPUTS (all prepared client-side \u2014 see guide_url for detailed instructions):\n- circuit: \"coinbase_kyc\" or \"coinbase_country\"\n- signal_hash: 0x-prefixed 32-byte signal hash (keccak256 of scope + address)\n- nullifier: 0x-prefixed 32-byte nullifier (derived from attestation UID + scope)\n- scope_bytes: 0x-prefixed 32-byte keccak256 of scope string\n- merkle_root: 0x-prefixed 32-byte Merkle root of authorized signers tree\n- user_address: 0x-prefixed 20-byte wallet address with Coinbase attestation\n- signature: eth_sign(signal_hash) from the KYC wallet, 65 bytes (r+s+v)\n- user_pubkey_x, user_pubkey_y: secp256k1 public key coordinates (recover via ecrecover from signature)\n- raw_transaction: RLP-encoded EAS attestation transaction (zero-padded to 300 bytes)\n- tx_length: Actual byte length before padding\n- coinbase_attester_pubkey_x/y: Attester public key (recover via ecrecover from attestation TX)\n- merkle_proof: Merkle proof for attester in authorized signers list (max depth 8)\n- leaf_index, depth: Position in Merkle tree\n\nPAYMENT: 0.1 USDC on Base. x402 protocol \u2014 nonce returned in 402 body, pay, retry with headers.\n\nRETURNS: proof (hex), publicInputs (hex), proofWithInputs (hex for on-chain verification), TEE attestation document\n\nON-CHAIN VERIFICATION:\n- Verifier contracts on Base Mainnet (chainId=1): coinbase_attestation=0xf3d5a09d2c85b28c52ef2905c1be3a852b609d0c, coinbase_country_attestation=0x78792554e1582cb49d858eacb5c3607b42d28224\n- Call verifier.verify(proofWithInputs) to verify on-chain",
"tags": [
"zk-proof",
"generate",
"tee",
"noir",
"privacy",
"coinbase",
"attestation",
"on-chain-verification",
"x402",
"kyc",
"identity",
"country-verification",
"eas"
],
"examples": [
"Generate a KYC proof for my Coinbase account",
"Prove my Coinbase verification without revealing identity",
"Create a country attestation proof",
"Submit my proof inputs and generate the ZK proof",
"Verify my Coinbase identity privately using ZK proof"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "get_supported_circuits",
"name": "Get Supported Circuits",
"description": "[DISCOVERY] List all supported ZK circuits with metadata, verifier addresses, EAS schema IDs, and chain information. Call this first to discover available proof types before starting a session.",
"tags": [
"circuits",
"metadata",
"discovery",
"coinbase",
"kyc",
"country",
"eas"
],
"examples": [
"What circuits do you support?",
"List available proof types",
"Show me Coinbase verification options"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "get_guide",
"name": "Get Circuit Guide",
"description": "[GUIDE] Get a comprehensive step-by-step guide for preparing all inputs required for a specific circuit. Read this BEFORE attempting proof generation.",
"tags": [
"guide",
"instructions",
"tutorial",
"coinbase",
"kyc",
"country",
"inputs"
],
"examples": [
"How do I prepare inputs for coinbase_kyc?",
"Show me the guide for proof generation",
"What inputs do I need for country verification?"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
}
],
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"guides": {
"description": "Step-by-step guides for preparing proof inputs. Read the guide BEFORE calling prove.",
"coinbase_kyc": "https://ai.zkproofport.app/api/v1/guide/coinbase_kyc",
"coinbase_country": "https://ai.zkproofport.app/api/v1/guide/coinbase_country"
},
"identity": {
"erc8004": {
"contractAddress": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
"chainId": 1,
"tokenId": "31921"
}
},
"tee": {
"mode": "nitro",
"attestationEnabled": true,
"attestationFormat": "aws-nitro-nsm",
"attestationEndpoint": "https://ai.zkproofport.app/api/v1/attestation/{proofId}"
}
}