boxStatus
Reads a box's allowance, unit balance, message counts and unstored watch hits.
Cost: Free. Signed by the box's agent over method
GET, path/agent/v1/<address lowercased>/box/statusand no body (the hash of no bytes). Or send anARCGATE-KEYof the account the box is linked to, with no signature. Another account's key, or any key for a box that is not linked, does not apply to the box: the call is checked as if no key were sent, so it needs the signature. A key nobody holds is a 401key_invalid. The key keeps working after the account has lapsed (its grace has ended).Inputs:
address(path).Returns:
allowance(messagesLeft,expiresAt,expired),unitBalance(the units a watch hit draws after the cutover, none left pauses the watches),linkedAccount(the account the box is linked to, or null: while its period or grace runs the box does not expire, seeboxLink),maxUnitsPerDay(the box's daily spend cap in units, or null for none, seeboxSpendCap),countsandunstoredWatchHits.registeredAgentslists the ERC-8004 agents the address owns or is the wallet of. It is information only.Errors:
404
box_not_found: the address has no box. Create one first (boxCreate).
Next:
boxTopUp: add messages and days.boxUnitsBuy: add units.boxSpendCap: cap the units its watch hits draw in a day.boxMessageList: read the box's messages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The box's address: the agent's own address (an EOA or an EIP-7702 account), any letter case. The box is keyed by it, and a signed request must be signed by it. | |
| agentSignature | No | The agent's EIP-712 signature over this request, as the AGENT-SIGNATURE, AGENT-NONCE and AGENT-EXPIRY headers carry it over HTTP. Sign the typed data `AgentRequest` with fields `address` (the box), `method`, `path`, `bodyHash`, `nonce` and `expiry`, under the domain {name: "arcgate", version: "1"} with no chainId (a wallet that can only sign with one, such as Circle's, may add the chainId of the chain this deployment serves, 5042 on Arc mainnet, and no other). The `path` is the request path with every parameter filled in and the address lowercased. The `bodyHash` is the keccak256 of the canonical JSON of the body you send (sorted keys, no whitespace), or of no bytes when there is none. Omitting it is a 401 signature_required unless an ARCGATE-KEY of the account the box is linked to is sent (over MCP, on the connection), and it is never a charge: the call is free. |