> For the complete documentation index, see [llms.txt](https://sonic-ai-works.gitbook.io/sonic-networks-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sonic-ai-works.gitbook.io/sonic-networks-docs/api-reference/solana-and-sonic-token/sonic-token-registry-api.md).

# SONIC Token Registry API

**Status:** `Preview / Pre-deployment`\
**Canonical prefix:** `/api/v1`

The SONIC Token Registry API exposes public, read-only token identity, deployment, verification and aggregate status projections from the canonical SONIC Tokenomics v1.0.0 policy and live Solana verification boundary.

## Canonical endpoints

```http
GET /api/v1/token/metadata
GET /api/v1/token/deployment
GET /api/v1/token/verification
GET /api/v1/token/status
```

## Source-of-truth model

```
SONIC Tokenomics v1.0.0
        │
        ├── Token-2022 standard
        ├── 9 decimals
        ├── initial maximum supply
        ├── 200 bps launch transfer-fee rate
        ├── 500 bps transfer-fee rate policy cap
        ├── deployment registry
        └── authority policy
                 ↓
          live Solana RPC
                 ↓
       verification service
                 ↓
 metadata / deployment / verification / status
```

Configuration is expected state. Verification is observed chain evidence. A configured mint never self-declares `MAINNET_VERIFIED`.

## GET `/token/metadata`

Example pre-deployment policy projection:

```json
{
  "data": {
    "name": "SONIC",
    "symbol": "SONIC",
    "network": "Solana",
    "standard": "Token-2022",
    "tokenProgram": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
    "initialMaximumSupply": "18446000000",
    "decimals": 9,
    "atomicInitialMaximumSupply": "18446000000000000000",
    "transferFeeBps": 200,
    "transferFeeRatePolicyCapBps": 500,
    "token2022MaximumFeeAtomic": null,
    "productionMint": null,
    "status": "PRE_DEPLOYMENT"
  }
}
```

`token2022MaximumFeeAtomic` and `productionMint` remain null/TBA until deployment. The 500 bps policy cap must not be serialized as the Token-2022 absolute `maximumFee` amount.

## GET `/token/deployment`

Deployment states:

```
PRE_DEPLOYMENT
MAINNET_CONFIGURED
MAINNET_VERIFIED
```

`MAINNET_CONFIGURED` means required deployment fields are configured but live verification has not passed every required invariant. `MAINNET_VERIFIED` is derived only from successful verification evidence.

Recommended caching:

```http
Cache-Control: no-store
```

## GET `/token/verification`

Required checks include:

1. configured mint exists;
2. account owner is the Solana Token-2022 program;
3. observed decimals equal **9**;
4. atomic supply is parseable and policy-compatible;
5. observed supply does not exceed the **18,446,000,000 SONIC initial maximum**;
6. mint/freeze authority state matches production policy;
7. active launch transfer-fee rate equals **200 bps**;
8. effective transfer-fee rate is at or below **500 bps**;
9. Token-2022 maximum fee amount equals approved configuration;
10. transfer-fee configuration authority matches the registry;
11. withdraw-withheld authority and withheld-fee handling match the registry;
12. metadata-authority policy matches the registry where configured; and
13. verification records slot/block-time provenance when available.

Example check shape:

```json
{
  "data": {
    "verified": false,
    "checks": [
      {
        "code": "DECIMALS",
        "passed": false,
        "required": true,
        "actual": null,
        "expected": 9
      },
      {
        "code": "TRANSFER_FEE_BPS",
        "passed": false,
        "required": true,
        "actual": null,
        "expected": 200
      },
      {
        "code": "TRANSFER_FEE_POLICY_CAP_BPS",
        "passed": true,
        "required": true,
        "actual": 200,
        "expectedMax": 500
      }
    ],
    "slot": null,
    "blockTime": null,
    "verifiedAt": null
  }
}
```

## GET `/token/status`

Example pre-deployment shape:

```json
{
  "data": {
    "deployment": "PRE_DEPLOYMENT",
    "productionReady": false,
    "metadataVerified": false,
    "transferFeeConfigVerified": false,
    "supplyMethodologyStatus": "DRAFT",
    "features": {
      "transfers": { "enabled": false, "reason": "deployment_not_verified" },
      "circulatingSupply": { "enabled": false, "reason": "methodology_not_verified" }
    }
  }
}
```

## Relationship to supply endpoints

```http
GET /api/v1/token/total-supply
GET /api/v1/token/circulating-supply
```

Before production deployment, `initialMaximumSupply = 18,446,000,000 SONIC` is policy state; observed `totalSupply` and `circulatingSupply` remain unavailable/null. After deployment, observed supply is read from verified chain state.

## Security

Registry routes are public and read-only. They require no wallet signature and expose no RPC API keys, private keys, provider credentials or administrative mutation controls.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sonic-ai-works.gitbook.io/sonic-networks-docs/api-reference/solana-and-sonic-token/sonic-token-registry-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
