keyCreate
Makes another key for the account, with a label. The key is shown once.
Cost: Free. Signed by the owner over method
POST, path/account/v1/<address lowercased>/keyand the body{"label": ...}. TheARCGATE-KEYheader does not authorize it: a call with only a key is a 401signature_required.Inputs:
address(path), any letter case, andlabel(body), 1 to 64 characters.Returns: the key's
idandlabel, thekeyitself, shown only now, andcreatedAt. Send the key inARCGATE-KEY.Errors:
404
account_not_found: the address has no account. Create one withaccountCreate.
Next:
keyList: read the account's keys.tradeSearch: pay for a search with the key.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | A name for the key, 1 to 64 characters, to tell the keys apart in `keyList`. Not a secret. | |
| address | Yes | The account owner's address, any letter case. One account per address, and a signed request must be signed by it. | |
| agentSignature | No | The 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 owner), `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 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. Each nonce is accepted once per owner. Omitting it is a 401 signature_required, never a charge. |