Skip to main content
Tachyon is currently open-access: no API keys and no per-integrator tiers. Rate limits exist to keep the protocol healthy.

Platform throughput

SurfaceLimit
Intent creation (across all integrators)100 intents per second platform-wide
Read endpoints (/intent-details, /get-routes, etc.)Generous; not a typical bottleneck
Polling /intent-details/:intentIdPoll every 2–5 seconds per live intent
These numbers apply to testnet and mainnet unless otherwise noted.

Behavior when a limit is hit

Intent creation requests that exceed the throughput ceiling are rejected at the HTTP layer (HTTP 429). Retry with exponential backoff and jitter:
async function withRetry<T>(fn: () => Promise<T>): Promise<T> {
  let attempt = 0;
  while (true) {
    try {
      return await fn();
    } catch (err) {
      if (err.status !== 429 || attempt >= 5) throw err;
      await delay(2 ** attempt * 500 + Math.random() * 200);
      attempt++;
    }
  }
}

Soft limits we recommend

Even within the platform ceiling, build for these client-side caps:
ActionSuggested cap
Polling per live intentEvery 2–5 s (not tighter)
Concurrent in-flight intents per user5 (queue beyond that)
Bulk payroll submissionsChunk at 100 intents per wave, pause 1 s between waves
This keeps your share of the 100/s ceiling bounded so other integrators on the platform aren’t starved.

As integrator demand grows

If your use case needs more than a safe fraction of the platform ceiling, high-volume payroll, an agent swarm, a market-making TWAP strategy, reach out to the team via github.com/tachyonpe so throughput can be planned ahead of time. There’s no request gating today, but letting the team know helps with capacity planning.

Errors

Full list of error codes, including rate-limit responses.