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
| Name | Type | Description |
|---|---|---|
| addressrequired | string | The Sui address that signed (0x + 64 hex). |
| signaturerequired | string | Base64 Sui signature of the personal message from /v0/auth/nonce. Any scheme works: ed25519, secp256k1, secp256r1, zkLogin, multisig. |
| message | string | The exact `message` text returned by POST /v0/auth/nonce. Send this, or nonce and issued. |
| nonce | string | The nonce from POST /v0/auth/nonce (with issued, instead of message). |
| issued | string | The 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
}
}