Method
auth.nonce
Start a sign-in: get a message to sign with a Sui key.
Details
- Endpoint
- POST /v0/auth/nonce
- Credits
- Free
- Rate class
- Light. Counts against your light requests per second.
Returns a one-time nonce and the exact message to sign. Sign `message` as a Sui personal message with the key of `address`, then send the signature to POST /v0/auth/verify (developer portal session) or POST /v0/keys/agent (a Free API key in one step). The nonce works once and expires after 5 minutes. Costs nothing.
Parameters
| Name | Type | Description |
|---|---|---|
| addressrequired | string | The Sui address that will sign (0x + 64 hex). |
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/auth/nonce" \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"address": "0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e"
}'TypeScript
const res = await fetch("https://api.tide.ad/v0/auth/nonce", {
method: "POST",
headers: {
"x-api-key": process.env.TIDE_API_KEY!,
"content-type": "application/json",
},
body: JSON.stringify({
"address": "0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e"
}),
});
const data = await res.json();Response
JSON
{
"address": "0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e",
"nonce": "k3Jd8sLq0Xv2mZpA9rTb1WcE",
"issued": "2026-11-03T12:00:00.000Z",
"expiresAt": "2026-11-03T12:05:00.000Z",
"message": "tide.ad wants you to sign in\n\naddress: 0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e\nnonce: k3Jd8sLq0Xv2mZpA9rTb1WcE\nissued: 2026-11-03T12:00:00.000Z"
}