Sevren docsAccount & access

Billing

Paid models are charged per token from your account. Wallets that hold enough of the Sevren token get a one-time free try on the paid models, and from a larger share, a plan with free tokens every day.

Prices

Each model has a price per one million prompt tokens and per one million output tokens, in USD. Thinking tokens of reasoning models are output tokens. The token counts are the ones returned in usage.

FORMULA
cost (USD) = prompt_tokens     × pricePer1MInput  / 1,000,000
           + completion_tokens × pricePer1MOutput / 1,000,000

Charges are exact decimal amounts, not rounded to cents. Current prices, read live from GET /v1/catalog:

Loading the live model catalog…

Credit

Every account has one credit balance in USD. GET /account/me reports it:

  • creditUsd: all credit ever added to the account.
  • usedUsd: what finished requests have cost.
  • reservedUsd: what running requests are holding right now.
  • availableUsd: credit minus used minus reserved, the amount new requests can use.
CURL
curl https://api.example.com/account/me -H "Authorization: Bearer $SEVREN_API_KEY"

# "balance":    {"creditUsd":"…","usedUsd":"…","reservedUsd":"…","availableUsd":"…"}
# "freeTokens": {"resetsAt":"…T00:00:00Z","models":[{"model":"…","input":{"total":…,"used":…,"remaining":…},"output":{…}}]}
# "trial":      {"eligible":…,"minSupplyBps":…,"models":[{"model":"…","input":{"total":…,"used":…,"remaining":…},"output":{…}}]}

Holds

Before a paid request runs, Sevren holds enough to pay for its prompt and its whole output cap. If the account cannot pay for the whole cap, the cap is lowered to what it can pay for; if it cannot pay for the prompt and one output token, the request answers 402 insufficient_quota. When the request ends, the actual usage is charged and the rest of the hold is released. If a streamed answer ends early (you disconnect, or it times out) before the model reports its token count, the output already sent to you is charged from its length, at about one token per three bytes and never above the output cap. Several requests can run at once; each holds its own share. Output limits has the details.

Holder plans

Your account is the Ethereum wallet you sign in with. If the wallet holds at least a set share of the Sevren token's total supply, the account gets the best plan that share reaches. A plan gives free tokens every day on the models it covers. The tiers below are read live from GET /auth/wallet/config:

Loading the live plan tiers…

  • The share counts what the wallet held at both the latest and the finalized block, so tokens borrowed for one block do not count.
  • Plans are re-checked in the background every few minutes. A plan whose last check is more than one hour old is inactive and gives no free tokens until it is checked again. POST /account/plan/refresh checks it on demand.
  • Selling or moving the tokens ends the plan at the next check.

Holder free try

A wallet that holds at least a set share of the token's total supply, smaller than the first plan's, gets a one-time free try: free prompt and output tokens on each paid model that offers them. The free try and the plans' daily free tokens per model, read live from GET /v1/catalog and GET /auth/wallet/config; the operator can change them at any time:

Loading the live holder benefits…

  • The free try belongs to the wallet and is given once, not per day.
  • It is a budget of tokens on each model, prompt and output counted separately, not a number of requests. It pays for requests on that model until it runs out, with no limit per request.
  • It is used before the plan's free tokens and before credit. A request that needs more than what is left uses the rest, and the plan's free tokens or credit pay the remainder.
  • It starts once the token is launched and the wallet's holding has been checked, the same way as for a plan: at both the latest and the finalized block, and only while the last check is at most one hour old.
  • GET /account/me reports it in trial: per model, the total, used and remaining prompt (input) and output tokens, and whether the account is eligible.

Free tokens per day

  • A plan gives free tokens on each model it covers, every day; the table above shows how many. On a model where the plan has none, requests are paid from the free try, then from credit.
  • The allowance resets every day at 00:00 UTC (freeTokens.resetsAt). Unused free tokens do not carry over.
  • Prompt and output tokens are counted separately on each model, and each model's allowance is independent of the others. Thinking counts as output.
  • Free tokens are spent before any credit. A request that the remaining free tokens cover entirely needs no credit at all. Otherwise the free tokens cover part of it, credit pays the rest, and the output is capped by what both can pay for.
  • A running request holds its share of the free tokens, so remaining in freeTokens.models can be lower than total − used until it ends.

Order of spending

  1. Paid model: the free try's remaining tokens on that model pay first, prompt and output tokens separately.
  2. Then the day's remaining plan tokens on that model.
  3. Credit pays for the rest, at the model's prices.
  4. If none of them covers the prompt and at least one output token, the request answers 402 insufficient_quota.

One request can be split across them. When the free tokens on a model run out, the model is billed from credit while other models keep their own allowances; see Holder benefits.

Adding credit

Credit is added with a direct on-chain payment from the account page of the web app. The payment only adds credit; model requests are always paid from account credit. Payments explains the payment contract, your payment reference and when credit arrives.

  1. Sign in, choose ETH or USDG on Robinhood Chain and enter the USD amount, at least the minimum the account page shows.
  2. Your wallet sends one transaction to the Sevren payment contract with your account's payment reference. USDG needs an approval transaction first when the contract may not spend enough of it yet. Network fees are paid in ETH.
  3. After 900 block confirmations on Robinhood Chain, usually 1 to 2 minutes later, Sevren records the Paid log and credits the account by the full value: 1 USDG as $1, and ETH at the Chainlink ETH/USD price at that moment. The web app calls GET /account/payments for your reference and the status of recent payments; nothing on the account API moves funds.
  • Payments are final. The contract forwards every payment to the operator's treasury in the same transaction, so a payment cannot be withdrawn or refunded, and credit cannot be turned back into ETH or USDG.
  • You can leave the page after sending: the payment is credited to the account its reference names, whether or not the tab stays open.
  • Payments are public on Robinhood Chain: anyone can see the paying wallet, the amount and the time. Sevren links each payment to the account it credits by its reference. See Privacy.

Your balance, free try and free tokens are always visible on the account page.