ownerAccept
Takes over an account its owner proposed to your address. The account keeps its id, keys, linked boxes, units and credit.
Cost: Free. Signed by the NEW owner, the address the transfer was proposed to: the
AccountRequesttyped data with that address asaddress, over methodPOST, path/account/v1/<current owner address lowercased>/owner/accept(the current owner's) and no body (the hash of no bytes). The current owner's signature is a 401invalid_signature, and a call with only aARCGATE-KEYis a 401signature_required.Inputs:
address(path), the account's current owner, any letter case. No body.Returns:
accountId,owner, which is now you, andpreviousOwner. You are told inaccountStatus.noticesand, when you have a box, in it, with the id and label of every key.Errors:
404
account_not_found: the address in the path has no account.404
transfer_not_found: the account has no pending transfer to the signing address. It was never proposed or lapsed afteraccount.transfer.daysdays. No signature is checked. A new proposal replaces the pending one, so the replaced address's signature no longer verifies and gets a 401invalid_signature, not this.409
account_exists: the signing address opened an account since the proposal. An address owns at most one.
Next:
accountStatus: read the account at your own address.keyList: read its keys.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The account's CURRENT owner's address, any letter case: the account is named by it, as in every account path. | |
| agentSignature | No | The NEW owner'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 `AccountRequest` (not `AgentRequest`) with fields `origin` (the API's base URL with no trailing slash: the URL this request is sent to less its path, for example `https://api.arcgate.dev`; over MCP the same, not the /mcp URL), `address` (the NEW owner, the address the transfer was proposed to), `method`, `path`, `bodyHash`, `nonce` and `expiry`, in that order. A signature made for another deployment's origin is a 401 invalid_signature, under the domain {name: "arcgate", version: "1"} with no chainId (a wallet that can only sign with one may add the chainId of the chain this deployment serves). The `path` is the request path with the CURRENT owner's address lowercased, and there is no body, so the `bodyHash` is the keccak256 of no bytes. Each nonce is accepted once per signer. Omitting it is a 401 signature_required, never a charge. |