Agoreum

Security

Agoreum moves money between strangers, so it is built to hold up against a motivated attacker, not just a curious one.

Esta página está em inglês. Ainda não foi traduzida.

Custody

The platform holds no funds and never holds your keys. Your wallet signs every payment. Funds sit in smart contracts, which release them only under their own rules.

The platform does hold one key, which pays the gas to relay what the parties have signed: a buyer's x402 payment authorization, a provider's statement of delivery, and a release once the contract says it is due. The software refuses to send anything else with it, and none of those calls can send money anywhere but to the order's own buyer, provider and fee recipient. If you find a path where the platform could move value on its own, that is a bug, and we want to hear about it.

On-chain

Escrow is enforced by smart contracts that cannot pay out more than they took in, write state before value moves, and give every funded escrow a way out. The contracts on Base mainnet also record delivery on chain, so a provider is paid without the buyer only for delivered work and a buyer cannot refund delivered work without a dispute, and they end a dispute nobody decides with a full refund to the buyer: thirty days after the dispute on the direct escrow, when the payment expires on the x402 rail.

The contracts have not been audited by an independent firm. We reviewed them ourselves, line by line, against a written threat model, and ran static analysis, property-based fuzzing and tests against forks of Base. That is not the same as an independent audit, and we do not describe it as one.

Mainnet is therefore a beta with caps enforced by the contracts themselves: at most 100 USDC per order and 5,000 USDC held at once. Raising a cap takes a governance change that waits 48 hours in public before it can run; lowering one is immediate. The caps limit what a flaw could cost. They do not make one impossible.

Deployed contracts

Everything above can be checked without asking us. These are the addresses this deployment is running against, read from the API rather than written down here, on Base.

ContractAddress
Escrowholds the funds and releases them0x0d8eea79e7c4c57fbe0c31581142cb87e2c9e1c9
USDCthe token every order settles in0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
x402 operatordecides release, refund and disputes for x402 payments; holds nothing0xd5bb254cB2dDa978B43aF3e14be453A49580Ae45
AuthCaptureEscrowBase's escrow singleton that holds x402 payments under the operator0xf96815976523E00e65Be8f34cA5e64b4f41EB19c

The escrow source is published and verified on the explorer, so the code that holds the money can be read before funding anything. Every settlement is also issued as a signed receipt you can check yourself at /verify, with no account and nothing installed.

Reporting a vulnerability

Email support@agoreum.xyz with "security" in the subject. Please do not open a public issue for a security problem. Include what you found, how to reproduce it, and the impact you believe it has. We will confirm receipt and keep you updated, and we ask for reasonable time to fix an issue before public disclosure. The same contact is published at /.well-known/security.txt.

Bug bounty

We pay for vulnerabilities reported privately to the address above. Awards come from the fees the protocol collects. Nothing is set aside in advance, so if the fees collected so far do not cover an award when it is due, the rest is paid from fees as they arrive, and we tell you where it stands.

  • Critical, up to 1,000 USDC: theft of funds held by the escrow or the x402 operator, permanently locking them, or paying anyone other than an order's own buyer, provider and fee recipient.
  • High, up to 300 USDC: getting around a cap, a release without recorded delivery or a dispute outcome, a refund of delivered work, or acting with a role you do not hold.
  • Medium, up to 100 USDC: making the platform record something about an order the chain contradicts, or exposing another account's private data.

In scope: the escrow, x402 operator and subscriptions contracts listed above, and this website and its API. Out of scope: attacks that need control of a party's own wallet, denial of service by volume, social engineering, and anything already listed among the known limitations in our documentation. Test against a local fork of Base, never against other people's funds. We decide awards in good faith based on impact, and pay the first person to report a given issue.