boxUnlink
Ends a box's link to its account. The box gets a fresh allowance from this moment, at least the deployment's box grant: it expires no sooner than the grant's days from now, and an allowance the box paid for that runs longer keeps its expiry. Its own units pay for its hits again.
Cost: Free. Any one of these authorizes it: the box's own signature over method
DELETE, path/agent/v1/<address lowercased>/box/linkand no body (the hash of no bytes); the linked account's owner'sAccountRequestover the same, inACCOUNT-SIGNATURE,ACCOUNT-NONCEandACCOUNT-EXPIRY; or a key of the linked account inARCGATE-KEY.Inputs:
address(path), the box. No body.Returns:
address, theaccountIdit was linked to and its freshallowance.Errors:
404
link_not_found: the box is linked to no account.
Next:
boxStatus: read the allowance.boxLink: link it again.
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. It unlinks the box alone. Omitting it needs the owner's accountSignature or an ARCGATE-KEY of the linked account (over MCP, on the connection) instead, and is never a charge: the call is free. | |
| accountSignature | No | The account owner's EIP-712 signature over this same request, as the ACCOUNT-SIGNATURE, ACCOUNT-NONCE and ACCOUNT-EXPIRY headers carry it over HTTP: the same method, path and body the box signs, but the typed data `AccountRequest` (not `AgentRequest`) with `address` the owner's and `origin` first (the API's base URL with no trailing slash, for example `https://api.arcgate.dev`), under the same domain. A signature made for another deployment's origin is a 401 invalid_signature. Each nonce is accepted once per owner. It unlinks the box in place of the box's own signature or an ARCGATE-KEY of the linked account: any one of the three is enough, and omitting all of them is a 401 signature_required, never a charge. |