# Nano Representatives & Consensus API
> Nano's Open Representative Voting (ORV) consensus — the representative layer — live from the public Nano RPC, no key, nothing cached. Nano has no miners and no staking rewards: every account delegates its balance as voting weight to a representative, and online representatives vote to confirm transactions, with a quorum threshold securing the network. The base Nano reader covers accounts, blocks and history, but not the representative layer; this opens it. Rank the online representatives by delegated voting weight (in NANO), each with its share of total online stake and whether it clears the 0.1%-of-online-stake principal-representative threshold that earns a vote in consensus. Look up a single representative by address for its weight, stake share, principal status and whether it is currently online and voting. And read the live confirmation quorum — the total online voting stake, the trended and peer stake, the quorum delta and percentage, and the minimum weight a representative needs to count. The consensus-and-voting layer for Nano wallets, representative dashboards, delegators and analytics. Live from rpc.nano.to and peer nodes.

## 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/nanoreps-api/..."
```

## Pricing
- **Free** (Free) — 7,150 calls/Mo, 3 req/s
- **Starter** ($9/Mo) — 129,000 calls/Mo, 9 req/s
- **Pro** ($35/Mo) — 792,000 calls/Mo, 22 req/s
- **Business** ($93/Mo) — 4,880,000 calls/Mo, 55 req/s

## Endpoints

### Representatives

#### `GET /v1/representative` — One representative: weight, share, principal & online status

**Parameters:**
- `account` (query, optional, string) — Nano address (omit for the top representative) Example: `nano_3rw4un6ys57hrb39sy1qx8qy5wukst1iiponztrz9qiz6qqa55kxzx4491or`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nanoreps-api/v1/representative?account=nano_3rw4un6ys57hrb39sy1qx8qy5wukst1iiponztrz9qiz6qqa55kxzx4491or"
```

**Response:**
```json
{
    "data": {
        "note": "A single Nano representative's delegated voting weight (in NANO), its share of online stake, whether it is a principal representative and whether it is currently online and voting. Omit account for the top online representative.",
        "source": "Nano RPC",
        "account": "nano_3rw4un6ys57hrb39sy1qx8qy5wukst1iiponztrz9qiz6qqa55kxzx4491or",
        "is_online": true,
        "weight_pct": 1.8042,
        "weight_nano": 1572962.75,
        "is_principal": true
    },
    "meta": {
        "timestamp": "2026-06-14T17:04:36.128Z",
        "request_id": "ac2c8c45-6a25-4571-914d-1a87ac663635"
    },
    "status": "ok",
    "message": "Representative retrieved successfully",
    "success": true
}
```

#### `GET /v1/representatives` — Online representatives ranked by voting weight, with stake share

**Parameters:**
- `limit` (query, optional, string) — Max representatives (1-200) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nanoreps-api/v1/representatives?limit=30"
```

**Response:**
```json
{
    "data": {
        "note": "Online Nano representatives ranked by delegated voting weight (in NANO). weight_pct is the share of total online voting stake; is_principal flags representatives above the 0.1%-of-online-stake threshold that earns a vote in consensus.",
        "count": 30,
        "source": "Nano RPC",
        "online_count": 75,
        "representatives": [
            {
                "account": "nano_37imps4zk1dfahkqweqa91xpysacb7scqxf3jqhktepeofcxqnpx531b3mnt",
                "weight_pct": 27.7117,
                "weight_nano": 24160266.75,
                "is_principal": true
            },
            {
                "account": "nano_1natrium1o3z5519ifou7xii8crpxpk8y65qmkih8e8bpsjri651oza8imdd",
                "weight_pct": 9.1839,
                "weight_nano": 8006935.87,
                "is_principal": true
            },
            {
                "account": "nano_1wcxcjbwnnsdpee3d9i365e8bcj1uuyoqg9he5zjpt3r57dnjqe3gdc184ck",
                "weight_pct": 6.2384,
                "weight_nano": 5438931.29,
                "is_principal": true
            },
            {
                "account": "nano_14j1gqkn8pekpsapqd8c3kciapphaysf6mgw1spsojzzr6qrtskd9dxtopo7",
                "weight_pct": 3.874,
                "weight_nano": 3377539.79,
                "is_principal": true
            },
            {
                "account": "nano_1anrzcuwe64rwxzcco8dkhpyxpi8kd7zsjc1oeimpc3ppca4mrjtwnqposrs",
                "weight_pct": 3.4827,
 
…(truncated, see openapi.json for full schema)
```

### Consensus

#### `GET /v1/quorum` — Live confirmation quorum: online stake, quorum delta & percentage, minimum weight

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

**Response:**
```json
{
    "data": {
        "note": "Live Nano confirmation quorum: the total online voting stake, the trended and peer stake, the quorum delta (weight needed to confirm), the quorum percentage and the minimum weight a representative needs to count. This is the health of ORV consensus.",
        "source": "Nano RPC",
        "quorum_delta_nano": 58413476.67,
        "peers_stake_total_nano": 87008339.23,
        "online_stake_total_nano": 87184293.54,
        "trended_stake_total_nano": 86957655.44,
        "online_weight_minimum_nano": 60000000,
        "online_weight_quorum_percent": 67
    },
    "meta": {
        "timestamp": "2026-06-14T17:04:36.347Z",
        "request_id": "3008a518-1069-4334-82c6-702a16a01351"
    },
    "status": "ok",
    "message": "Quorum retrieved successfully",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "sample": {
            "online_reps": 75,
            "top_weight_nano": 24160266.75
        },
        "source": "public Nano RPC (rpc.nano.to and peers), keyless",
        "service": "nanoreps-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/quorum": "Live confirmation quorum: online stake, quorum delta & percentage, minimum weight.",
            "GET /v1/representative": "One representative's weight, share, principal & online status (account; omit for top).",
            "GET /v1/representatives": "Online representatives ranked by voting weight, with stake share (limit)."
        },
        "description": "Read Nano's Open Representative Voting (ORV) consensus live from the public Nano RPC: rank online representatives by delegated voting weight (in NANO) with their share of online stake and principal-representative status; look up a single representative's weight by address; and read the live confirmation quorum (online stake, quorum delta and percentage, minimum weight). The consensus-and-voting layer for Nano wallets, representative dashboards and delegators. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T17:04:36.431Z",
        "request_id": "c52e83e0-76f8-44e9-be44-e96e583a1bee"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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