# Teritori Chain API
> Real-time on-chain data for Teritori (chain-id teritori-1), a multi-chain Cosmos-SDK community hub for social, NFTs and dApps, secured by delegated proof-of-stake with TORI as its native coin. The status endpoint returns the chain id, latest block height and time, proposer and node application version so you can confirm the chain is live and producing blocks. The validators endpoint returns the full bonded validator set — each moniker, operator address, stake in TORI, commission rate and jailed flag — sorted by stake, plus the total bonded and not-bonded TORI. The supply endpoint returns the total TORI supply (in TORI and base utori), the bonded amount and the bonded ratio. The governance endpoint returns the most recent on-chain governance proposals with title, status and voting window. The meta endpoint documents the chain, denom and decimals. Reads a live Teritori Cosmos-SDK LCD node directly (with mirror fallback), so values are current to the latest block. Live, nothing stored. 5 endpoints. This serves chain-level staking, supply and governance data; for NFT collections or token prices use a dedicated indexer/market API.

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

## Pricing
- **Free** (Free) — 280 calls/Mo, 2 req/s
- **Basic** ($13/Mo) — 21,500 calls/Mo, 5 req/s
- **Pro** ($33/Mo) — 117,000 calls/Mo, 20 req/s
- **Mega** ($73/Mo) — 525,000 calls/Mo, 60 req/s

## Endpoints

### Chain

#### `GET /v1/status` — Chain status: latest block, chain id, node version

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

**Response:**
```json
{
    "data": {
        "chain": "Teritori",
        "healthy": true,
        "chain_id": "teritori-1",
        "native_symbol": "TORI",
        "node_app_version": "2.0.6",
        "proposer_address": "gw8hfElKwU8CHarVnuNfHsD0KtY=",
        "latest_block_time": "2026-06-15T20:39:47.977344042Z",
        "latest_block_height": 20392926
    },
    "meta": {
        "timestamp": "2026-06-15T20:40:36.710Z",
        "request_id": "116b2a47-cba6-45ec-a6b3-a92abad39163"
    },
    "status": "ok",
    "message": "Chain status retrieved successfully",
    "success": true
}
```

### Staking

#### `GET /v1/supply` — Total TORI supply and bonded ratio

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

**Response:**
```json
{
    "data": {
        "chain": "Teritori",
        "denom": "utori",
        "decimals": 6,
        "bonded_tori": "93386206.862741",
        "native_symbol": "TORI",
        "bonded_ratio_pct": 11.07,
        "total_supply_tori": "842837129.395376",
        "total_supply_utori": "842837129395376"
    },
    "meta": {
        "timestamp": "2026-06-15T20:40:36.800Z",
        "request_id": "b983a88b-4573-4817-81c8-7e3231b45d03"
    },
    "status": "ok",
    "message": "Supply retrieved successfully",
    "success": true
}
```

#### `GET /v1/validators` — Bonded validator set with stake and commission

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

**Response:**
```json
{
    "data": {
        "chain": "Teritori",
        "validators": [
            {
                "jailed": false,
                "status": "BOND_STATUS_BONDED",
                "moniker": "NodeStake",
                "tokens_tori": "13700252.170728",
                "tokens_utori": "13700252170728",
                "commission_rate": 0.05,
                "operator_address": "torivaloper19f0w9svr905fhefusyx4z8sf83j6et0g8d58j3"
            },
            {
                "jailed": false,
                "status": "BOND_STATUS_BONDED",
                "moniker": "BlockHunters 🎯",
                "tokens_tori": "13151260.478409",
                "tokens_utori": "13151260478409",
                "commission_rate": 0.05,
                "operator_address": "torivaloper1symf474wnypes2d3mecllqk6l26rwz8mtqqwe7"
            },
            {
                "jailed": false,
                "status": "BOND_STATUS_BONDED",
                "moniker": "Kalia Network",
                "tokens_tori": "13120932.827035",
                "tokens_utori": "13120932827035",
                "commission_rate": 0.05,
                "operator_address": "torivaloper1shtyw4f5pdhvx7gsrsknwrryy9ulqvvyhmuncl"
            },
            {
                "jailed": false,
                "status": "BOND_STATUS_BONDED",
                "moniker": "polkachu.com",
                "tokens_tori": "12879720.804509",
                "tokens_utori": "12879720804509",
                "commission_rate": 0.05,

…(truncated, see openapi.json for full schema)
```

### Governance

#### `GET /v1/governance` — Recent on-chain governance proposals

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

**Response:**
```json
{
    "data": {
        "chain": "Teritori",
        "count": 10,
        "proposals": [
            {
                "id": "42",
                "title": "💎$ATOM Airdrop ✅ New Version 2025 ⭐",
                "status": "PROPOSAL_STATUS_REJECTED",
                "summary": "Get 💎$ATOM Airdrop ✅ visiting url: [www.CosmoWeb.at][1] - 3 - url: [www.cosmoweb.at][1]",
                "submit_time": "2025-01-23T01:58:00.670048813Z",
                "voting_end_time": "2025-01-25T01:58:00.670048813Z"
            },
            {
                "id": "41",
                "title": "Reactivate expired IBC client for Cosmos Hub",
                "status": "PROPOSAL_STATUS_FAILED",
                "summary": "The IBC client 07-tendermint-32 used for Cosmos Hub is currently in an expired state. If accepted, this proposal will update client 07-tendermint-32 with the data from 07-tendermint-100",
                "submit_time": "2024-09-10T16:51:41.450451649Z",
                "voting_end_time": "2024-09-12T16:51:41.450451649Z"
            },
            {
                "id": "40",
                "title": "Increase TxSizeCostPerByte 15x",
                "status": "PROPOSAL_STATUS_PASSED",
                "summary": "Increase TxSizeCostPerByte 15x, see https://github.com/notional-labs/placid",
                "submit_time": "2024-05-21T14:06:24.436322136Z",
                "voting_end_time": "2024-05-23T14:06:24.436322136Z"
            },
            {
                "id":
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "type": "Cosmos-SDK Layer-1 (Tendermint/CometBFT)",
        "chain": "Teritori",
        "denom": "utori",
        "chain_id": "teritori-1",
        "decimals": 6,
        "ecosystem": "Teritori — a multi-chain Cosmos-SDK community hub (social, NFT, dApps), native coin TORI, secured by delegated proof-of-stake.",
        "endpoints": [
            "/v1/status",
            "/v1/validators",
            "/v1/supply",
            "/v1/governance",
            "/v1/meta"
        ],
        "documentation": "https://teritori-api.oanor.dev",
        "native_symbol": "TORI"
    },
    "meta": {
        "timestamp": "2026-06-15T20:40:37.041Z",
        "request_id": "fbbe3ca7-6664-4a32-bab6-76f4338fc26f"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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