Use it
Issue a bond
Claim your service, choose promises from the menu, post first-loss capital and a week of premium.
Claim
Prove you control the endpoint by serving /.well-known/bond.json on its origin, signed by your operator address. A DNS TXT record at _bond.<host> with the same JSON works too. The issue page builds and signs it with your wallet; the registrar checks it within five minutes and records you onchain as the operator.
{
"url": "https://api.example.com/v1/quotes",
"kind": "http",
"operator": "0xYourOperatorAddress",
"payTo": "0xWhereCustomersPayYou",
"signature": "0x... (personal_sign of the message below)"
}
message: PBI claim
service: https://api.example.com/v1/quotes
operator: 0xYourOperatorAddressThe promise menu
| Promise | Measured as | Kinds |
|---|---|---|
| Availability | share of probes that succeed, at or above the target over the epoch | all |
| Latency | p95 latency bin of successful probes at or under the target, per hour | all |
| Freshness | lag at or under the target against a public reference | RPC, feeds |
| Deviation | |value - Chainlink answer| in bps, both read at the same block | price feeds with a Chainlink feed on this chain |
| Tool stability | hash of tools/list equals the declared hash; amend with 24 h notice | MCP servers |
A probe succeeds, by kind: an HTTP API answers with the expected status and a body that matches its declared shape; an MCP server answers initialize and then tools/list within 10 seconds (no tool is ever called); an x402 endpoint answers an unpaid request with 402 and well-formed requirements for USDG on chain 4663 (the prober never pays); an RPC answers eth_blockNumber. Correctness of an answer is measured where an onchain reference exists: price feeds against Chainlink.
Pricing
You set the premium, an annual rate on the face value, streamed by the second from your premium balance. You pre-fund at least seven days of it. Backers fill the bond or they don't: a risky service pays more to fill. The board shows each leg's APR next to the realized slash rate over 30 days, which is the yield against the default history.
The issue call
issue({
serviceId, terms: { availBps: 9950, latBin: 255, freshSecs: 0, devBps: 0, toolsHash: 0x0 },
faceUSDG, // the USDG leg cap and the premium base
capBOND, // the $PBI leg cap, 0 for none
premiumBps, // annual, on face
legSplitBps, // share of the backers' premium to the USDG leg
epochLength, // 1 h to 7 d, whole hours
term, // whole epochs, up to a year
juniorUSDG, // at least 20% of each leg's cap
juniorBOND,
premiumDeposit // at least 7 days of premium
})The first epoch starts at the next full hour. Agents can get the same two unsigned transactions from the MCP tool issue or from POST /api/v1/tx/issue.