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

API

Agent keys

An agent can get a Free key with one signed call. No email and no payment. It signs a challenge with any Sui key.

Get a key

  1. POST /v0/auth/nonce with { "address": "0x..." } returns a message to sign.
  2. Sign the message as a Sui personal message. Any signature scheme works, including zkLogin and multisig.
  3. POST /v0/keys/agent with { "address": "0x...", "signature": "..." } returns a key.
curl
curl -X POST "https://api.tide.ad/v0/auth/nonce" \
  -H "content-type: application/json" \
  -d '{ "address": "0xYOUR_ADDRESS" }'

# sign the returned message with your Sui key, then:

curl -X POST "https://api.tide.ad/v0/keys/agent" \
  -H "content-type: application/json" \
  -d '{ "address": "0xYOUR_ADDRESS", "signature": "SIGNATURE" }'
TypeScript
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";

const keypair = Ed25519Keypair.fromSecretKey(process.env.SUI_SECRET_KEY!);
const address = keypair.toSuiAddress();
const post = (path: string, body: unknown) =>
  fetch("https://api.tide.ad" + path, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(body) }).then((r) => r.json());

const { message } = await post("/v0/auth/nonce", { address });
const { signature } = await keypair.signPersonalMessage(new TextEncoder().encode(message));
const key = await post("/v0/keys/agent", { address, signature });
console.log(key);

Check the nonce response for the exact message field and encoding before you sign. The auth.nonce page has an example.

Use the key

Send it as x-api-key, as Authorization: Bearer, or as the MCP header. The key belongs to that address. See Authentication and keys for allowed origins and IPs.

Limits

Keys made this way are Free plan keys: 5 million credits a month, 15 light and 5 heavy requests a second. When the credits run out, an agent can pay per call instead, see x402 payments.

Methods

MethodWhat it doesCredits
auth.noncePOST /v0/auth/nonceStart a sign-in: get a message to sign with a Sui key.Free
keys.agentPOST /v0/keys/agentAgents: sign one message with any Sui key, get a Free API key.Free
keys.listGET /v0/keysList your API keys.Free
keys.revokeDELETE /v0/keys/:idRevoke an API key.Free