How it works
Every call goes through one place.
Your agent sends its outbound calls to Blocknet instead of calling services directly. Blocknet checks each one against your policy, and when a service asks to be paid, decides before the agent's wallet signs.
01
The flow
- Check the host
Deny rules win, then allow rules, then your default. A blocked host is never contacted.
- Forward the call
Allowed calls go through. Free answers come back to the agent unchanged.
- Decide on payment
If the service asks to be paid, Blocknet checks price, budget and trust, and answers allow, review or deny.
- Agent signs
On allow, the agent's own wallet signs. Blocknet never sees the key.
- Paid retry
The agent retries with a single-use approval. Blocknet checks it and forwards the payment.
- Record the outcome
Only payments that got a working answer count as spend. Services that fail lose trust.
02
Payment rules
Every decision starts at allow. Each rule can only make it stricter, and each one that fires adds a reason.
| Rule | Result |
|---|---|
| Payment network or currency not on your list | deny |
| Price above the per-request cap | deny |
| Price above what's left of today's budget | deny |
| No reputation for this service yet | review |
| Trust score below your minimum | deny |
| Price above the auto-approve threshold | review |
| None of the above | allow |
Every result is a setting you can change. These are the defaults.
03
Approvals
Each payment decision creates an approval. It works once, for one service, for five minutes by default. A reviewed payment waits on a dashboard until a person approves or denies it.
Approved payments hold their amount against the daily budget until they're used or expire, so many agents asking at once can't overshoot it together.
04
Trust
Each paid service has a score from 0 to 1. It starts from a score you set, or from neutral, and is blended with Blocknet's own record of what that service returned after being paid. The more payments it has seen, the more its own record counts.
With nothing known about a service, Blocknet asks a person. The record stays on your machine.
05
Three ways in
Claude and other MCP clients
One command. Blocknet starts by itself and gives the agent three tools: fetch, payment status and budget.
claude mcp add blocknet -- node /path/to/blocknet/bin/blocknet.js mcp
Your agent's code
A drop-in fetch. Allowed calls return the service's response. Blocked calls and refused payments throw with Blocknet's reasons. Payments waiting on a person are polled for you, and approved ones are signed by your wallet code.
const fetch = createBlocknetFetch({ signPayment });
const res = await fetch("https://api.example-data.com/v1/quote");
Any language
One endpoint. Send the call, read the decision.
POST /v1/fetch
{ "url": "https://api.example-data.com/v1/quote" }
← 402
{
"blocknet": {
"decision": "allow",
"approval": "4b0d6f2e-…",
"reasons": ["trust score 0.92", "approved by policy"],
"option": { "network": "base", "asset": "USDC", "amountUsd": 0.001 },
"budgetRemainingUsd": 4.82
}
}
Every request, decision, approval and payment is written to an append-only audit log, with its reasons.
Next: security and limits