Skip to main content
Glama

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 AccountRequest typed data with that address as address, over method POST, 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 401 invalid_signature, and a call with only a ARCGATE-KEY is a 401 signature_required.

  • Inputs: address (path), the account's current owner, any letter case. No body.

  • Returns: accountId, owner, which is now you, and previousOwner. You are told in accountStatus.notices and, 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 after account.transfer.days days. No signature is checked. A new proposal replaces the pending one, so the replaced address's signature no longer verifies and gets a 401 invalid_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

TableJSON Schema
NameRequiredDescriptionDefault
addressYesThe account's CURRENT owner's address, any letter case: the account is named by it, as in every account path.
agentSignatureNoThe 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it declares the call free, states the exact EIP-712 domain, path-lowercasing and no-body hashing rules, says the current owner's signature yields 401 invalid_signature and a key-only call yields 401 signature_required, and enumerates every failure mode including the subtle replaced-proposal case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long, but organized under Cost/Inputs/Returns/Errors/Next headings with the core action front-loaded in the first sentence. Some signing detail in the Cost bullet is duplicated verbatim in the schema's agentSignature description, which costs it the top mark.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description lists the return fields (accountId, owner, previousOwner), explains the notices channel, and fully covers the state outcome (account keeps its id, keys, boxes, units and credit) plus the error taxonomy. Nothing an agent needs to call or interpret it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both the address path parameter and the nested agentSignature object in depth. The description's Inputs bullet ('address, the account's current owner, any letter case. No body.') largely restates the schema, adding only the no-body confirmation; baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Takes over an account its owner proposed to your address.' That is precisely distinguishable from the sibling ownerTransfer, which proposes the transfer rather than accepts it, and the description makes the accepting party's role explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition is unambiguous (a pending transfer proposed to the signing address, otherwise 404 transfer_not_found), and the Next section routes the agent to accountStatus and keyList afterwards. It stops short of naming ownerTransfer as the counterpart tool, so the when-to-use framing is contextual rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources