---
title: API credits and pricing
sidebar_label: Credits and pricing
sidebar_position: 4
description: 1,000,000 credits = $1.00, prepaid in DYNO and never expiring. Why calls are priced by cost, what $50 buys, and free hourly credits for DYNO holders.
keywords: [api pricing, credits, dyno, holder tiers, api cost, prepaid credits]
---

# Credits and pricing

**1,000,000 credits = $1.00.** Credits are prepaid in DYNO and do not expire.

## Why credits and not requests

Not every call costs the same to serve. Reading the ETN price is a value already
in memory; listing yield farms is orders of magnitude more work. A flat
per-request quota would either price the cheap call as though it were expensive,
or let the expensive one run unmetered. Credits let the price say what the call
actually costs, and let you see that before you make it.

The [cost table](./reference.mdx#cost-table) is generated from the same module the
meter charges against, so what is published and what is charged are the same
number by construction.

## What $50 buys

| What you are building | Credits per call | How long $50 lasts |
| --- | --- | --- |
| A price ticker every 30 seconds | 25 | **694 days** |
| A dashboard reload (a full page of tokens, pools and trades, plus spot), every minute for 8 h/day | 1,825 | **57 days** |
| A bot polling 20 prices every 10 seconds via `prices.batch` | 300 | **19 days** |
| The same bot using 20 single calls | 1,000 | **5.8 days** |

Those last two rows are the point of the batch endpoints.

Every figure here is the expensive case: a full page from each list, priced at
its ceiling. Ask for fewer items and you are charged for fewer — the per-item
part of a price is charged on what comes **back**, not on what you asked for.

## Buying credits

1. Ask for a quote on the [developer page](https://app.electroswap.io/developer).
   You get a locked rate, an exact DYNO amount, and fifteen minutes.
2. Approve **exactly that amount** — never an unlimited allowance — and deposit.
3. Credits appear within about thirty seconds. The page nudges settlement so it
   is usually faster.

### The rate

DYNO is priced against the **volume-weighted mean of the hourly typical prices
over the last fourteen days**, times the ETN spot. Not the last trade: a
last-trade price can be moved by one transaction, and this is the number your
money is measured against. To move the reference you would have to hold a
manipulated price across most of a fortnight, paying fees and arbitrage the whole
time.

The window is fourteen days because DYNO trades in clusters — several swaps
inside a couple of hours, then nothing for a day — and a six-hour window would
refuse to quote on almost every day. At least six of those 336 hours must have
traded for a quote to be offered at all.

If we cannot price DYNO honestly — no usable ETN tick, too little trading in the
window, or a reference that disagrees with the last trade by more than 15% — the
quote is **refused**. It is not estimated, and nothing is charged. Top-ups pause
until we can price it properly again.

### The fifteen minutes

A quote locks a rate for fifteen minutes and is single-use. Yes, that is
technically a short option on a ~$50 purchase; its value is cents, and saying so
is easier than pretending it is not there.

If you deposit **less** than the quote, you are credited pro rata at the quoted
rate. We are not going to keep money you sent us because the amount was not
round.

## Free credits for DYNO holders {#holder-tiers}

There is no free tier. A base account has **zero** credits, and free credits exist only as this: hold DYNO, earn credits for every hour you hold it.

| Tier | DYNO held | Credits/hour | Credits/day | Worth/month |
| --- | --- | --- | --- | --- |
| Spark | 25 | 400 | 9,600 | ~$0.29 |
| Arc | 100 | 2,000 | 48,000 | ~$1.44 |
| Surge | 500 | 8,000 | 192,000 | ~$5.76 |
| Storm | 2,000 | 32,000 | 768,000 | ~$23.04 |

**Worth/month** is that tier's credits at the published rate — 1,000,000 credits
= $1.00 — over thirty days of unbroken holding. Counted in calls instead of
dollars: a 25-credit price check every thirty seconds costs 72,000 credits a day
around the clock, so Storm covers about ten of those at once and Spark covers one
running a few hours a day. Free credits are a floor to build against, not a
substitute for buying them.

**Per hour is what is actually credited.** Every hour, any account at or above a tier *at that moment* is credited that hour's share. Miss the hour and you earn nothing for it — so borrowing DYNO for five minutes earns essentially nothing, and a full day's allowance costs a full day of holding.

Your wallet balance is the whole score. Fractions count: 24.9 DYNO is not Spark, but 25 exactly is.

Free credits are capped at **25,000,000** — $25, and about a month at the top tier — and are always spent before credits you paid for. Accrual that never expired would just be a monthly lump by another name, which is the thing the hourly cadence exists to avoid. The cap is a ceiling on accrual, not on your balance: it never takes anything back.

Credits you have already earned are yours. If you sell your DYNO you keep what you accrued; what stops is earning more.
