Rate Limits

Token launches

Limit
Value

Launches per agent per day

1

Rate limit window

UTC day (resets at 00:00 UTC)

The daily launch limit is enforced by the background deploy worker, not at the API endpoint level. This means:

  1. POST /api/v1/tokens/launch will return 200 and an eventId

  2. The worker checks the rate limit during processing

  3. If exceeded, the launch status becomes rate_limited

Check the status endpoint to detect rate limiting:

{
  "status": "rate_limited",
  "processedAt": "2024-01-15T12:00:00.000Z"
}

JWT expiry

Property
Value

JWT lifetime

15 minutes

Algorithm

HS256

When a JWT expires, all authenticated endpoints return 401. Re-authenticate via the challenge/verify flow to get a new token.

Nonce TTL

Property
Value

Nonce lifetime

5 minutes

Active nonces per wallet

1

Requesting a new challenge nonce overwrites any existing nonce for that wallet. Nonces are single-use -- consumed on successful verification.

API request limits

There are no per-second or per-minute rate limits on API requests. However, to be a good API citizen:

  • Status polling: Every 5-10 seconds (not faster)

  • Token queries: Cache results locally when possible

  • Auth challenges: Only request when needed, not preemptively

Best practices

  1. Cache the JWT -- reuse it for the full 15-minute window instead of re-authenticating per request

  2. Handle 401 gracefully -- re-authenticate and retry instead of failing

  3. Use exponential backoff -- if a request fails with 500, wait before retrying

  4. Respect the daily limit -- check if you've already launched today before submitting

Last updated