# Wrapped Bitcoin Tracker API
> How much Bitcoin lives on Ethereum, and through whose vault, read live and keyless straight from the Ethereum blockchain. Bitcoin itself can't run in DeFi, so it gets "wrapped": a custodian (or a decentralised bridge) locks real BTC and mints a 1:1 ERC-20 that trades on Ethereum. WBTC (BitGo) was the original and long the only one that mattered, but after the 2024 custody controversy a competitive market opened up — Coinbase's cbBTC, the decentralised tBTC (Threshold), Lombard's LBTC, Kraken's kBTC and others now split the pie. The wrappers endpoint lists every tracked wrapped-Bitcoin token ranked by the BTC it holds, each with its issuer/custodian, the BTC backing it, its US-dollar value and its share of all wrapped BTC, plus the totals. The token endpoint returns one wrapper's detail by symbol. The dominance endpoint is the concentration view — WBTC's share, the split between custodial wrappers (a company holds the BTC) and the decentralised one, and how concentrated the market is — the counterparty-risk picture for Bitcoin in DeFi. Each token's BTC backing is read as its on-chain total supply divided by its own decimals (read live from the contract — they are not all 18: WBTC and cbBTC use 8, tBTC uses 18), which equals the BTC held because every wrapper is minted 1:1 against locked Bitcoin. This is the wrapped-BTC / BTC-on-Ethereum cut — distinct from the coin price feeds, the generic ERC-20 token-info feed and the stablecoin feeds. Supplies are in BTC; values in USD (BTC priced from Yahoo Finance). No key, 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/wrappedbitcoin-api/..."
```

## Pricing
- **Free** (Free) — 1,000 calls/Mo, 2 req/s
- **Starter** ($18/Mo) — 22,000 calls/Mo, 6 req/s
- **Pro** ($71/Mo) — 142,000 calls/Mo, 16 req/s
- **Scale** ($193/Mo) — 540,000 calls/Mo, 40 req/s

## Endpoints

### Wrappers

#### `GET /v1/wrappers` — All wrapped-BTC tokens ranked by BTC held + totals

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

**Response:**
```json
{
    "data": {
        "note": "Every tracked wrapped-Bitcoin token on Ethereum, ranked by the BTC it holds — each with its issuer/custodian, the BTC backing it (read on-chain as total supply ÷ the token's own decimals), its USD value and its share of all wrapped BTC. WBTC (BitGo) has historically led; cbBTC (Coinbase) and the decentralised tBTC have taken share since 2024. Every wrapper is 1:1 BTC-backed by design. Live from the Ethereum blockchain, cached ~5m.",
        "count": 8,
        "leader": "WBTC",
        "source": "Ethereum public JSON-RPC (token contracts) + Yahoo Finance (BTC-USD), keyless",
        "wrappers": [
            {
                "btc": 116132.1827,
                "issuer": "BitGo",
                "symbol": "WBTC",
                "custody": "custodial",
                "contract": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
                "decimals": 8,
                "share_pct": 65.04,
                "value_usd": 7386750066
            },
            {
                "btc": 42268.0816,
                "issuer": "Coinbase",
                "symbol": "cbBTC",
                "custody": "custodial",
                "contract": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",
                "decimals": 8,
                "share_pct": 23.67,
                "value_usd": 2688520505
            },
            {
                "btc": 8338.2013,
                "issuer": "Lombard",
                "symbol": "LBTC",
                "custody": "
…(truncated, see openapi.json for full schema)
```

### Token

#### `GET /v1/token` — One wrapper's detail by symbol

**Parameters:**
- `symbol` (query, required, string) — A tracked wrapped-BTC token Example: `cbBTC`

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

**Response:**
```json
{
    "data": {
        "btc": 42268.0816,
        "note": "One wrapped-Bitcoin token's on-chain detail: the BTC it holds (total supply ÷ decimals, 1:1 backed), its USD value, its issuer/custodian and whether the BTC is held custodially or by a decentralised bridge. Live, cached ~5m.",
        "issuer": "Coinbase",
        "source": "Ethereum public JSON-RPC (cbBTC contract) + Yahoo Finance, keyless",
        "symbol": "cbBTC",
        "custody": "custodial",
        "contract": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",
        "decimals": 8,
        "value_usd": 2688520505,
        "btc_price_usd": 63606.4
    },
    "meta": {
        "timestamp": "2026-06-12T19:35:40.847Z",
        "request_id": "ea5868c6-21e1-49f1-927e-20119f2a81b2"
    },
    "status": "ok",
    "message": "Token retrieved successfully",
    "success": true
}
```

### Dominance

#### `GET /v1/dominance` — WBTC share + custodial-vs-decentralised concentration

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

**Response:**
```json
{
    "data": {
        "note": "The concentration of wrapped Bitcoin on Ethereum — the counterparty-risk view. wbtc_dominance_pct is BitGo's WBTC share; custodial_pct vs decentralised_pct splits the BTC held by a company (BitGo, Coinbase, Lombard…) from the BTC held by a decentralised bridge (tBTC); top2_concentration_pct shows how much sits with the two biggest. A high custodial and WBTC share concentrates trust in a few custodians. Live, cached ~5m.",
        "source": "Ethereum public JSON-RPC (token contracts) + Yahoo Finance, keyless",
        "issuer_count": 8,
        "custodial_pct": 97.2,
        "total_value_usd": 11357902627,
        "decentralised_pct": 2.8,
        "total_wrapped_btc": 178565.4058,
        "wbtc_dominance_pct": 65.04,
        "top2_concentration_pct": 88.71
    },
    "meta": {
        "timestamp": "2026-06-12T19:35:40.938Z",
        "request_id": "69ce468c-c59a-4f61-9f0e-afc9d8014d2e"
    },
    "status": "ok",
    "message": "Dominance retrieved successfully",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "wrappers, dominance and meta take no parameters. token takes symbol (a tracked wrapped-BTC token, required). BTC amounts are real on-chain backing; USD values use the live BTC price; decimals are read per-contract so units are exact. A ~5-minute cache fronts the upstreams.",
        "source": "Ethereum public JSON-RPC + Yahoo Finance (BTC-USD), keyless, live",
        "service": "wrappedbitcoin-api",
        "tracked": [
            "WBTC",
            "cbBTC",
            "tBTC",
            "LBTC",
            "solvBTC",
            "eBTC",
            "kBTC",
            "pumpBTC"
        ],
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/token": "One wrapper's detail by symbol (symbol=cbBTC).",
            "GET /v1/wrappers": "All wrapped-BTC tokens ranked by BTC held + totals.",
            "GET /v1/dominance": "WBTC share + custodial-vs-decentralised concentration."
        },
        "description": "How much Bitcoin lives on Ethereum and through whose vault, read live and keyless from the Ethereum blockchain. Bitcoin gets 'wrapped' — a custodian or a decentralised bridge locks BTC and mints a 1:1 ERC-20. The wrappers endpoint lists every tracked wrapped-BTC token ranked by BTC held (issuer, BTC backing, USD value, share); token returns one by symbol; dominance is the concentration/counterparty-risk view — WBTC's share and the custodial-versus-decentralised split. BTC backing is read as on-ch
…(truncated, see openapi.json for full schema)
```


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