id-block
Monotonic id blocks: the next invoice or ticket numbers for a fleet of agents — Hands out strictly increasing integer blocks from a named sequence (1-1000 ids per call) so parallel agents never issue the same invoice, ticket or order number. Numbers are never reused. Not gapless: a block an agent reserves and never uses stays a gap, and if your call's payment fails after the block is written the same requestId returns that same block on retry. Legally gapless series must be a
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"op": "<op>",
"sequence": "<sequence>"
},
"name": "id-block"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| count | No | Ids to reserve; default 1. | |
| start | No | First id of a new sequence; ignored once it exists. Default 1. | |
| sequence | Yes | Sequence name, e.g. invoice:2026. | |
| tenantId | No | Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant. | |
| requestId | No | Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect). |