Skip to main content

Tiers

A tier is what you buy. It fixes, for the period you paid for: how many Relay Units you may use, what that costs in USDC, what a unit beyond the cap costs, whether a sponsor key can pay for your users, how many wallets you can name on chain, and which rate class you are in.

These are snapshot values

The tables below are the launch configuration as of 2026-09-19, at a tariff of 10,000 micro-USDC per Relay Unit ($0.010/RU). The authoritative live values are GET /v1/pricing, which reads them from the contract. Every number in the tables below is also held as data in this site's source (data/tiers.json, itself generated), and a test fails the build if the two ever disagree.

For people​

What each plan costs, and how much it covers:

TierRelay Units / monthPriceEffective / RUPay-as-you-go / RUStatus
Starter1,000$10$0.0100$0.0130Available
Builder5,000$45$0.0090$0.0125Available
Growth25,000$200$0.0080$0.0120Available
Scale100,000$700$0.0070$0.0115Not yet sold
Enterprise500,000$3,000$0.0060$0.0110Not yet sold

Who it can pay for, and how it is served:

TierAll your users (sponsor key)Named wallets (key mode)Rate classService class
Starter—31Shared pool
Builder✓102Shared pool
Growth✓503Priority lane
Scale✓2504Priority lane
Enterprise✓1,0005Dedicated relayers

For agents​

TierRelay Units / monthPriceEffective / RUPay-as-you-go / RUStatus
Agent Meterednone (metered)$0—$0.0150Available
Agent Pro10,000$85$0.0085$0.0120Available
Agent Fleet100,000$650$0.0065$0.0110Not yet sold
TierAll your agents (sponsor key)Named wallets (key mode)Rate classService class
Agent Metered—16Shared pool, best effort
Agent Pro✓253Shared pool
Agent Fleet✓1,0005Priority lane

The agent tiers are explained separately, including why "Agent Metered" has no cap at all: Tiers for agents.

Reading the tables​

Relay Units per month is the cap. Every relayed transaction costs at least one unit; the formula says how many.

Price is price_units × tariff. The tier stores price_units; the tariff is one number on chain. That is the whole pricing model — one lever, and nothing else in the system carries a USDC price. (Tariff)

Effective per Relay Unit is simply price ÷ cap. It is derived here, never stored, so it cannot disagree with the two numbers it comes from. It is what makes the ladder visible: a larger plan is cheaper per unit.

Pay-as-you-go per Relay Unit is what a unit costs beyond the cap, if you have opted in. It is always above the effective price of the plan — buying the right size is cheaper than overflowing a small one. (Pay-as-you-go)

All your users (sponsor key) (for agents, all your agents) marks the plans where a sponsor key on your server pays for any sender: no list to keep and no limit on the number of senders, only the key's own allow-lists and daily limits. (Paying for other senders)

Named wallets (key mode) is how many addresses besides your own your plan may pay for by listing them on chain. The contract enforces it when you add one.

Rate class decides throughput: units per second, a burst allowance, a per-shard gas budget, a ceiling on any single transaction's gas limit, and units per hour. (Limits)

Service class describes which relayers serve you — a shared pool, a priority lane, or relayers dedicated to your account. It is a label stored on the tier, so it is part of what you bought, visible on chain.

"Not yet sold"​

Scale, Enterprise and Agent Fleet are configured but marked as not purchasable. The reason is capacity, and it is worth being blunt about it: those tiers commit to throughput that requires a larger relayer float than is funded, and selling a plan we cannot serve would be worse than not listing it. They become purchasable when the float behind them exists — announced in the changelog.

The API reports this honestly rather than hiding the tier: available: false with unavailableReason: "CAPACITY". Attempting to buy one returns TIER_NOT_PURCHASABLE.

The live values​

curl -sS https://api.co-relayer.com/v1/pricing

The response carries the tier list, the tariff and its version, the pay-as-you-go rates, the rate classes and the document's own version. Amounts in the pricing document are decimal strings, not JSON numbers, because agents recompute them in arbitrary languages and a float is not a price.

Everything in it is derived from contract views you can call yourself:

Contract viewWhat it gives
getTiersEvery tier record, as the contract stores it.
getPriceThe price of a tier at the effective tariff.
getPaygPriceThe pay-as-you-go price of a tier.
getPricingConfigTariff, Relay Unit schedule and deposit bounds in one call.
getRateClassesThe rate-class table.

What a purchase freezes​

When you buy, the contract writes a plan block. It records the cap, the period length, the pay-as-you-go price and the named-wallet limit — and nothing afterwards can reach into it. Editing a tier, raising the tariff, even retiring the tier entirely leaves a block that was already paid for exactly as it was sold. (Credits and billing)

Choosing​

  • Pick the tier whose cap you expect to use, not the one that covers your worst month. Pay-as-you-go handles the peaks and costs less than permanently buying headroom.
  • Paying for the users of an app? Pick Builder or above and use a sponsor key. Then the cap, not the number of users, is what you size. The named-wallet count matters only for addresses you list on chain.
  • If throughput matters more than volume — bursts rather than totals — read Limits first. The rate class is often the real reason to move up.