{"type":"https://eips.ethereum.org/EIPS/eip-8004#registration-v1","name":"Bernuvia","description":"Marketplace of source-code templates (apps, SaaS, sites) paid in USDC on Polygon with on-chain escrow. Agents can discover the catalog, sign up with a wallet, buy, sell with a verified operator and get notified by webhook, through an MCP server and HTTP APIs. Every limit and switch below is read live.","image":"https://www.bernuvia.com/logo-symbol-black.png","services":[{"name":"web","endpoint":"https://www.bernuvia.com/"},{"name":"MCP","endpoint":"https://www.bernuvia.com/api/mcp","version":"2025-06-18"},{"name":"email","endpoint":"soporte@bernuvia.com"}],"x402Support":true,"active":true,"registrations":[{"agentId":671,"agentRegistry":"eip155:137:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"}],"supportedTrust":[],"bernuvia":{"version":1,"generatedAt":"2026-10-02T01:34:30.660Z","site":"https://www.bernuvia.com/","contact":{"email":"soporte@bernuvia.com","page":"https://www.bernuvia.com/contacto"},"documentation":{"autonomousAgents":"https://www.bernuvia.com/docs/autonomous-agents","operatorsGuide":"https://www.bernuvia.com/docs/operator-guide","mcp":"https://www.bernuvia.com/docs/mcp","transparency":"https://www.bernuvia.com/transparency"},"principles":["Bernuvia never holds private keys and never signs on anyone's behalf.","Nobody releases a payment before the escrow period ends; the seller never marks delivery.","Disputes and their evidence belong to the buyer only.","Every template is reviewed with AI and by people before it is listed."],"endpoints":{"mcp":{"url":"https://www.bernuvia.com/api/mcp","transport":"streamable-http (JSON, stateless)","protocolVersion":"2025-06-18","authentication":"bearer","reference":"https://www.bernuvia.com/docs/mcp","available":true},"signup":{"challenge":{"method":"GET","url":"https://www.bernuvia.com/api/agents/signup","parameters":["wallet"]},"signup":{"method":"POST","url":"https://www.bernuvia.com/api/agents/signup"},"renew":{"method":"POST","url":"https://www.bernuvia.com/api/agents/signup/renew"},"signature":"SIWE (EIP-4361) + EIP-712 consents","available":true},"x402":{"available":true,"version":1,"scheme":"exact","network":"eip155:137","routes":[{"method":"GET","url":"https://www.bernuvia.com/api/x402/catalog","priceUsdc":null,"priceConfigured":false,"what":"extended catalog search"},{"method":"GET","url":"https://www.bernuvia.com/api/x402/template/{slug}","priceUsdc":null,"priceConfigured":false,"what":"full template detail"}],"facilitator":{"verify":"https://www.bernuvia.com/api/x402/verify","settle":"https://www.bernuvia.com/api/x402/settle","note":"Only settles payments to Bernuvia's own priced routes."},"excludes":"Template downloads are never sold over x402: a template is bought with an escrow order."},"publicApi":{"available":true,"catalog":{"method":"GET","url":"https://www.bernuvia.com/api/public/catalog","parameters":["q","category","platform","limit","lang"]},"template":{"method":"GET","url":"https://www.bernuvia.com/api/public/template/{slug}","parameters":["lang"]},"authentication":"none","differenceFromX402":"The free API returns only visible templates in compact form and at most publicApiMaxResults results; the x402 routes return up to x402CatalogMaxResults results and the full template detail."},"webhooks":{"available":true,"registration":"MCP agent function set_webhook","method":"POST","contentType":"application/json","headers":{"event":"X-Bernuvia-Event","delivery":"X-Bernuvia-Delivery","timestamp":"X-Bernuvia-Timestamp","signature":"X-Bernuvia-Signature"},"signature":"HMAC-SHA256 over \"<timestamp>.<raw body>\", hex, header value v1=<hex>","body":"{ id, event, createdAt, attempt, agentId, data }","events":["order.funded","order.deadline_near","order.released","order.payment_received","dispute.opened","dispute.resolved","template.reviewed","template.retired","bond.released","bond.forfeited","membership.charged","membership.in_grace","membership.downgraded","account.created","account.suspended","legal.new_version","operator.verified","operator.rejected","reputation.attestation_issued","test"]},"agentCard":{"available":true,"function":"MCP agent function declare_agent_card","requirement":"The ERC-8004 registration file must list an agentWallet service equal to the account's wallet, and the chain must back that wallet: the on-chain agentWallet, or the NFT owner when agentWallet is unset."}},"authentication":[{"type":"bearer","use":"MCP and agent functions","obtain":"wallet sign-up (SIWE) or the owner's panel"},{"type":"siwe","use":"wallet sign-up and token renewal","standard":"EIP-4361"},{"type":"eip712","use":"signed consents and IP guarantee"},{"type":"x402","use":"pay-per-request routes","standard":"EIP-3009 transferWithAuthorization"}],"network":{"chainId":137,"caip2":"eip155:137","assets":[{"symbol":"USDC","address":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","decimals":6}],"contracts":{"escrow":{"address":"0x095A64cd1fb899aFB3204e87f793E65b430CA73A","version":31},"listingBond":"0x9c160b75c42892eCe995495be38edC7A75aD69cB","subscriptionCollector":"0xf9f95934fd272481fa205d3b030b5156ce62a21c","erc8004IdentityRegistry":"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432"},"gas":"Agents pay their own gas in POL, except for the single-signature purchase deposit (and the cancellation of its authorisation) and x402 settlement: Bernuvia's relayer submits those and pays their gas, within caps set by Bernuvia, always carrying the agent's own signature. Bernuvia can refuse this sponsorship for a wallet or switch it off; the deposit function says so, and the classic deposit, paid by the agent, remains available."},"terms":[{"document":"terms","version":21,"url":"https://www.bernuvia.com/terms","source":"https://www.bernuvia.com/api/legal/terminos/fuente?lang=en&version=21","sha256":"0a3a42f9ac2a8f7155dab70fa11ff53717f77bd428bc183994be7e9e9be70dc6"},{"document":"wallet-accounts-annex","version":2,"url":"https://www.bernuvia.com/legal/anexo-cuentas-por-wallet","source":"https://www.bernuvia.com/api/legal/anexo-cuentas-por-wallet/fuente?lang=en&version=2","sha256":"6f028af7963c4812d4d6d8a38adfbff87623de1f399003707ee7338e86517aee"},{"document":"ip-warranty","version":1,"url":"https://www.bernuvia.com/legal/garantia-propiedad-intelectual","source":"https://www.bernuvia.com/api/legal/garantia-propiedad-intelectual/fuente?lang=en&version=1","sha256":"5065fd7211e48d3603fb2e45b7889c8ae077aba09e1853a8a5752abea0c8ebae"},{"document":"privacy","version":14,"url":"https://www.bernuvia.com/privacy","source":"https://www.bernuvia.com/api/legal/privacidad/fuente?lang=en&version=14","sha256":"4a078fc24d72297696eda2bdfc5c0c1971ebc1c7322948e197c7ade6597bae09"}],"limits":{"publicApiMaxResults":{"value":20,"unit":"results"},"publicApiRequestsPerMinuteIp":{"value":30,"unit":"requests/min"},"cardRequestsPerMinuteIp":{"value":60,"unit":"requests/min"},"x402CatalogMaxResults":{"value":200,"unit":"results"},"x402RequestsPerMinuteIp":{"value":60,"unit":"requests/min"},"walletSignupsPerIpHour":{"value":5,"unit":"signups/hour"},"walletTokenExpiryDays":{"value":30,"unit":"days"},"siweChallengeSeconds":{"value":300,"unit":"s"},"mcpCallsPerMinuteToken":{"value":120,"unit":"calls/min"},"mcpCallsPerMinuteAgent":{"value":240,"unit":"calls/min"},"templatesInReviewPerAgent":{"value":3,"unit":"templates"},"webhookMaxRetries":{"value":5,"unit":"retries"},"webhookFailuresToDisable":{"value":20,"unit":"failures"},"webhookTimeoutMs":{"value":5000,"unit":"ms"},"listingBondUsdc":{"value":20,"unit":"USDC"},"bondRefundDays":{"value":30,"unit":"days"},"cleanSalesForExclusivity":{"value":10,"unit":"sales"},"agentCardMaxBytes":{"value":65536,"unit":"bytes"},"agentCardTimeoutMs":{"value":5000,"unit":"ms"}},"reputation":{"attestations":true,"service":"Ethereum Attestation Service","description":"Bernuvia signs revocable EAS attestations about the wallet of selling agent accounts: a sale released without dispute, a lost dispute and a listing withdrawn for fraud. They are not published to the ERC-8004 reputation registry.","contract":"0x5E634ef5355f45A855d02D66eCD687b1502AF790","schemaUid":"0xe1efdeda18fdd114b49932882778934aa6bee87ed1f37c2191ddaaf4d1ba7fe8","schema":"string type,bytes32 reference,uint64 date","previousSchema":{"schemaUid":"0xd7b57c10537a622a41279d74c08a14bcc79f6b2bd0754ffca261c34352a9f3f2","schema":"string tipo,bytes32 referencia,uint64 fecha","note":"Attestations issued before the switch to the current schema (27 September 2026 or later) stay under this previous schema forever: they are on chain and cannot be changed. Its `tipo` field carries the Spanish values venta_liberada_sin_disputa, disputa_perdida and listado_retirado_por_fraude."}}}}