# Liquid Staking Tokens Comparison API
> The major Ethereum liquid-staking tokens (LSTs) compared side by side, read keyless directly from the Ethereum blockchain via a public RPC node. When you stake ETH through Lido, Rocket Pool, Coinbase, Binance or Frax you receive a liquid-staking token — wstETH, rETH, cbETH, wBETH or sfrxETH — whose on-chain exchange rate against ETH climbs as staking rewards accrue. Those rates, and the yields implied by how fast they climb, differ between providers, and that spread is exactly what someone choosing where to stake (or arbitraging between LSTs) needs in one place. The rates endpoint is the comparison table: every tracked LST with its live ETH exchange rate, its net staking APR over the last week (derived from the on-chain rate growth), its token supply and its issuer, ranked by yield. The token endpoint drills into one LST by symbol — its rate, supply, ETH backing (TVL) and the APR over the last day, week and month. The convert endpoint converts any amount between any LST and ETH, or between two LSTs, at the current on-chain rates. This is the cross-LST comparison cut — distinct from the single-protocol feeds (lido, Rocket Pool, ether.fi) and the DeFi-TVL feeds: it is about the exchange rates and on-chain-derived yields of the staking tokens themselves. Every number is read live from each token contract; APR is derived from real historical on-chain state, not a marketing figure. Rates are ETH per token. Keyless, nothing stored beyond a short cache.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/lstcompare-api/..."
```

## Pricing
- **Free** (Free) — 950 calls/Mo, 2 req/s
- **Starter** ($15/Mo) — 49,000 calls/Mo, 6 req/s
- **Pro** ($39/Mo) — 340,000 calls/Mo, 16 req/s
- **Scale** ($87/Mo) — 2,150,000 calls/Mo, 40 req/s

## Endpoints

### Rates

#### `GET /v1/rates` — All tracked LSTs: ETH rate, 7d APR, supply, ranked by yield

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lstcompare-api/v1/rates"
```

**Response:**
```json
{
    "data": {
        "note": "The major Ethereum liquid-staking tokens compared, ranked by net 7-day APR. eth_per_token is the live on-chain exchange rate (one token is worth this much ETH; older tokens have higher rates because rewards have accrued for longer — the rate, not the level, is what matters for yield). apr_7d_pct is the net-of-fees yield over the last week, annualised from the on-chain rate growth. supply is the token's total supply. Live from each token's contract, cached ~90s.",
        "block": 25306236,
        "count": 5,
        "source": "Ethereum LST token contracts via public RPC (ethereum-rpc.publicnode.com), keyless",
        "tokens": [
            {
                "supply": 38829.3,
                "symbol": "sfrxETH",
                "protocol": "Frax",
                "apr_7d_pct": 3.18,
                "eth_per_token": 1.161235
            },
            {
                "supply": 3174974.8,
                "symbol": "wBETH",
                "protocol": "Binance",
                "apr_7d_pct": 2.57,
                "eth_per_token": 1.099795
            },
            {
                "supply": 393750.6,
                "symbol": "cbETH",
                "protocol": "Coinbase",
                "apr_7d_pct": 2.55,
                "eth_per_token": 1.13246
            },
            {
                "supply": 3540322.1,
                "symbol": "wstETH",
                "protocol": "Lido",
                "apr_7d_pct": 2.54,
                "
…(truncated, see openapi.json for full schema)
```

### Token

#### `GET /v1/token` — One LST by symbol: rate, supply, TVL, 1d/7d/30d APR

**Parameters:**
- `symbol` (query, required, string) — LST symbol: wstETH, rETH, cbETH, wBETH or sfrxETH Example: `rETH`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lstcompare-api/v1/token?symbol=rETH"
```

**Response:**
```json
{
    "data": {
        "note": "One liquid-staking token in detail. eth_per_token is the live on-chain exchange rate; tvl_eth is supply × rate (the ETH backing the token). net_apr_pct is the net yield over 1d/7d/30d, annualised from the on-chain rate growth with real block timestamps — the actual yield holders earned, not a marketing figure (1d is noisier; 7d/30d are steadier). A window is null if its historical state is unavailable. Live, cached ~90s.",
        "source": "Ethereum rETH contract via public RPC (ethereum-rpc.publicnode.com), keyless",
        "supply": 327265.8,
        "symbol": "rETH",
        "tvl_eth": 381346.4,
        "at_block": 25306236,
        "protocol": "Rocket Pool",
        "description": "rETH (getExchangeRate)",
        "net_apr_pct": {
            "1d": 1.89,
            "7d": 2.12,
            "30d": 2
        },
        "eth_per_token": 1.16524984,
        "token_per_eth": 0.85818506
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:40.219Z",
        "request_id": "378af77a-b58a-465f-b26e-66ac3e1a0522"
    },
    "status": "ok",
    "message": "Token retrieved successfully",
    "success": true
}
```

### Convert

#### `GET /v1/convert` — Convert an amount between any LST and ETH

**Parameters:**
- `amount` (query, required, string) — Amount to convert Example: `10`
- `from` (query, required, string) — Source: eth or an LST symbol Example: `wstETH`
- `to` (query, required, string) — Target: eth or an LST symbol Example: `rETH`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lstcompare-api/v1/convert?amount=10&from=wstETH&to=rETH"
```

**Response:**
```json
{
    "data": {
        "to": "reth",
        "from": "wsteth",
        "note": "Converts an amount between any liquid-staking token and ETH (or between two LSTs) at the current on-chain exchange rates. Each token is valued in ETH via its contract rate, then converted to the target. ETH itself is 1. Live, cached ~90s.",
        "amount": 10,
        "result": 10.61454641,
        "source": "Ethereum LST token contracts via public RPC (ethereum-rpc.publicnode.com), keyless",
        "eth_per_to": 1.16524984,
        "eth_per_from": 1.23685985
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:40.336Z",
        "request_id": "238926cc-caea-46bb-8984-6aa5e9587a8f"
    },
    "status": "ok",
    "message": "Conversion retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lstcompare-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "rates and meta take no parameters. token takes symbol (one of wstETH, rETH, cbETH, wBETH, sfrxETH). convert takes amount (number), from and to (each 'eth' or an LST symbol). Rates are ETH per token; APR is annualised from on-chain rate growth with real block timestamps. A ~90-second cache fronts the RPC.",
        "sample": {
            "apr_7d_pct": 3.18,
            "top_by_apr": "sfrxETH"
        },
        "source": "Ethereum LST token contracts via public RPC (ethereum-rpc.publicnode.com), keyless, live",
        "service": "lstcompare-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/rates": "All tracked LSTs: ETH rate, 7d APR, supply, ranked by yield.",
            "GET /v1/token": "One LST by symbol (symbol=rETH): rate, supply, TVL, 1d/7d/30d APR.",
            "GET /v1/convert": "Convert an amount between any LST and ETH (amount, from, to)."
        },
        "description": "The major Ethereum liquid-staking tokens (wstETH/Lido, rETH/Rocket Pool, cbETH/Coinbase, wBETH/Binance, sfrxETH/Frax) compared side by side, read keyless directly from the Ethereum blockchain. The rates endpoint is the comparison table (live ETH exchange rate, net 7d APR, supply, ranked by yield); token drills into one LST by symbol (rate, supply, TVL, 1d/7d/30d APR); convert converts any amount between any LST and ETH or between two LSTs. The cross-LST comparison cut — distinct from the single-protocol feeds (lido
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/lstcompare-api
OpenAPI spec: https://www.oanor.com/api/lstcompare-api/openapi.json
