> For the complete documentation index, see [llms.txt](https://docs.bv7x.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bv7x.ai/agentic-commerce/token-gate.md).

# Token Gate

BV-7X uses on-chain token gating to control API access. Hold $BV7X tokens in your wallet to unlock higher tiers.

***

## Tiers

| Tier        | Requirement | What You Get                                                                                               |
| ----------- | ----------- | ---------------------------------------------------------------------------------------------------------- |
| **Public**  | None        | BTC price, Fear & Greed, ETF flows, scorecard, on-chain history, public signal (direction gated)           |
| **Basic**   | 500M+ $BV7X | Full signal with direction + confidence, regime classification, WebSocket, webhooks, A2A protocol, MCP SSE |
| **Premium** | 1B+ $BV7X   | Everything in Basic + copy-trade intent, attribution breakdown, premium oracle, historical signal data     |

***

## How It Works

1. **Hold tokens**: Buy $BV7X on [Uniswap (Base)](https://app.uniswap.org/swap?chain=base\&outputCurrency=0xd88fd4a11255e51f64f78b4a7d74456325c2d8dc). Tokens stay in your wallet -- nothing is staked or locked.
2. **Verify**: Sign a message with your wallet and POST to `/api/bv7x/oracle/verify`. The server checks your on-chain $BV7X balance on Base.
3. **Receive token**: You get a JWT bearer token with your tier encoded. Use it in the `Authorization` header.
4. **Access gated endpoints**: The server validates your token on every request and checks that your tier matches the endpoint requirement.

See [Token Verification](/use-the-signal/read-the-forecast/token-verification.md) for the full authentication flow.

***

## Session Duration

Bearer tokens expire after **30 minutes**. When your token expires:

* Gated API requests return `401 Unauthorized`
* WebSocket connections close with code `4001`
* Webhook deliveries continue (they use the registration, not the session)

To continue, sign a new message and verify again. The process takes a few seconds.

***

## Balance Checks

Your $BV7X balance is checked **at verification time**, not on every request. If your balance drops below the tier threshold after verification, your current session remains valid until expiry.

The balance check reads your wallet on the **Base** network. $BV7X held on other chains (Ethereum mainnet, etc.) does not count.

***

## Getting $BV7X

* **Token**: `0xd88fd4a11255e51f64f78b4a7d74456325c2d8dc` (Base)
* **DEX**: [Uniswap on Base](https://app.uniswap.org/swap?chain=base\&outputCurrency=0xd88fd4a11255e51f64f78b4a7d74456325c2d8dc)
* **Basic tier**: 500,000,000 $BV7X
* **Premium tier**: 1,000,000,000 $BV7X

***

## Next

* [Token Verification](/use-the-signal/read-the-forecast/token-verification.md) -- step-by-step auth flow
* [x402 Payments](/agentic-commerce/x402-payments.md) -- pay-per-query alternative
