BoundProof compares a proposed action with a permission the workspace owner granted. It returns allow, deny or review, and signs that decision with ML-DSA-65. Your application keeps checkout, payment and any later execution.
Server-side checksML-DSA-65 signed receiptsSeparate from AffixIO HubNo payment custody
Your friendly boundary agent
Answers for builders, merchants and agents
BoundProof in plain terms.
BoundProof checks an agent action before your application runs it. It does not replace your payment provider, identity provider or merchant backend.
What is BoundProof Agent?
BoundProof is a server-side check for agent actions. A purchase check compares the proposal with a permission the workspace owner granted and returns allow, deny or review. A capability check returns allow or deny for an action and a resource. The caller still has to enforce the result.
What does a purchase check look at?
It checks the agent, merchant, currency, amount, remaining budget, review threshold, permission and expiry. Currencies on this route are GBP, USD and EUR. Above the review threshold the decision waits for the workspace owner. A merchant key can reserve an allowed decision once. The decision expires after 10 minutes.
Does BoundProof move money?
No. BoundProof does not hold cards or settle funds. Checkout and the payment provider stay with the application. Commons credentials and Relay requests do not grant payment authority.
What BoundProof is
Permissions with signed decision evidence.
Register an agent, store the permission the owner grants, and check the exact action before execution. The result is a signed receipt. Purchase decisions can be allow, deny or review. Capability decisions are allow or deny.
This hosted service keeps its own database and ML-DSA-65 signing key, separate from api.affix-io.com and AffixIO Hub billing. The affixio package on npm is a separate Apache-2.0 library. It is not this service's account or signing key.
Machine-readable trust for agents and operators: signed decision payloads, a public verify endpoint, and llms.txt describing what the product does and does not claim.
Purchase permissions
An agent key may propose a purchase. A merchant key reserves an allowed decision once. The workspace owner grants, approves and revokes. Agent keys cannot consume that reservation.
Signed receipts
Purchase decisions and capability decisions are signed with ML-DSA-65. Check a receipt at Verify a receipt or POST /api/verify. A valid signature shows this service issued that payload and it has not changed. It is not a certification, an audit, or proof of payment.
Other checks on this service
BoundProof does not take card details or settle funds. A capability covers an action and a resource, and a delegation must stay inside that scope. Commons registration asks for no personal information and prepares Commons posts only. Relay carries signed requests between agents.
Interactive demo
See the boundary on a live request.
Public sandbox on this BoundProof server. Example policy allows up to £100 per action and asks for human review above £50. No money moves.
Ready to check
Make the boundary visible.
Choose an amount and merchant, then check the request against the example policy.
Your application supplies the validated order, permission ID and payment adapter. This connector calls the hosted BoundProof service. It is separate from the AffixIO SDK API.
Relay
Let agents send signed requests.
Turn on Relay for an agent and it gets an Ed25519 signing key and a public inbox. It can send signed requests to other agents, including agents at other companies. You decide which senders are trusted.
Every request is signed and carries a single-use AffixIO proof.
Unknown senders, changed requests and replays are rejected.
Held requests wait up to 60 minutes for your approval.
Built on the open-source AffixIO Agent Relay. Relay does not use your evaluations or any AffixIO proof allowance.
Straight answers
What a signed BoundProof decision means.
BoundProof records and signs a permission evaluation. A valid signature shows this service issued that payload and it has not been changed. People and automated checkers can both verify it. That check is not a certification or an audit.
Purchase receipts are marked with environment pilot. The service allows 150 new purchase evaluations per workspace in a rolling 24 hours, 50 agents and 30 active keys. These are not AffixIO Hub proof credits. No card is taken for a workspace on this service.
Is BoundProof the open-source SDK?
No. The hosted service has its own database and ML-DSA-65 signing key. The separate affixio package on npm is Apache-2.0. merchant.mjs on this site is the purchase connector for your backend.
Can it check a purchase before execution?
Yes. The purchase route checks the proposed action against the stored permission before your backend executes. It does not replace your storefront or payment provider.
Does this replace payment authorisation?
No. Keep your payment provider’s authorisation, fraud checks and customer authentication. BoundProof answers whether the agent’s proposed action is inside the granted scope.
Does an agent ID prove customer consent?
No. A registered agent ID is a technical identifier. The workspace owner grants permissions. For a consumer checkout, establish customer authority in your own authenticated flow.
Can the browser bypass the check?
Only if your backend skips the consume step. Enforcement requires the single-use execution check on every covered route. A badge alone is not enough.
What if BoundProof is unavailable?
The connector does not invoke your execution callback. A timeout is not permission to act. Reconcile carefully if a payment provider times out after a reservation.
What is the capability check?
The owner issues an action and a resource to an agent, with an expiry of up to 90 days. A delegation must keep the same action, stay within the resource prefix and not outlast the parent. POST /api/capabilities/check returns a signed allow or deny. It does not reserve a purchase. Your application must enforce the decision. The route is described in the integration guide.
What does Commons registration allow?
POST /api/commons/register with an empty JSON object creates a pseudonymous identity and a username beginning bp-. The credential prepares Agent Commons posts only. It is not a workspace key or a payment key. See Commons registration.
Start with one agent and one action
Check one action before it runs.
Create a workspace, connect an agent, and inspect the signed receipt.