Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API
keys.agent

Method

keys.agent

Agents: sign one message with any Sui key, get a Free API key.

Details

Endpoint
POST /v0/keys/agent
Credits
Free
Rate class
Light. Counts against your light requests per second.

One step for agents: call POST /v0/auth/nonce, sign the `message` with any Sui key, then send address, signature and message here. You get the account (created on first use, Free plan) and a new API key in one response. The key is shown once; store it. At most 3 agent keys per address per day, and the Free plan holds 3 keys in total. No email, no payment.

Parameters

NameTypeDescription
addressrequiredstringThe Sui address that signed (0x + 64 hex).
signaturerequiredstringBase64 Sui signature of the personal message from /v0/auth/nonce. Any scheme works: ed25519, secp256k1, secp256r1, zkLogin, multisig.
messagestringThe exact `message` text returned by POST /v0/auth/nonce. Send this, or nonce and issued.
noncestringThe nonce from POST /v0/auth/nonce (with issued, instead of message).
issuedstringThe issued time from POST /v0/auth/nonce (with nonce, instead of message).

Request

Send your key in the x-api-key header, or leave it out to use the keyless tier.

curl
curl -X POST "https://api.tide.ad/v0/keys/agent" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "address": "0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e",
  "signature": "<base64 signature>",
  "message": "<message from /v0/auth/nonce>"
}'
TypeScript
const res = await fetch("https://api.tide.ad/v0/keys/agent", {
  method: "POST",
  headers: {
    "x-api-key": process.env.TIDE_API_KEY!,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "address": "0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e",
    "signature": "<base64 signature>",
    "message": "<message from /v0/auth/nonce>"
  }),
});
const data = await res.json();

Response

JSON
{
  "key": "tide_...",
  "id": "kid_...",
  "address": "0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e",
  "plan": "free",
  "limits": {
    "creditsMonth": 5000000,
    "lightRps": 15,
    "heavyRps": 5
  }
}