# Topaz DEX > Topaz is an omnichain exchange combining trading fees, token emissions and voting rewards with token trading, stable/volatile and concentrated liquidity, veTOPAZ governance, protocol documentation and public analytics at https://www.topazdex.com. BNB Chain (56) is the hub; Robinhood Chain (4663), Base (8453), Ethereum (1) and Arc (5042) are live spokes. xTOPAZ entry, redemption, bridging and local voting are enabled. Fee APR and Emissions APR are separate yield modes. Planned networks are not live deployments. [Fee earning](https://www.topazdex.com/explore/pools?earning=fees) and [emissions](https://www.topazdex.com/explore/pools?earning=emissions) open the existing pool list with context and the relevant APR sort. They add no emissions-only filter. The [homepage Markdown](https://www.topazdex.com/markdown) explains these paths, market-example selection and security-review scope. Topaz DEX, Topaz Dex, and Topaz refer to this protocol. TOPAZ is the BNB token; veTOPAZ is a BNB vote-escrow NFT; xTOPAZ is a transferable share backed by an aggregate permanent veTOPAZ lock on BNB. Spoke voting uses staked xTOPAZ positions, not BNB veNFTs. Redeeming xTOPAZ on BNB creates a new permanent veTOPAZ NFT, not immediately liquid TOPAZ. Liquidity fees, gauge emissions, and voter incentives are distinct returns. A gauge-staked concentrated liquidity position earns emissions only while in range. Use the published documentation and Markdown export for explanations, the public `/v1` API for current indexed data, the contracts page for chain-specific addresses, and fresh contract state for transaction preconditions. Check chain ID, source timestamps, response coverage, and feature availability before making current claims. An analytics snapshot or an index link does not authorize a transaction. Execution requires explicit user authorization and an authorized signing path. ## Agent resources - [Skill guide](https://www.topazdex.com/skill.md): full GitHub-synchronized Topaz skill, with a committed fallback. - [Skill manifest](https://www.topazdex.com/skill.json): version, capabilities, install and verification metadata. - [Skill discovery](https://www.topazdex.com/.well-known/agent-skill.json): stable discovery document. - [Full documentation](https://www.topazdex.com/llms-full.txt): complete published articles in one Markdown document. - [API catalog](https://www.topazdex.com/.well-known/api-catalog): OpenAPI and service documentation discovery. - [Sitemap](https://www.topazdex.com/sitemap.xml): canonical public pages and indexed pools. - [Skill repository](https://github.com/topazdex/agent-skill): references, scripts and examples. - [Latest release](https://github.com/topazdex/agent-skill/releases/latest): installable releases. - [Changelog](https://github.com/topazdex/agent-skill/blob/main/CHANGELOG.md): published skill changes. - [Topaz Agent](https://agents.topazdex.com): the separately hosted agent service. ## Agent protocols and public subdomains - [Topaz Agent OpenAPI](https://agents.topazdex.com/openapi.json): machine-readable schema for the hosted agent service; check which operations and networks the service currently supports. - [Topaz Agent A2A card](https://agents.topazdex.com/.well-known/agent-card.json): agent-to-agent discovery and capability metadata. - [Topaz Agent MCP](https://agents.topazdex.com/mcp): Model Context Protocol service endpoint; use its documented protocol rather than crawling it as an article. - [Topaz Agent sitemap](https://agents.topazdex.com/sitemap.xml): public pages on the separately hosted agent subdomain. - [Topaz ID](https://id.topazdex.com/): identity, profile and wallet-connection service, separate from DEX trading and voting contracts. - [Topaz ID connector guide](https://github.com/topazdex/agent-skill/blob/main/developers/topaz-id-connect.md): developer integration for Topaz ID account and signing flows. - [Topaz quote service guide](https://github.com/topazdex/agent-skill/blob/main/references/swapping-api.md): supported quote and swap-batch workflow for `quote.topazdex.com`; the service root is not a documentation page. ## Public app and market pages - [Topaz DEX](https://www.topazdex.com/): An omnichain decentralized exchange built for participation. Swap tokens, supply liquidity or put your voting power to work earning fees and rewards. - [Swap](https://www.topazdex.com/swap): Trade tokens on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. - [Private swaps](https://www.topazdex.com/swap/privacy): Private swap funding, payout and tracking. - [Explore pools](https://www.topazdex.com/explore/pools): Pool discovery and shared pool detail pages. - [Explore tokens](https://www.topazdex.com/explore/tokens): Token discovery and market pages. - [Liquidity positions](https://www.topazdex.com/positions): Manage wallet liquidity and staking. - [veTOPAZ locks](https://www.topazdex.com/locks): Vote-escrow locks and governance. - [Vote](https://www.topazdex.com/vote): Voting opportunities and allocations. - [Incentives](https://www.topazdex.com/incentivize): Pool voting incentives. - [Relays](https://www.topazdex.com/relays): Managed voting positions. - [xTOPAZ](https://www.topazdex.com/xtopaz): Get, bridge and redeem xTOPAZ; stake and vote on Robinhood Chain, Base, Ethereum or Arc. - [Public analytics | Topaz DEX](https://www.topazdex.com/stats): Combined and network-filtered Topaz liquidity, volume, fees and pool analytics. - [Pool analytics | Topaz DEX](https://www.topazdex.com/stats/pools): All Topaz pools, ranked by TVL, volume, fees and APR. - [Foundation transparency | Topaz DEX](https://www.topazdex.com/stats/foundation): Foundation wallet, veTOPAZ holdings, votes, incentives and effectiveness. - [Pool fee performance | Topaz DEX](https://www.topazdex.com/stats/dynamic-fees): Observed custom and dynamic pool fees across Topaz networks. - [TOPAZ token | Topaz DEX](https://www.topazdex.com/topaz): TOPAZ price, supply, protocol activity and liquidity across TOPAZ markets. - [PFP Generator | Topaz DEX](https://www.topazdex.com/tool/pfp): Frame your profile photo with the Topaz ring. Upload, position, and download a square PNG. - [Topaz Auto liquidity management | Topaz DEX](https://www.topazdex.com/alm): How Topaz Auto keeps concentrated liquidity in range, what it costs and risks, and every managed market read live from chain. - [Agents](https://www.topazdex.com/agents): Topaz Agent and protocol skill resources, with service capability boundaries and guides to live multichain and xTOPAZ integration. - [Developers](https://www.topazdex.com/developers): Topaz developer resources for BNB and live spokes: Stats API, contracts, xTOPAZ integration, indexing and agent discovery. - [Methodology](https://www.topazdex.com/stats/methodology): Multichain analytics sources, rolling windows, network filters, APRs and data coverage. ## Documentation: start here - [Docs](https://www.topazdex.com/docs): Topaz documentation: multichain swaps and liquidity, veTOPAZ locks, xTOPAZ bridging and voting across the five live networks. - [Overview](https://www.topazdex.com/docs/overview): Topaz is a multichain DEX with a BNB token hub, V2 and Concentrated liquidity, and xTOPAZ for local spoke voting. - [Quick Start](https://www.topazdex.com/docs/quickstart): Get started with swaps and liquidity across Topaz networks, veTOPAZ locks, xTOPAZ bridging and local voting. - [FAQ](https://www.topazdex.com/docs/faq): Answers about Topaz networks, BNB and spoke availability, xTOPAZ, wallets, fees, locks, bridging and local voting. - [Glossary](https://www.topazdex.com/docs/glossary): Topaz terminology: TOPAZ, veTOPAZ, xTOPAZ, hub and spokes, shares, local voting positions, bridging, gauges, pools and epochs. - [AMM & Pool Types](https://www.topazdex.com/docs/concepts/amm): How automated market makers work, the difference between Topaz's stable and volatile v2 pools, and where concentrated liquidity fits in. - [Concentrated Liquidity](https://www.topazdex.com/docs/concepts/concentrated-liquidity): How Slipstream concentrated liquidity works on Topaz: ticks, price ranges, capital efficiency, active vs out-of-range positions, tick spacing tiers, and the trade-offs of tight vs wide ranges. - [Impermanent Loss](https://www.topazdex.com/docs/concepts/impermanent-loss): Impermanent loss explained: why LP returns can diverge from holding, how it differs in v2 vs Slipstream, and how fees, incentives, and range selection offset it on Topaz. - [Oracles & TWAP](https://www.topazdex.com/docs/concepts/oracles): Slipstream's in-pool oracle, time-weighted average prices (TWAP), chain-specific observation capacity with BNB sizing examples, and dynamic fees. ## Documentation: trading, liquidity and governance - [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps): Topaz and 0x routing, exact input/output, cross-chain swaps, Permit2 approvals, native wrapping and route-specific fees. - [Providing Liquidity](https://www.topazdex.com/docs/liquidity): Add liquidity to Topaz v2 stable and volatile pools, mint LP tokens, withdraw, and prepare to stake in gauges. The starting point for LPs on Topaz. - [Concentrated Positions](https://www.topazdex.com/docs/liquidity/concentrated): Mint, manage, and close Slipstream concentrated-liquidity positions on Topaz: tick spacings, ranges, the NonfungiblePositionManager, fee collection, and staking the NFT in a gauge. - [Pool Fees](https://www.topazdex.com/docs/liquidity/fees): Topaz pool fees explained: default v2 and Slipstream fees, custom per-pool overrides, dynamic volatility-based fees, unstaked position fees, and where fees flow on the ve(3,3) wheel. - [Staking in Gauges](https://www.topazdex.com/docs/liquidity/staking): Stake V2 LP tokens or Concentrated NFTs for TOPAZ on BNB or xTOPAZ on activated spokes; compare fees, emissions and custody. - [TOPAZ & Emissions](https://www.topazdex.com/docs/tokenomics): TOPAZ issuance and veTOPAZ rebases on BNB, plus how xTOPAZ extends the same economy to spoke liquidity incentives. - [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz): BNB veTOPAZ lock rules and optional xTOPAZ wrapping: voting power, custody, permanent mode, reward claims and redemption. - [Gauge Voting](https://www.topazdex.com/docs/gauges): BNB veTOPAZ and spoke xTOPAZ gauge voting: local allocations, epochs, fee and incentive rewards, resets and availability. - [Incentives (Bribes)](https://www.topazdex.com/docs/voting/incentives): How bribe / incentive markets work on Topaz: depositing rewards to a gauge, when voters claim, ROI strategies for both sides, and the whitelisted token rule. - [Managed Locks](https://www.topazdex.com/docs/voting/managed): Managed veNFTs on Topaz: how small veTOPAZ holders pool into a single managed lock for passive participation, how managers earn fees, and how to deposit and withdraw. - [Protocol Governance](https://www.topazdex.com/docs/governance): BNB ProtocolGovernor and EpochGovernor, plus separate vault, bridge, budget and spoke administration in the multichain design. - [Single-token liquidity zaps](https://www.topazdex.com/docs/liquidity/zaps): Create a concentrated liquidity position from one funding token, and distinguish CL zaps from xTOPAZ entry and bridge actions. ## Documentation: developers and agents - [Integration Guide](https://www.topazdex.com/docs/developers/integration): Integrate live Topaz deployments across BNB Chain, Robinhood Chain, Base, Ethereum and Arc: pools, gauges, routing, token listing and xTOPAZ. - [Data API](https://www.topazdex.com/docs/developers/data-api): Multichain API coverage and the legacy BNB Stats API reference: endpoints, schemas, freshness and period definitions. - [Agents](https://www.topazdex.com/docs/agents): Topaz Agent and installable skill: BNB examples, capability checks and the new multichain documentation. - [Runtimes & Install](https://www.topazdex.com/docs/agents/runtimes): Install the Topaz agent skill into Claude Code, Codex, Cursor, Continue, OpenCode, Hermes, or any URL-reading agent. Conventional locations, prompts, and the auto-detect installer. - [Capabilities](https://www.topazdex.com/docs/agents/capabilities): What an AI agent can do with the Topaz skill. Example prompts grouped by workflow: quoting, swapping, liquidity, gauges, voting, bribes, and claiming. - [Safety Model](https://www.topazdex.com/docs/agents/safety): How the Topaz agent skill stays safe by default. The four output labels, broadcast consent, slippage handling, approvals, and how to enforce read-only mode. - [Topaz Agent](https://www.topazdex.com/docs/agents/topaz-agent): The Topaz Agent is a live, non-custodial DeFi strategist for the Topaz protocol on BNB Chain. Chat with it, integrate via MCP or OpenAPI, or connect agent-to-agent. - [Multichain integration](https://www.topazdex.com/docs/developers/multichain): Chain-scoped contracts, xTOPAZ shares, spoke position IDs, bridge evidence and data requirements for Topaz integrations. ## Documentation: contracts, analytics and safety - [Contracts](https://www.topazdex.com/docs/contracts): Topaz contract addresses on BNB Chain, Robinhood Chain, Base, Ethereum and Arc: tokens, DEX, xTOPAZ vault, bridge, voting, routers and zaps. - [Security & Audits](https://www.topazdex.com/docs/security): BNB audit scope, separate multichain and CL Zap verification limits, xTOPAZ custody, bridge risks and per-chain administrative controls. - [Airdrop & Sacrifice](https://www.topazdex.com/docs/airdrop): How Topaz seeded its initial veTOPAZ supply: the pre-mainnet airdrop snapshot and the Abstract-chain sacrifice event. Mechanics, caps, and final distribution details. - [Bonus Lock](https://www.topazdex.com/docs/bonuslock): The BNB Bonus Lock program, its historical tier schedule and permanent-lock output; current allocation is shown on the lock creation page. - [Stats Overview](https://www.topazdex.com/docs/stats): Multichain market analytics and legacy BNB reports: source freshness, rolling versus UTC-day figures and xTOPAZ accounting. - [Rate Definitions](https://www.topazdex.com/docs/stats/rates): Every APR and APY Topaz publishes, defined: what it measures, which asset pays it, the period it covers, how it is annualized, and whether trading fees are included. - [Private Swaps](https://www.topazdex.com/docs/privacy): Private swaps across supported EVM source and payout networks, integrated tracking, EOA funding and BNB USDC refund boundaries. - [Do a Private Swap](https://www.topazdex.com/docs/privacy/swap): Fund a private swap on its selected EVM network, review one recipient, submit the deposit and track destination delivery. - [Order History](https://www.topazdex.com/docs/privacy/history): Recent private orders, browser and wallet scope, source transaction hashes and integrated or hosted tracking. - [Recovery & Refunds](https://www.topazdex.com/docs/privacy/recovery): Check private-swap recovery and refund eligibility; eligible refunds return USDC on BNB, regardless of the funding network. - [Privacy Policy](https://www.topazdex.com/privacy): How Topaz DEX collects, uses, and protects information across our marketing site, documentation, analytics, agent services, and the Topaz decentralized exchange. - [Terms of Service](https://www.topazdex.com/terms): The terms governing the Topaz site, documentation, analytics, agent services and decentralized exchange across supported networks. ## Documentation: multichain and xTOPAZ - [Topaz across networks](https://www.topazdex.com/docs/multichain): Topaz is live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Learn how xTOPAZ connects local liquidity, bridging and voting. - [xTOPAZ explained](https://www.topazdex.com/docs/xtopaz): xTOPAZ shares in permanently locked TOPAZ: how backing, rebases, bridging and local voting fit together. - [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get): Deposit TOPAZ or wrap an eligible veTOPAZ lock on BNB, with share previews, reward claims and approval scope explained. - [Bridge xTOPAZ](https://www.topazdex.com/docs/xtopaz/bridge): Move xTOPAZ through the BNB hub, understand messaging fees and bridge precision, and distinguish source confirmation from delivery. - [Stake xTOPAZ and vote](https://www.topazdex.com/docs/xtopaz/staking): Spoke voting positions, the full-epoch withdrawal lock, local allocations, fees, incentives and closed-position claims. - [Redeem xTOPAZ](https://www.topazdex.com/docs/xtopaz/redeem): Redeem liquid xTOPAZ on BNB for a new permanent veTOPAZ NFT, including the system-vote window and share-to-asset review. - [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions): How the BNB system gauge funds xTOPAZ budgets for local spoke gauges without introducing separate TOPAZ inflation schedules. ## Documentation: other - [Topaz Auto](https://www.topazdex.com/docs/auto): Managed concentrated liquidity: one vault per pool keeps its range around the market, with emissions passed through as claimable TOPAZ or xTOPAZ. - [Topaz Auto: deposit, withdraw and claim](https://www.topazdex.com/docs/auto/using): Enter a Topaz Auto vault with both tokens or one, withdraw in kind at any time, and claim emissions separately. - [Topaz Auto risks and numbers](https://www.topazdex.com/docs/auto/risks): The risks managed concentrated liquidity keeps, and how managed value, Auto APR and time in range are computed. ## API and representations - [Network registry](https://api.topazdex.com/v1/chains): supported chains, capabilities and source status. - [API reference](https://api.topazdex.com/docs): interactive reference on the API service. - [Complete API schema](https://api.topazdex.com/openapi.json): API service schema, including implemented /v1 routes. - [Protocol snapshot](https://api.topazdex.com/v1/protocol): metrics with source freshness. - [Pools](https://api.topazdex.com/v1/pools): public pool snapshots. - [Gauges](https://api.topazdex.com/v1/gauges): gauges and distinct APRs. - [Supply](https://api.topazdex.com/api/supply/topaz): TOPAZ supply. - [CMC pairs](https://api.topazdex.com/api/v1/cmc/pairs): public market integration. Published articles, the homepage and public analytics support `Accept: text/markdown` and `/markdown/`. For example, [the overview in Markdown](https://www.topazdex.com/markdown/docs/overview) is a clean text representation of the [canonical overview](https://www.topazdex.com/docs/overview). Interactive wallet pages are linked above; their wallet state is not exported as public Markdown. `/markdown` is the homepage rendition. Unknown renditions return a Markdown 404 with recovery links. The API is served from `api.topazdex.com`; the website's `/api/...` URLs are compatibility forwards for older clients. Availability and supported deployments must be established from API responses; an index entry does not establish production readiness. Unavailable data is not zero. `/privacy` is the policy; private swaps are at `/swap/privacy`. Old `/stats/pools/{address}` links resolve to `/explore/pools/bnb/{address}`. Each subdomain has its own crawl policy. This file is a discovery guide, not an access grant or a substitute for a sitemap or `robots.txt`. --- Source: https://www.topazdex.com/agents AI + DeFi # Topaz for AI agents Bring AI to your Topaz workflow. Talk to the hosted agent for quotes, liquidity and voting strategies, or give your own agent the official protocol skill. [Try the Topaz Agent](https://agents.topazdex.com)[Agent Skill for developers](#skill)[Read the docs →](https://www.topazdex.com/docs/agents) Topaz Agent ## Your on-chain DeFi strategist A non-custodial DeFi strategist for BNB Chain, hosted at [agents.topazdex.com](https://agents.topazdex.com). It is purpose-built for the Topaz protocol. It uses multi-step AI reasoning with domain-specific playbooks to analyze pools, recommend positions, optimize votes, plan bribe campaigns, and build wallet-ready transactions — all without ever holding your keys. Non-custodial by design. The agent builds calldata; your wallet signs. Registered on-chain as Agent ID 113284 via ERC-8004. ### Swap quotes & routing Best-price routing across v2 volatile, v2 stable, and v3 concentrated liquidity pools with slippage modeling. ### LP recommendations Risk-scored liquidity position suggestions with full calldata building for both v2 LP and v3 CL positions. ### Vote optimization Gauge vote allocation strategies — maximize yield, support protocol health, or find a balanced mix. ### Bribe campaigns Plan and build incentive deposit transactions with budget scheduling and projected APR impact. ### Reward claims Build claim transactions for emissions, trading fees, bribes, and rebase across all your veNFTs and LPs. ### Strategy reports Comprehensive weekly epoch reports covering protocol state, top pools, voting opportunities, and position health. [Chat with the agent](https://agents.topazdex.com)[Full documentation →](https://www.topazdex.com/docs/agents/topaz-agent) Integration Protocols ## Four ways to connect Whether you're a user chatting in natural language, a developer calling REST endpoints, or an autonomous agent connecting via MCP — the Topaz Agent speaks your protocol. ### Chat Web & Telegram Natural language interface with multi-step AI reasoning. Ask questions, get recommendations, build transactions. [`https://agents.topazdex.com`](https://agents.topazdex.com) ### MCP AI Agents Protocol tools via Model Context Protocol (JSON-RPC 2.0). Connect your MCP-compatible agent using this endpoint. `https://agents.topazdex.com/mcp` ### OpenAPI Developers Standard REST API with full spec. Works with any HTTP client, SDK, or automation platform. [`https://agents.topazdex.com/openapi.json`](https://agents.topazdex.com/openapi.json) ### Agent-to-Agent A2A Protocol A2A discovery card for autonomous agent-to-agent communication and task delegation. [`https://agents.topazdex.com/.well-known/agent-card.json`](https://agents.topazdex.com/.well-known/agent-card.json) Agent Skill ## Teach your own agent the Topaz protocol The Topaz Agent Skill is a runtime-neutral package — markdown instructions, protocol references, worked examples, evals, and TypeScript helpers — that gives any AI agent the structured context it needs to act on the Topaz protocol. Install it into Claude Code, Cursor, Hermes, OpenCode, or any agent with a skill system. Version See current manifest License MIT Chain BNB Chain hub (56), Robinhood (4663), Base (8453), Ethereum (1), Arc (5042) Repository [topazdex/agent-skill](https://github.com/topazdex/agent-skill) [View on GitHub](https://github.com/topazdex/agent-skill)[Read SKILL.md](https://www.topazdex.com/skill.md)[View manifest →](https://www.topazdex.com/skill.json) Quick Start ## Three ways to load Topaz into your agent Pick the path that matches your runtime. All three point at the same canonical skill. 01 ### URL prompt Best for browser & chat agents If your agent can fetch URLs, give it this prompt: ``` Read the official Topaz DEX agent skill at https://www.topazdex.com/skill.md and follow it when working with Topaz DEX swaps, pools, gauges, bribes, veNFTs, rewards, quotes, routes, or integrations. ``` 02 ### Git clone Best for coding & CLI agents Full package — references, examples, scripts, evals: bash ``` git clone https://github.com/topazdex/agent-skill.git cd /scripts cp .env.example .env yarn install --immutable yarn validate && yarn smoke ``` 03 ### One-line installer Auto-detects your skills dir Detects `~/.claude/skills`, `~/.config/opencode/skills`, or `~/.hermes/skills` and installs there. Falls through to `~/.local/share/topaz-skill` if none are found. Prints its chosen destination before cloning. bash ``` curl -fsSL https://raw.githubusercontent.com/topazdex/agent-skill/main/install.sh | bash # or pick your own path curl -fsSL https://raw.githubusercontent.com/topazdex/agent-skill/main/install.sh \ | bash -s -- ~/some/other/path ``` Entry Points ## Stable URLs you can point any agent at These endpoints stay stable across versions. Bookmark them, hard-code them in agent configs, ship them in prompts. [Skill file (markdown)→Stable bootstrap markdown. Point any URL-reading agent here.www.topazdex.com/skill.md](https://www.topazdex.com/skill.md)[Manifest (JSON)→Machine-readable metadata: version, install, verify, compatibility.www.topazdex.com/skill.json](https://www.topazdex.com/skill.json)[GitHub repository→Canonical source of truth — references, examples, scripts, evals.github.com/topazdex/agent-skill](https://github.com/topazdex/agent-skill)[Latest release→Tagged versions of the skill, packaged for reproducible installs.releases/latest](https://github.com/topazdex/agent-skill/releases/latest)[Changelog→Every shipped change. Diff this against your installed version.CHANGELOG.md](https://github.com/topazdex/agent-skill/blob/main/CHANGELOG.md)[Discovery→Tiny .well-known endpoint for agent runtimes that auto-discover skills..well-known/agent-skill.json](https://www.topazdex.com/.well-known/agent-skill.json) Consumption Modes ## Works with how your agent already loads context Not every agent has the same skill system. The Topaz skill is designed to plug into all of them. ### Read from URL Best for browser agents, chat agents, and anything with a web-fetch tool. Point it at skill.md and you're done. `https://www.topazdex.com/skill.md` ### Clone the full package Best for coding agents, CLI agents, and anything that runs scripts. Includes references/, examples/, evals/, and TypeScript helpers. `git clone github.com/topazdex/agent-skill` ### Copy into a native skill system If your agent has its own skills, rules, memory, or custom-instructions concept, drop SKILL.md into that system and point at the repo for references. `/skills/topaz` ### Use as project context For coding agents, add the skill to your project rules or agent memory so Topaz-specific behavior applies while you work in your repo. `.cursor/rules · .claude/CLAUDE.md · etc.` Runtime Examples ## Conventional locations per runtime These are examples, not requirements. The canonical source is the GitHub repo — point your agent at whichever path it reads from. | Runtime | Conventional location | | ------------------------------------------- | ----------------------------------------------- | | Claude Code (user-wide) | \~/.claude/skills/topaz | | Claude Code (project-local) | /.claude/skills/topaz | | Hermes | \~/.hermes/skills/defi/topaz | | OpenCode | \~/.config/opencode/skills/topaz | | Codex / Cursor / Continue / Aider / generic | any path — point the agent at it explicitly | | Browser-only / URL-loading agents | read https://www.topazdex.com/skill.md directly | ### Generic URL-reading agents ``` Load https://www.topazdex.com/skill.md and use it as your operating guide for Topaz DEX tasks. ``` ### Git-capable coding agents ``` Clone https://github.com/topazdex/agent-skill and follow SKILL.md. Use references, examples, and scripts from the cloned repo when available. ``` ### Claude Code ``` Read https://www.topazdex.com/skill.md. If more detail is needed, clone https://github.com/topazdex/agent-skill into ~/.claude/skills/topaz (or .claude/skills/topaz for project-local) and follow SKILL.md as guidance for Topaz DEX tasks. ``` ### OpenAI Codex / generic code agents ``` Use https://www.topazdex.com/skill.md as the Topaz DEX protocol guide. For full references and scripts, clone https://github.com/topazdex/agent-skill. ``` Skill Capabilities ## What agents can do with the skill Workflows for all five networks are documented. Quote and swap-batch helpers take any of the five chain IDs, and the remaining helpers target BNB Chain; each helper's reference lists its networks. ### Swaps & quotes v2 volatile, v2 stable, v3 concentrated, and mixed routes with slippage modeling. ### Built calldata Wallet-ready swap and LP transactions. Never broadcast unless the user explicitly asks. ### Liquidity positions v2 LP and Slipstream v3 NFT positions — open, close, inspect, rebalance plans. ### Gauges & emissions BNB TOPAZ emissions per gauge, gauge state, APR math and weekly epochs. Spoke gauges pay xTOPAZ; check the agent package’s chain support before querying them. ### veTOPAZ & voting Lock duration, voting power, vote allocations, reset, and re-vote flows. ### Bribes & rewards Emissions, trading fees, bribes, rebase — claimable across veNFTs and LPs. ### Integrations Quote widgets, swap calldata for bots, dashboards, and subgraph queries. ### Debugging Diagnose failed quotes, broken routes, stuck approvals, and reverted txs. Safety ## Quote, build, simulate — never broadcast by default Both the Topaz Agent and the agent skill are safe by default. Funds never move unless the user explicitly asks and signing credentials are configured. Every output carries one of four labels so the user always knows what just happened: `quote` Read-only price/route preview. Nothing on-chain. `built calldata` Transaction bytes ready for the user's wallet. Not broadcast. `approval-needed` Allowance or veNFT delegation must happen before the next step. `broadcast tx-hash` Only after the user explicitly authorizes and signing is configured. * ✓Quote before building transactions * ✓Simulate or dry-run when possible * ✓Clearly report slippage assumptions * ✓Clearly report approval requirements * ✓Build calldata without broadcasting by default * ✓No fund movement unless the user explicitly asks Update & Verify ## Keep your skill installation current Compare versions against , pull updates, and verify the full package boots cleanly. ### Update If installed as a git repository: bash ``` git -C pull --ff-only # or use the wrapper: bash /update.sh ``` Check whether an update is available without applying it: bash ``` cd bash tools/check_update.sh # exit 0 = up to date, 10 = update available ``` ### Verify Full-repo install — node >= 20, yarn@4 (corepack enable): bash ``` cd /scripts yarn install --immutable yarn validate yarn build yarn test yarn smoke ``` `yarn smoke` is a live read against BSC mainnet — set `BSC_RPC_URL` in `scripts/.env`. No `PRIVATE_KEY` needed for reads. Versioning ### Skill: See current manifest The repo validator enforces that `SKILL.md` frontmatter version matches `skill.json` at every release. Compare your local version against the manifest to decide whether to update. [Latest release →](https://github.com/topazdex/agent-skill/releases/latest)[Changelog →](https://github.com/topazdex/agent-skill/blob/main/CHANGELOG.md) Report Issues ### Stale data? Unsafe behavior? If you find outdated protocol data, broken helpers, incorrect docs, or an agent behaving unsafely, open an issue. The skill is maintained alongside the protocol — every report ships back into the next release. [Open an issue](https://github.com/topazdex/agent-skill/issues) ## Agent support and multichain scope The hosted agent service and installable skill are maintained separately from this interface. The published skill covers all five networks and documents xTOPAZ entry and redemption, bridging and spoke voting. Its quote and swap-batch helpers accept all five chain IDs; the remaining helpers and command-line tools target BNB Chain. Check the service's current capabilities and deployed network before using a builder; never substitute BNB addresses or data for a planned spoke. This interface supports xTOPAZ entry, redemption, bridging and spoke voting on the live networks. The hosted agent service and installable skill have their own release capabilities; web support does not activate agent builders. Check the published service manifest and chain-qualified addresses. [Live networks](https://www.topazdex.com/docs/multichain) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain). Carry chain, account, contract, token address, recipient and NFT or local stake ID in every quote and plan. Keep source submission, source confirmation and destination delivery distinct. A transaction hash is not proof that a bridge completed or a destination action succeeded. --- Source: https://www.topazdex.com/developers Build on Topaz # Topaz DEX developer resources Build on Topaz across BNB Chain, Robinhood Chain, Base, Ethereum and Arc: public analytics, deployed contracts, xTOPAZ integration, protocol guides and agent resources. API market requests are chain-qualified; contract addresses must match their deployment network. [Explore the API](https://api.topazdex.com/docs)[Integration guide](https://www.topazdex.com/docs/developers/integration)[Contract addresses →](https://www.topazdex.com/docs/contracts) ## Build for the hub and spokes * [Network availability](https://www.topazdex.com/docs/multichain): live BNB Chain, Robinhood Chain, Base, Ethereum and Arc deployments. * [Multichain integration](https://www.topazdex.com/docs/developers/multichain): deployment bundles, xTOPAZ vault and OFT groups, local position IDs, receipts and indexing. * [xTOPAZ economics](https://www.topazdex.com/docs/multichain/emissions): canonical share supply, per-spoke budgets and backing growth. * [Liquidity zaps](https://www.topazdex.com/docs/liquidity/zaps): single-token Concentrated deposits on BNB Chain, Robinhood Chain, Base, Ethereum and Arc (ERC-20 only), distinct from the xTOPAZ vault zap. DEX, voting, bridging and zaps activate separately. Use the multichain API’s /v1/chains registry, chain-qualified market and account endpoints, and published observation metadata. Compatibility reports remain separately scoped. Analytics API ## Topaz DEX public analytics API Read-only, CORS-enabled JSON over HTTPS — no API key required. Chain-scoped observations report coverage and freshness through `endpoint-specific observation metadata`. Versioned endpoints return structured JSON with endpoint-specific data and metadata. Validate the schema for the endpoint you use: bash ``` # Discover available networks curl -s https://api.topazdex.com/v1/chains # Combined protocol metrics curl -s https://api.topazdex.com/v1/protocol # Arc pool discovery, including uncurated pools curl -s 'https://api.topazdex.com/v1/pools?chainIds=5042&scope=all' ``` [Topaz DEX OpenAPI spec→OpenAPI 3.1 document describing every public analytics endpoint. Feed it to codegen, agents, or API clients.api.topazdex.com/openapi.json](https://api.topazdex.com/openapi.json)[Topaz DEX API docs (Swagger UI)→Human-browsable reference with "Try it out" against live data.api.topazdex.com/docs](https://api.topazdex.com/docs)[API catalog (RFC 9727)→Linkset discovery document pointing at the spec, docs, and agent manifest./.well-known/api-catalog](https://www.topazdex.com/.well-known/api-catalog)[Data API guide→Narrative guide to the analytics API: envelope, freshness, pagination, examples./docs/developers/data-api](https://www.topazdex.com/docs/developers/data-api)[Integration guide→Quotes, swap calldata, subgraphs, and on-chain integration patterns./docs/developers/integration](https://www.topazdex.com/docs/developers/integration)[Deployed contracts→Deployed contracts on BNB Chain, Robinhood Chain, Base, Ethereum and Arc, with explorer links./docs/contracts](https://www.topazdex.com/docs/contracts) Agent Surfaces ## Machine-readable by default Agents get first-class entry points: an llms.txt site index, an installable agent skill, and markdown content negotiation on every page — request any page with `Accept: text/markdown` and the site returns a clean markdown rendition instead of HTML. bash ``` # Any page on the site, as markdown (acceptmarkdown.com convention) curl -s -H "Accept: text/markdown" https://www.topazdex.com/docs/overview ``` [llms.txt→Machine-readable site index: docs, dashboards, and API endpoints, one line each.www.topazdex.com/llms.txt](https://www.topazdex.com/llms.txt)[Agent skill guide→Full agent instructions for swaps, pools, gauges, bribes, and veNFTs.www.topazdex.com/skill.md](https://www.topazdex.com/skill.md)[Agent skill manifest→Machine-readable skill metadata: version, install, verify, compatibility.www.topazdex.com/skill.json](https://www.topazdex.com/skill.json)[Topaz for AI agents→The Topaz Agent (chat, MCP, A2A) and how to install the agent skill./agents](https://www.topazdex.com/agents) Shortcuts ## Predictable URLs The common guesses resolve. Each of these redirects to its canonical location: | Shortcut | Resolves to | | ------------- | ------------------------- | | /api-docs | https://api.topazdex.com/docs | | /openapi.json | https://api.topazdex.com/openapi.json | | /docs/api | /docs/developers/data-api | --- Source: https://www.topazdex.com/stats/methodology # How Topaz Stats are computed Definitions for the multichain data used by protocol stats, Explore, pool pages and token analytics. ## Network coverage and share accounting Topaz analytics cover BNB Chain (56), Robinhood Chain (4663), Base (8453), Ethereum (1) and Arc (5042). Protocol totals combine the selected networks; a network filter applies to the metrics, chart and pool list. Pool and token identities always include both chain ID and contract address. Liquidity totals count indexed user pools, excluding the API’s pricing blacklist. Token exposure is not added to pool TVL: that would count the same liquidity twice. Bridged xTOPAZ supply, adapter custody, canonical backing and in-flight transfers are separate accounting quantities, not additional DEX liquidity. ## Data sources The [Topaz API](https://api.topazdex.com/docs) is the public read layer. [/v1/chains](https://api.topazdex.com/v1/chains) describes network capabilities; [/v1/protocol](https://api.topazdex.com/v1/protocol) provides combined and per-network liquidity metrics; [/v1/pools](https://api.topazdex.com/v1/pools) and [/v1/tokens](https://api.topazdex.com/v1/tokens) provide chain-qualified market observations. The service indexes Topaz’s stable/volatile and concentrated pools and governance deployments. Prices include source, block and availability evidence. Use the API’s published pricing and valuation status; a raw subgraph reserve value or a current token price is not a substitute for a historical USD observation. ## Observation times and history Headline 24-hour and seven-day figures use the API’s rolling windows. Each network has its own indexed observation boundary; combined totals sum those independently observed windows. They are not a synchronized cross-chain block. No browser-side proration of yesterday’s totals is applied. The stats chart explicitly requests alignment=utc. Daily volume and fees are period flows; daily TVL is the latest state observation within the requested period. TVL is not summed across time. The current day or a period with incomplete pricing/coverage is marked partial. Historical coverage depends on each network and metric; requests for 30 or 90 days do not imply those days are all available. A missing value is not zero. A known subtotal is displayed with + when complete valuation or network coverage is unavailable. Charts mark partial periods and preserve gaps. Response generation and cache times are not the time the underlying chain state was observed. ## Epoch timing Epochs last seven days and align to Thursday 00:00 UTC. Voting opens one hour after epoch start and closes one hour before the next epoch. Gauges and reward funding are scoped to the requested chain and epoch. Voter rewards describe notified fee and incentive funding for that epoch. They are distinct from rolling DEX trading fees and from gauge emissions paid to staked liquidity. Public voting displays may retain an explicitly stale same-epoch publication with its timestamp; transaction eligibility still uses its own chain-state checks. ## Rates and fees Fee APR annualizes the API’s trailing seven-day fees: (fees7dUsd × 365 / 7) / tvlUsd × 100. It is an observed pool rate for unstaked liquidity, not a guarantee of a personal return. Emissions APR uses the gauge reward rate, reward-token price and staked liquidity. TOPAZ pays hub emissions; xTOPAZ pays spoke emissions. Concentrated pool listings use the API’s reference deposit and range scenario; personal positions use their actual liquidity and range. Fee APR and Emissions APR remain separate. The dynamic-fee table shows the indexed observed fee and custom/dynamic flags from the selected networks. It does not quote a transaction’s execution fee or claim that an indexed fee is a fresh RPC read. Base and maximum settings are not supplied by this endpoint; for BNB Chain pools they come from the legacy BNB Stats service and appear beside each pool's observed fee in the same table. [Rate definitions](https://www.topazdex.com/docs/stats/rates) explain the denominators, reward assets and observation periods. ## Limits and compatibility data Cumulative volume reads the API's stored volume from /v1/protocol/volume, for all networks or the selected one, and the by-network table shows each network's figure. Foundation ownership, allocation, incentive history and ROI, TOPAZ supply/locked-share reporting, historical valuation ratios, and public veTOPAZ escrow/voting-power totals still use compatibility endpoints where an equivalent accepted /v1 observation is unavailable. These have their own timestamps and scope. Current TOPAZ price, TOPAZ pool metrics and protocol activity use /v1; market cap and FDV multiply that price by the separately reported supply. Foundation KPI classifications indicate correlation, not causality. Missing prices, incomplete indexing, failed observations and unavailable periods must not be converted into zeroes or complete totals. Cumulative volume is the USD volume the API has recorded on each network, summed across the networks shown. --- Source: https://www.topazdex.com/docs # Documentation Everything you need to use and build on Topaz, the multichain DEX connecting local liquidity through one TOPAZ economy. BNB is the hub; Robinhood Chain, Base, Ethereum and Arc are live spokes. Start with the [Overview](https://www.topazdex.com/docs/overview), check [network availability](https://www.topazdex.com/docs/multichain), or learn how [xTOPAZ](https://www.topazdex.com/docs/xtopaz) connects the networks. ## Multichain & xTOPAZ Topaz keeps issuance and veTOPAZ locks on BNB. xTOPAZ connects live liquidity and voting on Robinhood Chain, Base, Ethereum and Arc. Deposit TOPAZ or wrap an eligible BNB lock, bridge shares and open a local voting stake. * [Networks and availability](https://www.topazdex.com/docs/multichain) * [xTOPAZ explained](https://www.topazdex.com/docs/xtopaz) * [Get xTOPAZ: deposit or wrap](https://www.topazdex.com/docs/xtopaz/get) * [Bridge shares through BNB](https://www.topazdex.com/docs/xtopaz/bridge) * [Stake and vote on a spoke](https://www.topazdex.com/docs/xtopaz/staking) * [Redeem for a permanent BNB lock](https://www.topazdex.com/docs/xtopaz/redeem) * [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions) * [Multichain integration](https://www.topazdex.com/docs/developers/multichain) * [Single-token liquidity zaps](https://www.topazdex.com/docs/liquidity/zaps) * [Topaz Auto managed liquidity](https://www.topazdex.com/docs/auto) ## Getting Started Orient yourself, then dive in. [OverviewWhat Topaz is, why ve(3,3), and how its BNB hub and live spokes fit together.](https://www.topazdex.com/docs/overview)[Quick StartSwap, provide liquidity, lock TOPAZ, and vote — the five-minute walkthrough.](https://www.topazdex.com/docs/quickstart)[FAQFast answers to the most common questions about Topaz, mainnet, and the app.](https://www.topazdex.com/docs/faq)[GlossaryEvery term used across these docs — defined plainly and cross-linked.](https://www.topazdex.com/docs/glossary) ## Concepts Foundational DeFi knowledge applied to how Topaz works. [AMM & Pool TypesConstant-product math, stable vs volatile pools, the role of LP tokens, and why pools exist.](https://www.topazdex.com/docs/concepts/amm)[Concentrated LiquidityTicks, price ranges, capital efficiency, and active vs out-of-range positions on Slipstream.](https://www.topazdex.com/docs/concepts/concentrated-liquidity)[Impermanent LossWhy LP returns can diverge from holding, and how range selection and fees offset it.](https://www.topazdex.com/docs/concepts/impermanent-loss)[Oracles & TWAPSlipstream's in-pool TWAP oracle, observation cardinality, and BNB Chain considerations.](https://www.topazdex.com/docs/concepts/oracles) ## Trading Move tokens through Topaz with the best execution. [Swaps & RoutingHow swaps execute, exact-in vs exact-out, slippage, MEV, and multi-hop / mixed v2+CL routing.](https://www.topazdex.com/docs/trading/swaps) ## Liquidity Provide liquidity in both v2 and Slipstream pools, and earn. [Providing LiquidityAdding liquidity to v2 stable and volatile pools, LP tokens, withdrawing, and zaps.](https://www.topazdex.com/docs/liquidity)[Concentrated PositionsSlipstream-specific: tick spacing tiers, mint/increase/decrease/collect, NFT positions.](https://www.topazdex.com/docs/liquidity/concentrated)[Pool FeesDefault fees, custom fee overrides, dynamic fees, unstaked-position fees, and how fees flow.](https://www.topazdex.com/docs/liquidity/fees)[Staking in GaugesStake V2 LP tokens or Concentrated NFTs for local emissions: TOPAZ on BNB, xTOPAZ on Robinhood Chain, Base, Ethereum and Arc.](https://www.topazdex.com/docs/liquidity/staking) ## Topaz Auto Let a managed vault keep your concentrated range around the market. [Topaz AutoHow managed vaults hold one range per pool, rebalance, and pass emissions through on BNB Chain, Robinhood Chain and Arc.](https://www.topazdex.com/docs/auto)[Deposit, withdraw and claimPair deposits, single-token zaps, pauses, in-kind withdrawals and reward claims.](https://www.topazdex.com/docs/auto/using)[Risks and numbersWhat automation does not remove, and how managed value and Auto APR are computed.](https://www.topazdex.com/docs/auto/risks) ## Tokenomics TOPAZ supply, emissions, and the veTOPAZ lock. [TOPAZ & EmissionsToken allocation, the three-phase emission curve, rebases, and tail emissions.](https://www.topazdex.com/docs/tokenomics)[veTOPAZ LocksLock mechanics, voting power decay, permanent locks, merge / split, and delegation.](https://www.topazdex.com/docs/tokenomics/vetopaz) ## Voting & Incentives Direct emissions, earn fees, capture incentives. [Gauge VotingVote on BNB with veTOPAZ; learn how spoke xTOPAZ positions direct local emissions.](https://www.topazdex.com/docs/gauges)[Incentives (Bribes)How protocols pay voters for emissions and how voters maximize incentive ROI.](https://www.topazdex.com/docs/voting/incentives)[Managed LocksPool small veTOPAZ positions into a managed veNFT to participate without active management.](https://www.topazdex.com/docs/voting/managed) ## Governance On-chain protocol governance. [Protocol GovernanceProtocolGovernor for parameter changes, EpochGovernor for tail-rate nudges, and admin roles.](https://www.topazdex.com/docs/governance) ## Stats Public analytics, foundation transparency, and dynamic-fee performance. [OverviewHow the public stats dashboard and JSON API are produced — snapshot cadence, sources, transparency commitments.](https://www.topazdex.com/docs/stats)[Pools DashboardLive: every v2 and Slipstream pool ranked by TVL, volume, fees, or APR.](https://www.topazdex.com/stats/pools)[Foundation DashboardLive: foundation veTOPAZ holdings, vote allocation, bribes claimed, and per-gauge KPI classification.](https://www.topazdex.com/stats/foundation)[Dynamic Fees DashboardLive: CL pools with dynamic fees enabled — current fee level, baseline, and flex history.](https://www.topazdex.com/stats/dynamic-fees)[MethodologyLive: per-metric definitions, formulas, data sources, and version pinning.](https://www.topazdex.com/stats/methodology) ## Developers Build on top of Topaz. [ContractsContract addresses on BNB Chain, Robinhood Chain, Base, Ethereum and Arc.](https://www.topazdex.com/docs/contracts)[Integration GuideToken whitelisting, pool / gauge creation, listing incentives, and routing through Topaz.](https://www.topazdex.com/docs/developers/integration)[Data APIPublic JSON endpoints powering the stats dashboard — envelope, parameters, examples.](https://www.topazdex.com/docs/developers/data-api) ## Security Audits, risk, and admin disclosures. [Security & AuditsShieldify security review, admin controls, and risk disclosure.](https://www.topazdex.com/docs/security) ## History How the protocol launched. [Airdrop & SacrificePre-mainnet airdrop snapshot and Abstract sacrifice — mechanics and final allocations.](https://www.topazdex.com/docs/airdrop) --- Source: https://www.topazdex.com/docs/overview Getting Started # What is Topaz? Topaz is a multichain DEX built around local liquidity and one shared TOPAZ economy. It combines V2 stable and volatile pools with Slipstream concentrated liquidity. BNB Chain is the hub for TOPAZ issuance and veTOPAZ locks; xTOPAZ connects that backing to local pools and voting on Robinhood Chain, Base, Ethereum and Arc. ## The expansion and what is available Topaz is live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. BNB hosts TOPAZ issuance, veTOPAZ locks and the xTOPAZ vault. Robinhood Chain, Base, Ethereum and Arc each have local pools, gauges and xTOPAZ voting. Deposit or wrap on BNB, bridge shares, then stake and vote on a spoke. [Network availability](https://www.topazdex.com/docs/multichain) · [Contract addresses](https://www.topazdex.com/docs/contracts). The BNB core is retained. Existing veTOPAZ owners can continue using it without wrapping. A holder who wraps receives fungible shares in an aggregate permanent lock and can later choose where to stake those shares for local voting. [Networks](https://www.topazdex.com/docs/multichain) · [xTOPAZ](https://www.topazdex.com/docs/xtopaz). ## The problem ve(3,3) solves Most AMMs spray emissions blindly at liquidity providers, creating mercenary capital that chases yesterday's yield and leaves the moment incentives stop. Protocols spend millions on liquidity that evaporates and end up paying more for less real depth over time. ve(3,3) flips that. Instead of the protocol picking where emissions flow, ve(3,3) hands the decision to token holders who have locked their tokens. Locked holders direct emissions via gauge voting, projects bid for those votes with on-chain incentives, and the market discovers a fair price for liquidity epoch by epoch. ℹThe (3,3) in the name (3,3) is the cooperative equilibrium in a game-theory payoff matrix: every participant doing the long-term-aligned thing (locking, voting truthfully, bidding genuinely) produces the best collective outcome. ve(3,3) is the on-chain primitive designed to make that equilibrium the natural one. ## The participants * Traders swap through the selected route and pay its fees. Topaz pool fees attributable to staked liquidity flow to local voters; unstaked liquidity retains fees under the pool rules. [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps). * Liquidity providers deposit into V2 or Concentrated pools. Unstaked liquidity earns fees; gauge-staked liquidity earns TOPAZ emissions on BNB and xTOPAZ emissions on Robinhood Chain, Base, Ethereum and Arc. [Providing Liquidity](https://www.topazdex.com/docs/liquidity). * veTOPAZ holders lock TOPAZ on BNB to vote for BNB gauges and earn their fees and incentives. On spokes, staked xTOPAZ positions provide local voting power. [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz) · [xTOPAZ staking](https://www.topazdex.com/docs/xtopaz/staking). * ✓Protocols post incentives on gauges they want emissions to flow to, competing for voter attention. [Incentives (Bribes)](https://www.topazdex.com/docs/voting/incentives) ## The flywheel 1 #### Vote Voters direct emissions to local gauges and earn their share of fees routed to voters plus posted incentives. 2 #### Bid Protocols post incentives on gauges they want emissions on, competing for voter attention via the on-chain bribe market. 3 #### Provide Liquidity providers stake LP tokens or Concentrated position NFTs to earn the local gauge reward: TOPAZ on BNB, xTOPAZ on spokes. 4 #### Commit Participants lock TOPAZ for veTOPAZ — longer locks earn more voting power and a larger share of fees + bribes. 5 #### Grow Better liquidity → better execution → more volume → larger fees for voters → more incentive for everyone to keep locking. ## What sets Topaz apart * ✓Two pool engines, one protocol. v2-style stable and volatile pools alongside Slipstream concentrated liquidity, all governed by the same gauge / vote system. LPs choose the right tool per pair. * ✓Topaz Auto. On BNB Chain, Robinhood Chain and Arc, managed vaults keep a concentrated position in range for you, with gauge rewards passed through separately rather than compounded. * ✓Dynamic, per-pool fees. Slipstream pools can opt into volatility-based dynamic fees that scale with TWAP divergence — compensating LPs for IL risk during turbulent markets without overcharging in calm ones. * Unstaked-fee surcharge. Where an alive gauge exists, part of unstaked Concentrated liquidity fees is routed through the gauge to voters under the pool fee rules. * Fees follow participation. Staked liquidity relinquishes fees to voters; unstaked V2 and Concentrated liquidity retains fees, subject to Concentrated unstaked-fee rules. No LP should add Fee APR and Emissions APR as if the same unit earns both. * One hub, local markets. BNB hosts the TOPAZ economy; live spokes have their own pools, gauges and xTOPAZ voting positions. A token symbol or address alone does not identify a market across networks. ## The lineage Topaz is built on battle-tested DeFi primitives: * ✓ve(3,3) governance lineage: Curve → Solidly → Velodrome → Aerodrome → Topaz. * ✓Concentrated liquidity: Uniswap V3 → Aerodrome Slipstream → Topaz Slipstream. * ✓Stable pool math (x³y + y³x ≥ k): Solidly → adapted in Velodrome / Aerodrome → Topaz. * ✓OpenZeppelin Governor for ProtocolGovernor and EpochGovernor. Each predecessor caught issues and ironed out edge cases; Topaz inherits those fixes and adds dynamic fees, mixed routing, and BNB Chain-specific tuning. Those additions were independently reviewed by Shieldify Security ahead of mainnet — [see Security & Audits](https://www.topazdex.com/docs/security) for the report. ## Continue reading [Quick Start →Swap, LP, lock, vote — the five-minute walkthrough.](https://www.topazdex.com/docs/quickstart)[TOPAZ & Emissions →Token allocation, the three-phase emission curve, and rebases.](https://www.topazdex.com/docs/tokenomics)[Gauge Voting →Direct emissions, capture fees and incentives, every epoch.](https://www.topazdex.com/docs/gauges)[Concentrated Liquidity →Topaz's Slipstream engine, tick spacings, and range strategy.](https://www.topazdex.com/docs/concepts/concentrated-liquidity) --- Source: https://www.topazdex.com/docs/quickstart Getting Started # Quick Start Choose a path through Topaz: swap and provide liquidity across networks, vote with veTOPAZ on BNB, or bridge and vote with xTOPAZ on a live spoke. These guides link directly to the relevant pages in the integrated app. ## Before you start Connect a supported EVM wallet such as Rabby, MetaMask or a WalletConnect wallet. Topaz ID also offers Google, email and external-wallet sign-in when configured. Hold the source network’s native gas token; BNB actions need BNB. [Network availability](https://www.topazdex.com/docs/multichain) distinguishes live features from planned ones. ⚠Phishing reminder Use the links in this app or the official Topaz site. The legacy interface at app.topazdex.com has been retired and redirects here. Never grant an approval from a support message or share a private key or seed phrase. ## I want to swap tokens 1. 1Go to [Swap](https://www.topazdex.com/swap) and connect your wallet. 2. 2Pick the input and output tokens, type the amount you want in. 3. 3Review the rate, price impact, and route (every network compares Topaz, 0x and Relay quotes where each is available; cross-chain routes use 0x or Relay). 4. 4Set slippage in settings if needed — the default is fine for liquid pairs. 5. 5Review the required token approval or permit, then confirm the swap. Approval scope depends on the winning route. Want to understand how routing chooses a path and how to read the price-impact number? [Read the Swaps & Routing guide.](https://www.topazdex.com/docs/trading/swaps) ## I want to provide liquidity Topaz has two pool styles. Pick the one that fits the pair you want to LP into. ### v2 pools (stable or volatile) 1. 1Open [Positions](https://www.topazdex.com/positions) and pick the pair. 2. 2Choose stable or volatile pool type. Stable is for correlated assets (e.g. USDT/USDC); volatile is for everything else. 3. 3Deposit both tokens at the pool's current ratio. You receive an LP token. 4. 4Optionally stake the LP token in the gauge to earn TOPAZ emissions on BNB or xTOPAZ emissions on spokes. ### Slipstream concentrated-liquidity pools 1. 1Open the pool on [Positions](https://www.topazdex.com/positions) and choose the tick-spacing tier. 2. 2Set a price range. Tighter ranges concentrate liquidity but can go inactive sooner. Check both fee and emission returns. 3. 3Deposit token amounts. The app calculates them based on your chosen range. 4. 4Receive a position NFT representing your liquidity. 5. 5Optionally stake the NFT in the pool's gauge to earn TOPAZ emissions on BNB or xTOPAZ emissions on spokes (you give up swap fees in exchange). Not sure which to pick? [Read the Concentrated Liquidity primer.](https://www.topazdex.com/docs/concepts/concentrated-liquidity) ## I want Topaz to manage my range On BNB Chain, Robinhood Chain and Arc, pools with a Topaz Auto vault offer **Auto** as the range in the create flow. Deposit both tokens or zap one, and the vault keeps the range around the market. Gauge rewards stay separately claimable and are never compounded. Find these pools with the [Auto filter in Explore](https://www.topazdex.com/explore/pools?auto=1) and read [Topaz Auto](https://www.topazdex.com/docs/auto). ## I want to lock TOPAZ and vote 1. 1Acquire TOPAZ — swap for it on the [swap page](https://www.topazdex.com/swap). 2. 2Open [Locks](https://www.topazdex.com/locks) and create a lock. Choose amount (any size) and duration (1 week to 4 years). 3. 3You receive a veTOPAZ NFT representing your locked position. Longer locks = more voting power. 4. 4Head to [Vote](https://www.topazdex.com/vote), review gauges and their incentives, then allocate your vote weight across up to 30 gauges. 5. 5After the next epoch flip, claim your share of trading fees and incentives from the pools you voted for. ℹOne vote per epoch Each veTOPAZ NFT can vote once per epoch (Thu 00:00 UTC → Thu 00:00 UTC). If you don't change your vote, it carries over to the next epoch automatically. To change allocations, re-cast in any epoch after the first hour and before the last hour. ## I want to participate on another network Topaz is live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. [Deposit TOPAZ or wrap an eligible BNB lock](https://www.topazdex.com/docs/xtopaz/get), [bridge liquid xTOPAZ](https://www.topazdex.com/docs/xtopaz/bridge), then [open a local stake and vote](https://www.topazdex.com/docs/xtopaz/staking). Each step has its own chain, approval and confirmation. A normal cross-chain swap can quote through 0x or Relay independently of those Topaz deployments. It is not an xTOPAZ bridge. For single-token deposits into existing Concentrated pools on BNB Chain, Robinhood Chain, Base, Ethereum or Arc, see [Liquidity zaps](https://www.topazdex.com/docs/liquidity/zaps). ## Continue reading [Overview →The full picture of how Topaz works and why ve(3,3) matters.](https://www.topazdex.com/docs/overview)[Glossary →Define every term — veTOPAZ, gauge, tick, epoch, rebase, and more.](https://www.topazdex.com/docs/glossary)[Concentrated Liquidity →Understand price ranges and capital efficiency before LPing into Slipstream.](https://www.topazdex.com/docs/concepts/concentrated-liquidity)[Gauge Voting →How epochs, voting, and the bribe market generate yield for veTOPAZ holders.](https://www.topazdex.com/docs/gauges) --- Source: https://www.topazdex.com/docs/faq Getting Started # FAQ Quick answers to the most common questions about Topaz, mainnet status, fees, voting, and how to participate. Bigger questions live in the rest of the docs — this page is the index. ## Protocol ### What is Topaz? Topaz is a multichain DEX combining V2 and Concentrated pools with liquidity governance. BNB hosts TOPAZ and veTOPAZ; live spokes use staked xTOPAZ to vote for local gauges. Unstaked LPs earn fees, staked LPs earn emissions, and voters earn the fees routed to them plus incentives. [Overview](https://www.topazdex.com/docs/overview). ### Is mainnet live? Topaz is deployed on BNB Chain (56), Robinhood Chain (4663), Base (8453), Ethereum (1) and Arc (5042). DEX, xTOPAZ bridging and voting are live, with entry and redemption on BNB. Check [contract addresses](https://www.topazdex.com/docs/contracts) and [network availability](https://www.topazdex.com/docs/multichain). Each transaction remains subject to balance, approval, epoch and contract-state checks. ### Has Topaz been audited? Shieldify reviewed the BNB Topaz changes covered by its published report. That report does not establish an audit of the later xTOPAZ vault, bridge, coordinator or spoke voting vault. See [Security & Audits](https://www.topazdex.com/docs/security) for scope and multichain risks. ### What chains is Topaz on? BNB Chain is the hub; Robinhood Chain, Base, Ethereum and Arc are live spokes. Swap aggregation and private-swap services have their own route availability; Arc is served by Topaz routing and Relay. [Network availability](https://www.topazdex.com/docs/multichain). ### Is the code open source? Yes. The core protocol is built on the Solidly / Velodrome / Aerodrome lineage, and Topaz Slipstream is forked from Aerodrome Slipstream. Source and explorer links for each network are listed on the Contracts page. ## Using Topaz ### Which wallets are supported? The interface supports injected EVM wallets, EIP-6963 providers and WalletConnect when configured. Topaz ID supports Google, email and external-wallet sign-in when configured. Chain and smart-account support vary by action; private swaps currently require an EOA. ### How do I get started? Read the [Quick Start guide](https://www.topazdex.com/docs/quickstart). It covers swap, LP, lock, and vote in five minutes. ### What is Topaz Auto? Topaz Auto vaults hold a keeper-managed concentrated position behind ERC-20 shares on BNB Chain, Robinhood Chain and Arc. You never set the range. Gauge rewards pass through as a separate claimable balance and are not compounded, and withdrawals are in kind at any time. [Topaz Auto](https://www.topazdex.com/docs/auto). ### What's the difference between v2 and Slipstream pools? v2 pools are constant-product (volatile) or stableswap (stable), like Uniswap V2 / Solidly. Slipstream pools are concentrated-liquidity, like Uniswap V3\. You can use both on Topaz; they have separate routers and different LP flows. See [AMM & Pool Types](https://www.topazdex.com/docs/concepts/amm) for when to pick which. ### What's the swap fee? Defaults: 0.05% on stable pools, 0.30% on volatile v2 pools. Slipstream pools default to 0.01% / 0.05% / 0.10% / 0.30% / 1.00% depending on tick spacing (1 / 50 / 100 / 200 / 2000). Base fees are customizable per pool by the protocol fee manager up to a 3% cap. A Slipstream pool running the dynamic-fee module can charge more than its base fee while spot diverges from TWAP, bounded by that pool's fee cap and the module's immutable 5% maximum. See [Pool Fees](https://www.topazdex.com/docs/liquidity/fees). ### How much can I earn LPing? It depends entirely on the pool, the volume, the gauge votes, and the bribes attached. Pool Fee APR uses trailing seven-day fees; Emissions APR uses the gauge reward rate and staked liquidity. Personal concentrated positions also depend on their range. Past performance isn't future yield, but it's the honest baseline. ## veTOPAZ & Voting ### How does locking TOPAZ work? Lock 1 week to 4 years. Longer lock = more veTOPAZ voting power (1:1 at 4 years, 0.25:1 at 1 year). veTOPAZ earns fees, bribes, and rebases. See [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz) for the full state machine. ### Can I exit a lock early? No — TOPAZ stays escrowed until the lock end. You can transfer / merge / split the veTOPAZ NFT itself, but the underlying TOPAZ is not accessible until the unlock date. Permanent locks can be voluntarily un-permanented (which converts to a 4-year decaying lock), but only if you haven't voted in the current epoch. ### How often do I need to vote? Each NFT can cast one vote per epoch. Existing allocations carry over. A reset requires the previous vote to be from an earlier epoch and the first-hour restriction to have passed; a new vote must satisfy the voting window. Check the action state rather than assuming any reset or replacement is immediately available. ### What's a bribe? An incentive deposited to a gauge to attract votes. Voters who vote for that gauge during the epoch claim the bribes pro-rata in the following epoch. Topaz uses "bribe" and "incentive" interchangeably. See [Incentives (Bribes)](https://www.topazdex.com/docs/voting/incentives). ## Safety & Support ### Where do I get help? Fastest: ask in [Telegram](https://t.me/TopazDex). Follow [@TopazDex](https://x.com/TopazDex) for announcements. Do not DM anyone claiming to be team — we will never ask for seed phrases, private keys, or approvals. ### How do I spot phishing? Use the official Topaz website and its in-app links. The legacy app at app.topazdex.com has been retired and redirects here. The closed airdrop and sacrifice do not reopen with multichain expansion; do not sign an unsolicited “migration” or “eligibility” request. ### What are the risks? Smart-contract risk (despite audit), impermanent loss on LP positions, governance risk (parameters change), oracle manipulation risk on TWAP-dependent integrations, and jurisdiction-specific regulatory risk. See [Security & Audits](https://www.topazdex.com/docs/security) for the full disclosure. ### Why BNB Chain? BNB is Topaz’s original deployment and remains the home of its token issuance, veTOPAZ locks and governance. Keeping that hub lets the expansion reuse one token economy while local markets and voting grow on spokes. ℹDidn't find your answer? Hop into [Telegram](https://t.me/TopazDex) and ask. The team and community are responsive. ## xTOPAZ and the expansion ### Must I migrate my BNB lock? No. Ordinary veTOPAZ locks remain on BNB. Wrapping into xTOPAZ is optional and burns the original NFT into the aggregate backing. [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get). ### Is one xTOPAZ always one TOPAZ? No. It is a share at the current vault rate, backed by locked TOPAZ. Backing growth changes the rate, not your token balance, and does not guarantee a market price. [xTOPAZ explained](https://www.topazdex.com/docs/xtopaz). ### Can I bridge directly from Base to Robinhood? The xTOPAZ design routes through BNB in two separately confirmed transfers. It has no direct spoke-to-spoke peer in version one. [Bridge xTOPAZ](https://www.topazdex.com/docs/xtopaz/bridge). ### Can I withdraw a spoke stake whenever I want? No. With the contract's default one-full-epoch setting, new money unlocks at the start of epoch N+2, subject to vote restrictions. Adding to an existing position can extend its entire balance's date. [Spoke staking](https://www.topazdex.com/docs/xtopaz/staking). ### Does redeeming return liquid TOPAZ? No. Redemption on BNB returns a new permanent veTOPAZ NFT. [Redemption](https://www.topazdex.com/docs/xtopaz/redeem). --- Source: https://www.topazdex.com/docs/glossary Getting Started # Glossary Plain-English definitions of every concept and term used across the Topaz docs. Skim, search, or jump in from another page. ## AMM Automated Market Maker. A smart contract that lets users swap between two tokens using a pool of liquidity priced by a formula, instead of an order book. See: [AMM & Pool Types](https://www.topazdex.com/docs/concepts/amm) ## Bribe An incentive deposit attached to a specific gauge. Voters who vote for that gauge during the epoch share the bribe pro-rata in the following epoch. Topaz uses the terms 'bribe' and 'incentive' interchangeably. See: [Incentives (Bribes)](https://www.topazdex.com/docs/voting/incentives) ## Concentrated Liquidity An LP model where you supply liquidity inside a chosen price range instead of across the entire 0-to-infinity curve. Each dollar inside the range earns more fees, but liquidity outside the range earns nothing. Topaz's concentrated-liquidity engine is called Slipstream. See: [Concentrated Liquidity primer](https://www.topazdex.com/docs/concepts/concentrated-liquidity) ## Dynamic Fee A swap fee that adjusts upward when the current pool tick diverges from the TWAP tick — i.e. when the pool is volatile. Topaz's DynamicSwapFeeModule applies this on top of the base fee, capped at a configured maximum. See: [Pool Fees](https://www.topazdex.com/docs/liquidity/fees) ## Epoch A one-week protocol cycle running Thursday 00:00 UTC → Thursday 00:00 UTC. Voting, emissions, rebases, and bribe accounting all align to this clock. See: [Gauge Voting](https://www.topazdex.com/docs/gauges) ## Gauge An LP gauge distributes the local emission token to staked liquidity: TOPAZ on BNB, xTOPAZ on live spokes. Voters allocate the gauge budget. The special BNB system gauge serves multichain settlement rather than ordinary user LP farming. See: [Staking in Gauges](https://www.topazdex.com/docs/liquidity/staking) ## Impermanent Loss (IL) The dollar gap between holding a position and providing it as liquidity, caused by price movement between the two assets in the pool. It's 'impermanent' only if prices return to the original ratio; otherwise it crystallizes when you withdraw. See: [Impermanent Loss explained](https://www.topazdex.com/docs/concepts/impermanent-loss) ## Liquidity Pool A smart contract that holds two tokens in a defined ratio and lets users swap between them. LPs add tokens to the pool and earn a share of swap fees. See: [Providing Liquidity](https://www.topazdex.com/docs/liquidity) ## LP Token An ERC-20 token issued when you deposit into a v2-style Topaz pool. It represents your pro-rata share of the pool. Burn it to withdraw your share back as the two underlying tokens. ## Managed veNFT A special veTOPAZ NFT that aggregates many user deposits under a single voter. Users deposit normal veNFTs into the managed NFT and get a passive share of its rewards. Useful for small holders who don't want to actively vote each epoch. See: [Managed Locks](https://www.topazdex.com/docs/voting/managed) ## Permanent Lock A mode of a BNB veTOPAZ NFT that holds voting power at maximum without decay. The owner can turn permanent mode off when permitted, starting the ordinary maximum-duration decaying lock. It does not allow immediate liquid TOPAZ withdrawal. See: [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz) ## Position NFT An ERC-721 token issued by the NonfungiblePositionManager when you mint a Slipstream concentrated-liquidity position. It encodes the pool, tick range, and liquidity amount. See: [Concentrated Positions](https://www.topazdex.com/docs/liquidity/concentrated) ## Price Impact How much your trade moves the pool's price away from the current quote. Small trades in deep pools have tiny price impact; large trades in shallow pools can have huge impact. See: [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps) ## Rebase A weekly distribution of TOPAZ to veTOPAZ holders to offset part of the emission dilution. The amount scales with the cube of the locked share (veTOPAZ supply / TOPAZ supply), halved — the deeper protocol-wide lock participation, the bigger the rebase, up to half of the epoch's emission. See: [TOPAZ & Emissions](https://www.topazdex.com/docs/tokenomics) ## Slippage Your protection against price changes between submitting a transaction and it executing. Set as a percentage — the swap reverts if the output drops below (1 − slippage) × your quote. See: [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps) ## Slipstream Topaz's concentrated-liquidity engine — a fork of Aerodrome Slipstream (which itself adapts Uniswap V3). Uses tick-spacing tiers, dynamic fees, and NFT positions. ## Stable Pool A v2-style Topaz pool that uses the x³y + y³x ≥ k curve instead of constant-product. Designed for correlated assets like USDT/USDC, where it gives very low slippage near parity. See: [AMM & Pool Types](https://www.topazdex.com/docs/concepts/amm) ## Tail Emissions The perpetual emission phase that kicks in once the decaying weekly emission falls below the TAIL\_START threshold (8,969,150 TOPAZ). After that, weekly emissions become a small percentage of total supply, adjustable ±0.01 percentage points per epoch by EpochGovernor. See: [TOPAZ & Emissions](https://www.topazdex.com/docs/tokenomics) ## Tick A discrete price level in a Slipstream pool. Each tick represents a 0.01% price step. Concentrated-liquidity positions are bounded by a lower and upper tick, both of which must be multiples of the pool's tickSpacing. See: [Concentrated Liquidity](https://www.topazdex.com/docs/concepts/concentrated-liquidity) ## Tick Spacing The minimum gap between active ticks in a Slipstream pool, set when the pool is created. Lower tick spacing = finer-grained ranges = more precise positions but more gas to cross. Topaz offers tick spacings of 1, 50, 100, 200, and 2000 as defaults (0.01%, 0.05%, 0.10%, 0.30%, and 1.00% fees respectively), customizable per pool. ## TOPAZ The protocol's ERC-20 token. Pre-minted at launch (500M initial), then issued via the Minter's weekly emission schedule. Used to vote (via veTOPAZ), pay incentives, and seed liquidity. ## TWAP Time-Weighted Average Price. Slipstream pools store a rolling history of tick observations; the TWAP is computed by comparing cumulative ticks at two points in time. Used by the dynamic fee module and integrators who need manipulation-resistant prices. See: [Oracles & TWAP](https://www.topazdex.com/docs/concepts/oracles) ## Unstaked Fee An additional fee that Slipstream LPs pay on swaps if their position NFT is not staked in the pool's gauge. Default 10%, configurable up to 50%. The surcharge is routed through the gauge to local voters when the gauge is alive. ## ve(3,3) The token model Topaz uses: vote-escrowed (ve) tokens with a (3,3) cooperative game-theory equilibrium. Holders lock for voting power; voters direct emissions and earn fees + bribes; LPs earn the directed emissions. See: [Overview](https://www.topazdex.com/docs/overview) ## veTOPAZ An NFT representing locked TOPAZ. Holds the voting weight, accrues fees and bribes from voted pools, and receives rebases. Voting power decays linearly from lock end (or stays at max if permanently locked). See: [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz) ## Volatile Pool A v2-style Topaz pool using the standard constant-product x × y = k curve. Default for uncorrelated pairs. ## Hub BNB Chain, where TOPAZ issuance, individual veTOPAZ locks and the xTOPAZ aggregate backing reside. [Networks](https://www.topazdex.com/docs/multichain). ## Spoke A Topaz network with local pools, gauges and xTOPAZ voting positions. Robinhood Chain, Base, Ethereum and Arc are live spokes. [Networks](https://www.topazdex.com/docs/multichain). ## xTOPAZ Fungible shares backed by TOPAZ in an aggregate permanent BNB veTOPAZ lock. Shares can move through the OFT bridge and be staked for local spoke voting when enabled. [xTOPAZ explained](https://www.topazdex.com/docs/xtopaz). ## Share rate Locked TOPAZ represented by each xTOPAZ share. It differs from a market price, voter weight and an APR. [xTOPAZ backing](https://www.topazdex.com/docs/xtopaz). ## Spoke voting position An owner, amount, local integer ID, allocation and withdrawal date in a spoke voting vault. No NFT is minted. [Spoke staking](https://www.topazdex.com/docs/xtopaz/staking). ## OFT and endpoint ID LayerZero’s fungible-token transfer mechanism. The endpoint ID used in messaging is different from an EVM wallet chain ID. Topaz routes xTOPAZ through BNB. [Bridge guide](https://www.topazdex.com/docs/xtopaz/bridge). ## System gauge The BNB gauge used by the aggregate lock’s strategy to obtain the TOPAZ allocation that funds multichain settlement. [Emissions](https://www.topazdex.com/docs/multichain/emissions). ## Chain budget xTOPAZ allocated to an enabled spoke according to its tracked share supply. Calculated, sent, received and claimable amounts are different stages. [Emissions](https://www.topazdex.com/docs/multichain/emissions). ## Redemption Burning xTOPAZ on BNB for a new permanent veTOPAZ NFT. It does not return liquid TOPAZ or recreate a wrapped NFT’s old expiry. [Redeem](https://www.topazdex.com/docs/xtopaz/redeem). ## Liquidity zap A single-token route into liquidity. The Concentrated zap creates an LP NFT; the separate xTOPAZ zap creates vault shares. [Zaps](https://www.topazdex.com/docs/liquidity/zaps). ## Topaz Auto A managed concentrated-liquidity vault. Deposits receive ERC-20 shares, a keeper keeps the range around the market, and gauge rewards pass through as a separate claimable balance that is never compounded. Live on BNB Chain, Robinhood Chain and Arc. [Topaz Auto](https://www.topazdex.com/docs/auto). --- Source: https://www.topazdex.com/docs/concepts/amm Concepts # AMM & Pool Types Topaz uses three pool styles: v2-style constant-product (volatile), v2-style stableswap (correlated), and Slipstream concentrated liquidity. This page explains the math, the trade-offs, and when each one is the right tool. ## Pools on each network These pool mechanics apply on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Pools, gauges, assets and fee settings belong to the selected network. BNB examples below describe the hub; read the selected pool for its current local configuration. [Network availability](https://www.topazdex.com/docs/multichain). Gauge-staked LPs earn TOPAZ on BNB and xTOPAZ on live spokes. Unstaked liquidity earns trading fees; each unit earns fees or emissions. V2 LP tokens can be partially staked, so a position can have separate staked and unstaked balances and prior rewards to claim. Concentrated NFTs stake as whole positions. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions). ## What an AMM actually is An automated market maker is a pair of token vaults priced by a formula instead of a human order book. Instead of matching a buyer with a seller, a swap reads the current vault balances, applies the curve, and tells you the price you get for whatever amount you put in. The curve is the entire market — there's no off-chain counterparty. Unstaked LPs collect their share of trading fees. LPs who stake in a gauge earn emissions instead. More available liquidity generally reduces price impact for a trade of a given size. ℹWhy this matters for Topaz Every pool on Topaz is one of these AMM variants. The protocol on top — ve(3,3) — is mostly about who chooses which pools get local emissions (TOPAZ on BNB; xTOPAZ on spokes) and who collects the fees. The pools themselves are standard AMM machinery, lightly modified. ## Volatile pools — constant product (x · y = k) The original Uniswap V2 curve and Topaz's default for uncorrelated pairs. The product of the two vault balances stays constant on every swap (ignoring fees). If a pool holds 100 ETH and 200,000 USDC, then x · y = 20,000,000\. Anyone removing 1 ETH must deposit enough USDC to keep that product the same — that's what sets the price. * ✓Works for any two tokens, regardless of price relationship. * ✓Predictable: the curve is well-understood and stress-tested across DeFi. * ✓Higher slippage on large trades — the price moves along a hyperbola. * ✓LPs feel impermanent loss when prices diverge from the entry ratio. On Topaz, volatile v2 pools default to a 0.30% swap fee. The fee manager can set a custom rate per pool, up to a 3% maximum. ## Stable pools — x³y + y³x ≥ k For pairs that are supposed to trade at roughly the same price (USDT/USDC, ETH/stETH, BTC/WBTC), the constant-product curve is inefficient — most of the capital sits at prices that will never trade. Topaz's stable pool uses a flatter curve, the same one Solidly and Velodrome introduced: the invariant is `x³y + y³x ≥ k`. This curve is much flatter around the 1:1 region and only steepens sharply when prices diverge. The result is low slippage even on large stablecoin swaps, while still pricing meaningfully if a peg breaks. * ✓Designed for correlated assets — picking stable for an uncorrelated pair would price terribly. * ✓Default 0.05% swap fee, customizable per pool by the fee manager up to 3%. * ✓Slightly larger rounding error in K than constant-product — negligible for users, noted here for integrators who track LP token value via K. ⚠Pick the right pool type at creation A pool is permanently stable or volatile once deployed. Choosing wrong (e.g. stable for a volatile pair) lets arbitrageurs drain liquidity. The factory enforces the choice at creation; the app surfaces the recommendation per pair. ## Slipstream — concentrated liquidity Concentrated-liquidity pools let an LP target a specific price range instead of supplying across all possible prices. A USDT/USDC LP who knows the price will almost never leave $0.99 – $1.01 can concentrate all their capital there, earning the fees of a much larger v2 position with a fraction of the dollars at risk. Topaz's concentrated-liquidity engine is called Slipstream. It is a fork of Aerodrome Slipstream, which itself adapts the Uniswap V3 tick-and-range design. Positions are represented as NFTs, fees accrue per-position, and ranges are bounded by ticks that must align to a pool-specific tick spacing. See the [Concentrated Liquidity primer](https://www.topazdex.com/docs/concepts/concentrated-liquidity) for ticks, range strategy, and active vs out-of-range positions, or [Concentrated Positions](https://www.topazdex.com/docs/liquidity/concentrated) for the step-by-step LP flow. ## When to pick which | Pair | Best fit | Why | | ---------------------- | ----------------------------------- | -------------------------------------------------------------------------------------------------- | | USDT / USDC | Slipstream (tick 1) or Stable v2 | Either works; Slipstream gives higher capital efficiency if you can manage the range. | | ETH / stETH | Stable v2 or Slipstream tick 50 | Tight correlation; minor depeg risk argues for slightly wider Slipstream ranges than pure stables. | | TOPAZ / BNB | Volatile v2 or Slipstream tick 200 | Uncorrelated. v2 is passive; Slipstream rewards active range management. | | Long-tail token / WBNB | Volatile v2 or Slipstream tick 2000 | Wide swings — wide tick spacing keeps positions active through volatility. | ## Continue reading [Concentrated Liquidity →Ticks, ranges, and capital efficiency in Slipstream pools.](https://www.topazdex.com/docs/concepts/concentrated-liquidity)[Impermanent Loss →The cost of LPing when prices diverge — and how to think about it.](https://www.topazdex.com/docs/concepts/impermanent-loss)[Pool Fees →Default fees, custom overrides, dynamic fees, and where the fees actually flow.](https://www.topazdex.com/docs/liquidity/fees)[Providing Liquidity →Concrete walkthrough of adding liquidity to v2 pools and minting Slipstream positions.](https://www.topazdex.com/docs/liquidity) --- Source: https://www.topazdex.com/docs/concepts/concentrated-liquidity Concepts # Concentrated Liquidity Slipstream pools let you concentrate your capital in the price range where trading actually happens. The mechanic is powerful but the trade-offs are real — this page is the primer before you mint a position. ## Pools on each network These pool mechanics apply on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Pools, gauges, assets and fee settings belong to the selected network. BNB examples below describe the hub; read the selected pool for its current local configuration. [Network availability](https://www.topazdex.com/docs/multichain). Gauge-staked LPs earn TOPAZ on BNB and xTOPAZ on live spokes. Unstaked liquidity earns trading fees; each unit earns fees or emissions. V2 LP tokens can be partially staked, so a position can have separate staked and unstaked balances and prior rewards to claim. Concentrated NFTs stake as whole positions. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions). ## The core idea In a v2 pool, your liquidity sits across the entire price curve from zero to infinity. Most of it is at prices that will never trade — for a stablecoin pair, the vast majority of capital provides liquidity at $0.10, $5, $100, prices that aren't relevant to the market. That capital earns nothing. Concentrated liquidity flips that. You specify a price range — a lower and an upper bound — and your capital is deployed only inside that range. The deeper concentration means each dollar earns proportionally more fees while it's in range. The catch: if price exits your range, your position stops earning and converts entirely into one of the two tokens. ℹThe trade-off in one sentence A narrow range earns more fees per dollar while in range, and spends more time out of range. A wide range earns less per dollar but stays active longer. There is no objectively best range — it depends on the pair's volatility and how actively you can manage. ## Ticks — the discrete price grid Prices in a Slipstream pool live on a discrete grid called ticks. Each tick represents a 0.01% price step. Tick 0 means token1 / token0 = 1\. Tick 100 means a 1.01% higher price, tick −100 means about a 1% (0.995%) lower price. The exact relationship is `price = 1.0001 ^ tick`. When you mint a position, you pick a tickLower and tickUpper. Both must be multiples of the pool's tickSpacing. The tighter the spacing, the more precisely you can place your range — and the more gas is spent crossing ticks during heavy trading. ## Tick spacing tiers on Slipstream Topaz Slipstream supports five tick spacings, each with a recommended default swap fee. Pools are identified by the pair _plus_ the tick spacing — so the same two tokens can have multiple Slipstream pools side-by-side, each with different tightness and fees. | Tick spacing | Default fee | Best for | | ----------------- | ----------------- | ------------------------------------------------------------------------------------------------- | | Tick spacing 1 | 0.01% default fee | Highly correlated pairs — stablecoin pairs like USDC/USDT and wrapped versions of the same asset. | | Tick spacing 50 | 0.05% default fee | Tight-correlated pairs (ETH/stETH, BTC/WBTC) and low-volatility blue chips. | | Tick spacing 100 | 0.10% default fee | Moderately correlated pairs. | | Tick spacing 200 | 0.30% default fee | Volatile blue chips (BNB / ETH, BNB / USDT, TOPAZ / BNB). | | Tick spacing 2000 | 1.00% default fee | Long-tail and emerging-token pairs. | These are the defaults. Every pool's base fee can be customized by the protocol fee manager within a 0%–3% range, and the DynamicSwapFeeModule can add a volatility-based surcharge on top of that base fee. [See Pool Fees for the full fee story.](https://www.topazdex.com/docs/liquidity/fees) ## Active vs out-of-range positions At any moment, a Slipstream pool has a current tick reflecting the latest swap's price. Your position is active when the current tick is between your tickLower and tickUpper. While active, you earn a share of swap fees proportional to your liquidity at that tick range. When the price moves outside your range, your position goes out of range: * If the canonical token1/token0 price moves above tickUpper, the position holds token1\. It earns no fees or emissions while out of range. * If the canonical token1/token0 price moves below tickLower, the position holds token0\. Address order defines token0 and token1; neither means “higher-priced token.” * ✓Positions can re-enter range any time. Fees resume immediately when the current tick crosses back inside. ⚠Out-of-range is one-sided exposure Out-of-range liquidity has one-sided exposure. Which token remains depends on the canonical token order and which bound was crossed, not on the display orientation. Review that exposure before minting or rebalancing. [Impermanent Loss](https://www.topazdex.com/docs/concepts/impermanent-loss). ## Capital efficiency, intuitively A USDC/USDT v2 pool spreads liquidity from $0 to ∞. Trades essentially only happen between $0.99 and $1.01 — historically something like 0.5% of the curve. Concentrating your liquidity into that 1% slice means a single dollar earns \~200× the fees of the same dollar in v2, while it's in range. That's the capital efficiency multiplier concentrated liquidity advertises. The number is real, but it's an upper bound. It assumes you stay in range continuously and don't pay for active management. In practice the achievable multiplier is lower — you pay gas to mint and adjust, you sometimes go out of range, and tighter ranges expose you to more impermanent loss. The art is picking ranges that maximize fees minus IL after management overhead. ## Position NFTs When you mint a Slipstream position, the NonfungiblePositionManager contract issues you an ERC-721\. The NFT encodes the pool, the tick range, the liquidity amount, and the unclaimed fees. Each position is its own NFT — you can have many concurrent positions in the same pool with different ranges. * ✓Transfer the NFT and you transfer the position. Sell it, gift it, deposit it into a vault. * ✓Increase liquidity, decrease liquidity, and collect fees all reference the NFT's tokenId. * ✓Staking in a gauge: approve the gauge for the NFT and deposit. You still own the position; the gauge holds it on your behalf and you can withdraw any time. * ✓Once liquidity is zero and all fees collected, you can burn the NFT. ## Practical range guidance As a starting point — not financial advice, just heuristics LPs tend to use: * ✓Stablecoin pair (USDT/USDC): ±0.1% to ±0.5% around peg, tick spacing 1. * ✓Pegged pair with depeg risk (e.g. liquid staking derivatives): ±1% to ±3%, tick spacing 1 or 50. * ✓Major volatile pair (ETH/BNB, ETH/USDT): centered on current price ±10–30%, tick spacing 200. * ✓Long-tail token: very wide ranges (±50%+) or full-range positions on tick spacing 2000 — your goal is to stay in range without active management. * ✓Always check current TVL, recent volume, and incentive APR before minting. A 5× concentration on a 0-volume pool is still 0 fees. ✨Set-and-forget option If you want exposure without managing ranges, choose Auto on pools with a Topaz Auto vault, or mint a full-range position on tick spacing 200 or 2000\. You give up most of the capital efficiency upside but match v2 behavior — no out-of-range risk, no rebalancing needed. ## Continue reading [Concentrated Positions →Step-by-step: mint, increase, decrease, collect, and burn a Slipstream position.](https://www.topazdex.com/docs/liquidity/concentrated)[Impermanent Loss →How concentrated-liquidity IL is structurally different from v2 IL.](https://www.topazdex.com/docs/concepts/impermanent-loss)[Pool Fees →Default fees per tick spacing, custom overrides, dynamic fees, and unstaked-position fees.](https://www.topazdex.com/docs/liquidity/fees)[Oracles & TWAP →How Slipstream pools expose price history, and why observation cardinality matters.](https://www.topazdex.com/docs/concepts/oracles) --- Source: https://www.topazdex.com/docs/concepts/impermanent-loss Concepts # Impermanent Loss The most misunderstood number in DeFi. This page lays it out cleanly: what IL is, when it's real vs paper, how concentrated liquidity changes the shape of it, and how Topaz's emissions and bribes interact with it. ## The definition Impermanent loss is the dollar gap between two things: * ✓What your LP position is worth at today's prices. * ✓What the same tokens would be worth if you'd just held them in your wallet instead of LPing. The gap exists because an AMM's curve forces you to sell whichever token is going up and buy whichever is going down — you become a buyer of weakness and a seller of strength, mechanically. That's great if prices mean-revert and terrible if they trend. It's called _impermanent_ because if prices return to the ratio they were at when you entered, the gap closes back to zero. It only crystallizes when you withdraw at a different ratio. ## What v2 IL actually looks like For a constant-product pool, the IL formula depends only on the price ratio between exit and entry: IL(r) = 2·√r / (1 + r) − 1 where `r` is the ratio of new price to old price. A few reference points: | Price change | IL vs hold | | ------------ | ---------- | | +25% | −0.6% | | +50% | −2.0% | | 2× | −5.7% | | 3× | −13.4% | | 5× | −25.5% | | 10× | −42.6% | IL is symmetric: a 50% drop and a 100% rise both create roughly the same IL. The further prices diverge from where you entered, the larger the gap. ## Concentrated liquidity changes the shape of IL A Slipstream position only earns fees while in range, but it also only experiences IL relative to its range, not the whole curve. Once price moves outside your range, you're entirely in one token, and from that point on you experience the same P/L as just holding that token. The effective _amplification_ of IL inside a tight range is roughly the same multiplier as your capital efficiency. A 10× concentration on USDT/USDC means 10× the fees while in range — _and_ 10× the IL sensitivity if the peg breaks. This is why narrow ranges are great on stable pairs that genuinely stay stable and dangerous on pairs that don't. ⚠Out-of-range realizes IL When price moves outside your range, your position becomes 100% one token. If you sell or rebalance there, you crystallize the IL. The standard pattern — rebalance the range — is essentially locking in IL each time you rebalance, in exchange for continuing to earn fees on the new range. ## What offsets IL on Topaz IL is a real cost; the question is whether earnings cover it. On Topaz an LP's gross yield has three components: * ✓Swap fees. The core LP yield — your share of trading fees. Higher fee tier and higher volume mean faster IL recovery. * ✓Gauge emissions. If you stake your LP token or position NFT in the pool's gauge, you earn the local gauge token — TOPAZ on BNB, xTOPAZ on spokes — according to the gauge’s funded reward rate and your eligible staked liquidity. Voters direct emissions to productive pools, so high-volume pools often receive high emissions too. * ✓External incentives (bribes). Pools where a project wants liquidity may have bribes attached — but bribes pay _voters_, not LPs. LPs benefit indirectly via the emission flow. A profitable LP position is one where (fees + emissions) over the holding period exceeds IL plus gas. For tight Slipstream ranges, that math is checked epoch by epoch — if a range stops earning, rebalance or wind down. ## Practical takeaways * ✓Stablecoin pairs experience tiny IL — that's why stable pools and tight Slipstream ranges work there. * ✓Correlated pairs (ETH/stETH) have small structural IL plus episodic depeg risk. * ✓Volatile pairs are where IL bites. Treat the LP position as a yield strategy, not a hold strategy. * ✓Wide ranges or full-range positions in Slipstream mimic v2 — same IL profile, lower fee yield, less management. * ✓Emissions and fees are the offset. A pool with no votes and no volume is just IL. ## Compare returns on the selected network The same pool math can produce different results on different chains because liquidity, token versions, trading activity, gas and incentives differ. TOPAZ is the BNB gauge reward; live spokes pay xTOPAZ. An xTOPAZ market price can differ from its locked-TOPAZ backing value. Keep unstaked Fee APR and staked Emissions APR separate. A partially staked V2 position can earn both across different portions, or retain previously earned amounts, but each unit earns only its applicable source. A voter incentive is not direct LP income. [Rates](https://www.topazdex.com/docs/stats/rates) · [Networks](https://www.topazdex.com/docs/multichain). ## Continue reading [Concentrated Liquidity →The mechanics behind tighter-range IL and capital efficiency.](https://www.topazdex.com/docs/concepts/concentrated-liquidity)[Pool Fees →What fee tiers exist and how dynamic fees compensate for volatility.](https://www.topazdex.com/docs/liquidity/fees)[Gauge Voting →How emissions flow to gauges and from there to LPs who stake.](https://www.topazdex.com/docs/gauges)[Staking in Gauges →Earn local gauge emissions in place of fees on staked liquidity.](https://www.topazdex.com/docs/liquidity/staking) --- Source: https://www.topazdex.com/docs/concepts/oracles Concepts # Oracles & TWAP Slipstream pools maintain their own price oracle — a rolling history of tick observations that lets the protocol (and integrators) read a manipulation-resistant TWAP. This page covers how that works, what observation cardinality is, and what BNB Chain's block time means for you. ## Oracle configuration is local to the pool A pool oracle measures its own pair on its own chain. Do not apply a BNB pool's price, observation history or dynamic-fee settings to a same-named spoke pool. Every integration must check the chosen pool's actual observations and the deployed module configuration. Window requirements are time-based. Block time, timestamp granularity and observation-write frequency differ by network; the old BNB sizing figures below are illustrative, not requirements to copy to a spoke. Check whether an actual requested window can be read and define a failure policy before depending on it. [Multichain integration](https://www.topazdex.com/docs/developers/multichain). A pool TWAP is also different from the xTOPAZ vault's TOPAZ-per-share accounting rate. Neither alone establishes a market exit price for xTOPAZ. ## Why an in-pool oracle Every Slipstream pool is also a price oracle for the pair it holds. When a swap happens, the pool stores the new tick and a cumulative tick value alongside the timestamp. Integrators can ask the pool for two cumulative-tick observations and divide the difference by the elapsed time to get an exact time-weighted average tick — and from that, a time-weighted average price. The advantage over spot price: TWAP is much harder to manipulate. Pushing spot to a different price costs only the slippage of one swap, but pushing a 10-minute TWAP requires sustaining the manipulated price for most of those 10 minutes — which means continuous arbitrage pressure from every honest actor watching, plus capital tied up the whole time. ## Observations and cardinality Each pool stores a ring buffer of observations. Each observation captures: solidity ``` struct Observation { uint32 blockTimestamp; int56 tickCumulative; uint160 secondsPerLiquidityCumulativeX128; bool initialized; } ``` A new pool starts with cardinality = 1: there's room for exactly one observation. That's enough for the pool to function as a swap venue but not enough to compute a meaningful TWAP. Anyone can grow the buffer by calling `increaseObservationCardinalityNext(N)` on the pool — the call is permissionless. Growing cardinality allocates more slots; observations are written as swaps occur, so a freshly-grown pool also needs swap activity before its history is useful. ℹReading the oracle To read TWAP, call `pool.observe([secondsAgoEnd, secondsAgoStart])`. The pool returns the cumulative-tick values at both times. Take their difference, divide by elapsed seconds, and you have the time-weighted average tick. Convert to price with `price = 1.0001 ^ tick`. ## BNB Chain considerations BNB’s fast block cadence makes it important to size and verify observation history for the intended time window. The oracle uses timestamps, not block numbers. Actual writes and retained timestamps determine which windows are available; a slot count alone does not establish usable history. | TWAP window | Observations needed | Why | | ----------- | ------------- | ---------------------------------------------------------------------------------------- | | 5 min TWAP | ≥ 1,500 slots | Roughly the minimum to back a 5-min window on BSC with safety margin. | | 10 min TWAP | ≥ 3,000 slots | Recommended for most integrators. Topaz's dynamic fee module defaults to this window. | | 30 min TWAP | ≥ 9,000 slots | Required for slow-moving oracles like liquidation backstops or long-window dynamic fees. | These historical sizing examples are not a live configuration requirement. Increasing capacity creates room for future observations, not past history. Sparse swaps reduce observation-write frequency; they do not by themselves consume more slots. Verify the oldest usable observation and the actual observe call. ## How Topaz uses TWAP internally The DynamicSwapFeeModule uses the oracle to compute a volatility-based fee surcharge. When the current pool tick diverges from the TWAP tick — which happens when prices are moving rapidly relative to the recent average — the module charges a higher fee on swaps. Formula shape: ``` totalFee = min(baseFee + dynamicFee, feeCap) dynamicFee = |currentTick − twapTick| × scalingFactor / 1e6 twapTick = TWAP over secondsAgo (default 600s / 10 min) ``` When the pool has insufficient observation data or the oracle call fails, the module gracefully falls back to base fee — no revert. This means a fresh pool with low cardinality automatically uses static fees until it has enough history to drive the dynamic component. For pools where dynamic fees aren't configured (which is the protocol-wide default), the dynamic component is zero and the pool charges its base fee, subject to the module's default fee cap — same behavior as a standard Uniswap V3-style pool. [See Pool Fees](https://www.topazdex.com/docs/liquidity/fees) for the full fee resolution order. ## Integrator notes If you're building on top of Topaz pools as price oracles: * ✓Always check observation cardinality before relying on a TWAP. Call the pool's slot0() to read it. * ✓Use a TWAP window appropriate to your application — short windows are responsive but more manipulable, long windows are robust but slow. * ✓Prefer using cumulative tick values rather than spot ticks; that's what the oracle is designed for. * ✓If you need a TWAP on a pool that doesn't yet have enough cardinality, grow it yourself with increaseObservationCardinalityNext(). * ✓BNB Chain reorgs are typically shallow but not impossible — consider waiting for several confirmations before using oracle data for high-value actions. ## Continue reading [Concentrated Liquidity →How ticks define both ranges and the oracle's representation of price.](https://www.topazdex.com/docs/concepts/concentrated-liquidity)[Pool Fees →Where the DynamicSwapFeeModule fits into the per-swap fee calculation.](https://www.topazdex.com/docs/liquidity/fees)[Integration Guide →Build on top of Topaz pools, gauges, and oracles.](https://www.topazdex.com/docs/developers/integration)[Contracts →The DynamicSwapFeeModule address and other Slipstream periphery contracts.](https://www.topazdex.com/docs/contracts) --- Source: https://www.topazdex.com/docs/trading/swaps Trading # Swaps & Routing Most swaps on Topaz are a one-click experience — pick tokens, type the amount, accept the rate, sign. This page is for everyone who wants to understand what's happening underneath: routing across pool types, slippage, price impact, and MEV protection. ## Networks and cross-chain swaps The swap selector offers BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Topaz routing is registered on all five networks, Relay aggregation on all five, and 0x aggregation on BNB Chain, Robinhood Chain, Base and Ethereum; available quotes depend on the pair and provider. Cross-chain swaps compare the 0x Cross-Chain service (through Topaz’s proxies) with Relay and take the better delivery. On Arc, quotes come from Topaz pools and Relay, swaps settle in USDC's six-decimal ERC-20 with no native leg, and cross-chain swaps to or from Arc go through Relay. The app follows a cross-chain order using its stored quote ID. A successful source transaction is not a completed destination fill; monitor the order for delivery or refund status. This path is distinct from the [xTOPAZ LayerZero bridge](https://www.topazdex.com/docs/xtopaz/bridge) and [Private Swaps](https://www.topazdex.com/docs/privacy). Topaz pool discovery, liquidity and governance are live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Quote availability still depends on the selected pair and routing service. [Network availability](https://www.topazdex.com/docs/multichain). ## The basic flow 1. Open [Swap](https://www.topazdex.com/swap) and connect your wallet. The default pair is native BNB to TOPAZ. 2. Select the input and output tokens and their networks. Review balances on the input network and keep its gas token (USDC on Arc) for gas. 3. Enter the input amount, or an output amount on routes supporting exact output. 4. Review the winning source, amount, price impact, fees, slippage and minimum received or maximum spent. 5. Review any required approval or permit, then submit and track confirmation. Cross-chain delivery is separate from the source transaction. Topaz routing, 0x aggregation and Relay compete on every chain pair each serves. Topaz considers V2 stable/volatile, Concentrated, split and mixed routes; a winning Topaz quote executes through the Topaz Universal Router and Permit2\. A winning 0x quote uses the response-scoped AllowanceHolder route. The quoter provides price information; it is not the execution contract. ## Exact-input swaps Exact input means “spend this amount.” The quote reports output and a slippage-adjusted minimum. Same-chain Topaz routing also supports exact output: “receive this amount,” bounded by a maximum input. A refreshed maximum above the amount you reviewed requires another review. 0x aggregation and cross-chain routing in this interface are exact-input paths. A route that does not support exact output must not silently change your requested trade type. ## Slippage protection Between the moment you sign and the moment your transaction is included, the price can move. Slippage tolerance is your guardrail: the swap reverts if the output drops below `(1 − slippage) × quote` (for exact-in) or input exceeds `(1 + slippage) × quote` (for exact-out). * ✓Default 0.5% works for most stablecoin and major-pair swaps. * ✓Set 0.1% on tight stable swaps if you want a hard cap on cost. * ✓Long-tail tokens or shallow pools may legitimately need 1–3%. If you find yourself raising slippage above 5%, reconsider the trade — you're probably the source of most of the price impact. * ✓Watch for transfer-fee tokens (tokens that deduct on transfer). Their minimum-out math is special; the router has fee-on-transfer-aware paths. ⚠High slippage is a sandwich invitation A 5%+ slippage setting tells searchers there's 5% of profit they can extract from a sandwich attack on your trade. Lower slippage = harder to sandwich = better fill on average. Only raise it if the trade legitimately won't execute otherwise. ## Price impact Slippage tolerance is your guardrail. Price impact is the actual cost: how much your trade moves the pool's price away from the current quote. A 0.05% price-impact swap barely nudges the curve; a 5% price-impact swap leaves the pool priced 5% worse for the next trader, and you took the cost of that move. The app shows price impact in red when it exceeds a threshold (typically 1%). If you see that warning, options are: * ✓Break the trade into smaller chunks — but be aware each one has gas cost. * ✓Wait for the pool to fill if you're trading against thin liquidity (or place a different order earlier in the day). * ✓Check if a different route gives better impact — sometimes routing through a stablecoin or a different fee tier is much better than the direct pool. * ✓For very large trades, contact the project — there may be OTC desks or aggregators specialized for size. ## Routing across v2 and Slipstream A pair can have several Topaz pools, each with its own liquidity, tick spacing or stable/volatile type. The routing service can quote split and mixed routes; the Universal Router executes a winning Topaz route. The result competes with 0x and Relay quotes, so the selected route may include other venues. Multi-hop routes use available liquidity and supported intermediates on the selected network. Do not assume a BNB token or pool address represents the same asset or market on another chain. ✨The chosen route is auditable The app surfaces the chosen route on the swap confirmation. You can see which pools are involved, which fee tiers are used, and decide whether to take it. If you don't like the route, try a different output token or smaller amount and recheck. ## MEV and front-running BNB Chain has an active MEV (maximal extractable value) marketplace. Searchers monitor the mempool, looking for trades with high slippage tolerance they can sandwich. Topaz itself can't hide your transaction, but you can defend yourself: * ✓Set slippage as low as the trade allows. * ✓For large trades, use a private RPC (BloXroute, Merkle, or your wallet's MEV-protected mode if available) so the transaction reaches the block builder without hitting the public mempool. * ✓Split a very large trade across blocks — sandwich attacks compose with single trades. * ✓Avoid the deadline being too far in the future. Most routers default to 10–30 min; that's fine. ## Fees you actually pay A Topaz pool charges its configured swap fee on each hop. Staked liquidity's fee share flows to local voters; unstaked liquidity retains fees subject to pool rules. Other venues in a 0x or Relay route follow their own fee rules. Review the quote's complete costs rather than applying a Topaz pool fee to every routed swap. You also pay the submitting network's native gas costs and any separately disclosed routing or cross-chain fees. Approval transactions have their own gas cost. [Pool Fees](https://www.topazdex.com/docs/liquidity/fees). ## Approvals, permits and native wrapping Topaz swaps keep the Permit2 approval model: an unlimited ERC-20 allowance to Permit2 and a maximum router permit for its expiry window. Review this broad authorization. An insufficient nonzero allowance is reset first when required. In contrast, a 0x winner uses an exact-amount allowance to its quoted AllowanceHolder, and a Relay winner an exact-amount allowance to the router or depository its call names. Gauge stake and lock approvals are exact-amount; liquidity creation, liquidity increase and incentive deposits grant a maximum allowance on regular wallets. BNB/WBNB and supported native/wrapped-native pairs use a one-to-one wrap or unwrap call before routing is requested. There is no swap slippage or token approval for that conversion, but gas is still required. TOPAZ-to-xTOPAZ is a vault share conversion and follows a different rate and approval flow. The swap form offers Swap and Privacy; older /limit and /dca links open Swap. Private swaps use the Topaz Privacy service. Each has its own review and execution path. ## Continue reading [Pool Fees →Default fees, dynamic fees, unstaked fees, and where the fees flow.](https://www.topazdex.com/docs/liquidity/fees)[AMM & Pool Types →Stable vs volatile vs concentrated — pick the right pool for the pair.](https://www.topazdex.com/docs/concepts/amm)[Integration Guide →Build a router or aggregator that swaps through Topaz programmatically.](https://www.topazdex.com/docs/developers/integration)[Contracts →Router, SwapRouter, QuoterV2, and MixedRouteQuoterV1 addresses.](https://www.topazdex.com/docs/contracts) --- Source: https://www.topazdex.com/docs/liquidity Liquidity # Providing Liquidity This page covers Topaz's v2-style pools — constant-product (volatile) and stableswap. For concentrated-liquidity Slipstream positions, see Concentrated Positions. The two are independent and can be used in parallel. ## Pools on each network These pool mechanics apply on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Pools, gauges, assets and fee settings belong to the selected network. BNB examples below describe the hub; read the selected pool for its current local configuration. [Network availability](https://www.topazdex.com/docs/multichain). Gauge-staked LPs earn TOPAZ on BNB and xTOPAZ on live spokes. Unstaked liquidity earns trading fees; each unit earns fees or emissions. V2 LP tokens can be partially staked, so a position can have separate staked and unstaked balances and prior rewards to claim. Concentrated NFTs stake as whole positions. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions). ## Before you LP An LP earns fees on unstaked liquidity or emissions on gauge-staked liquidity. Compare those returns separately against impermanent loss and transaction costs before depositing. * Unstaked LP tokens earn their share of pool fees. Staking gives up ongoing fees on the staked portion. * Staked LP tokens earn the gauge reward: TOPAZ on BNB, xTOPAZ on live spokes. Votes determine the allocation. * ✓You experience impermanent loss when the two tokens diverge in price. For correlated pairs (stables, LSDs) this is tiny. For uncorrelated pairs it can be meaningful — fees and emissions are the offset. [Read the IL primer.](https://www.topazdex.com/docs/concepts/impermanent-loss) ## Volatile vs stable pools A v2 pool is either volatile (constant product, x · y = k) or stable (x³y + y³x ≥ k). The choice is permanent — you can't convert. The app surfaces the recommended type for each pair, but the underlying rule is: * ✓Correlated pairs (USDT/USDC, ETH/stETH, BTC/WBTC) → stable pool. Default fee 0.05%. * ✓Uncorrelated pairs (everything else) → volatile pool. Default fee 0.30%. * ✓Picking the wrong type bleeds value to arbitrageurs and hurts everyone in the pool. Fees can be customized per pool by the protocol fee manager up to a 3% cap. [See Pool Fees for the full fee story.](https://www.topazdex.com/docs/liquidity/fees) ## Adding liquidity 1. 1Open [Positions](https://www.topazdex.com/positions) and find the pair (or create it). 2. 2Verify pool type — stable or volatile. The first depositor sets the initial price ratio; subsequent depositors must match the current ratio. 3. 3Enter an amount of either token. The app fills the matching amount based on the current ratio. 4. 4Approve each token to the reviewed router. Regular wallets grant a maximum allowance once; batched smart-wallet plans use an exact grant. 5. 5Submit. You receive an LP token representing your share of the pool. It's an ERC-20 in your wallet. 6. 6Optional: stake the LP token in the pool's gauge to earn TOPAZ emissions on BNB or xTOPAZ emissions on spokes. [See Staking in Gauges.](https://www.topazdex.com/docs/liquidity/staking) ℹThe MINIMUM\_LIQUIDITY caveat On the very first deposit to a pool, a small fixed amount of LP tokens (1,000 wei) is burned to the dead address. This prevents the "empty pool dust attack" — locking the price forever — and costs new pool creators \~nothing. ## Withdrawing liquidity Withdrawing is the same flow in reverse. Burn LP tokens, receive your share of both tokens back at the current pool ratio. 1. 1If your LP token is staked in a gauge, unstake first (claim emissions while you're there). 2. 2Open the pool’s position card in Positions. 3. 3Choose an amount to remove (25%, 50%, 100%, or custom). 4. 4Confirm. You receive both underlying tokens proportional to your share at exit. ⚠Withdrawing crystallizes IL If the pool's price ratio has moved since you deposited, you'll receive a different mix of the two tokens than you put in. That's the moment any paper IL becomes realized P/L. If you expect prices to mean-revert and you're in no rush, sometimes waiting beats withdrawing immediately. ## Zaps The V2 Router has contract-level zap-in and zap-out paths, but this interface's regular V2 flow uses paired-token deposits. Contract support does not establish a signed or available UI flow. For a single-token deposit into an existing Concentrated pool, use the separate [liquidity zap guide](https://www.topazdex.com/docs/liquidity/zaps). It creates a new NFT and offers staking through a separate review. The xTOPAZ vault zap is another contract family: it mints shares in locked TOPAZ, not LP tokens, and is outside the initial multichain interface release. ## Creating a new pool Anyone can create a new v2 pool through `PoolFactory.createPool(tokenA, tokenB, stable)`. Once created, the address is deterministic via CREATE2 — the same two tokens with the same stable flag will always map to the same pool address. * ✓Tokens are sorted by address; the lower one is token0. * ✓Initial deposit sets the price ratio. Anyone can be the first depositor. * ✓Creating the pool alone doesn't add it to the app's discoverability — for that, see the integration guide on whitelisting. * ✓A pool only gets a gauge — and thus emissions — after Voter.createGauge() runs (permissioned). Project teams listing a new pair should also read the [Integration Guide](https://www.topazdex.com/docs/developers/integration) for the full listing flow. ## Continue reading [Concentrated Positions →Mint, increase, decrease, collect, and burn Slipstream positions.](https://www.topazdex.com/docs/liquidity/concentrated)[Pool Fees →How fees are set, what dynamic fees do, and where your earnings come from.](https://www.topazdex.com/docs/liquidity/fees)[Staking in Gauges →Earn local gauge emissions in place of fees on the staked LP portion.](https://www.topazdex.com/docs/liquidity/staking)[Impermanent Loss →The structural cost of LPing — and what offsets it.](https://www.topazdex.com/docs/concepts/impermanent-loss) --- Source: https://www.topazdex.com/docs/liquidity/concentrated Liquidity # Concentrated Positions Slipstream is Topaz's concentrated-liquidity engine — a fork of Aerodrome Slipstream, which adapts the Uniswap V3 design for the ve(3,3) flywheel. This page is the operating manual for LPing in Slipstream pools. ## Pools on each network These pool mechanics apply on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Pools, gauges, assets and fee settings belong to the selected network. BNB examples below describe the hub; read the selected pool for its current local configuration. [Network availability](https://www.topazdex.com/docs/multichain). Gauge-staked LPs earn TOPAZ on BNB and xTOPAZ on live spokes. Unstaked liquidity earns trading fees; each unit earns fees or emissions. V2 LP tokens can be partially staked, so a position can have separate staked and unstaked balances and prior rewards to claim. Concentrated NFTs stake as whole positions. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions). ## Pool identity: pair + tick spacing Within one chain and factory, a Slipstream pool is identified by `(token0, token1, tickSpacing)`. The same pair can have multiple Slipstream pools — one per supported tick spacing. Each pool has its own price, its own liquidity, and its own fee. The router considers all of them when choosing a swap route, but as an LP you pick exactly one when minting. | Tick spacing | Default fee | Best for | | --------- | ----------------- | --------------------------------------------------------------------------- | | 1 | 0.01% default fee | Highly correlated pairs (USDT/USDC, wrapped equivalents). | | 50 | 0.05% default fee | Tight-correlated pairs (ETH/stETH, BTC/WBTC) and low-volatility blue chips. | | 100 | 0.10% default fee | Moderately correlated pairs. | | 200 | 0.30% default fee | Volatile blue chip pairs. | | 2000 | 1.00% default fee | Long-tail and emerging pairs. | The fees above are defaults at pool creation. The protocol fee manager can override any individual pool's base fee within a 0%–3% range, and a few pools may also run a volatility-based dynamic fee on top — both through the DynamicSwapFeeModule that the CLFactory currently routes fee resolution to. [See Pool Fees.](https://www.topazdex.com/docs/liquidity/fees) ## Choosing a price range The most important decision when minting. Range selection determines both your capital efficiency and your impermanent loss profile. * ✓Tighter means more fees per dollar in range, more time spent out of range, and more sensitivity to IL when in range. * ✓Wider means less fees per dollar but more passive — closer to v2-style exposure. * ✓Both ticks must align to the pool's tick spacing. The app rounds your chosen prices to valid ticks automatically. * ✓Tick range: −887,272 ≤ tick ≤ 887,272 (the pool's theoretical price domain). Picking the extreme ticks gives a full-range position. For a deeper treatment of range strategy and the math behind capital efficiency, read [Concentrated Liquidity](https://www.topazdex.com/docs/concepts/concentrated-liquidity) and [Impermanent Loss](https://www.topazdex.com/docs/concepts/impermanent-loss). ## Minting a position 1. 1Open [Positions](https://www.topazdex.com/positions) , start a new position, pick the pair and tick-spacing tier, then choose Auto, Custom range or Full range. 2. 2Set the price range. The app will show how much of each token you'll need. 3. 3Approve each token to the position manager. Regular wallets grant a maximum allowance once, so later deposits need no new approval; batched smart-wallet plans use an exact grant. 4. 4Mint. You receive an ERC-721 position NFT from the `NonfungiblePositionManager`. The NFT encodes the pool, range, liquidity, and fee accumulator. 5. 5Optional: stake the NFT in the pool's gauge to earn TOPAZ emissions on BNB or xTOPAZ emissions on spokes (you forfeit swap fees in exchange — staked positions earn emissions only). ℹOne token at limit ticks Using the canonical token1/token0 price, a position below its range holds token0; above its range it holds token1\. Inside the range it holds both. Token0 is determined by address order, not which token has a lower market price. Inverting the display swaps the labels, not the underlying position math. ## Managing an existing position Position NFTs support four operations on the `NonfungiblePositionManager` contract: * ✓increaseLiquidity — add more capital to the same NFT and range. Keeps fees accruing without minting a new position. * ✓decreaseLiquidity — pull some or all liquidity from the position. The underlying tokens are transferred to the NFT's tokensOwed fields; you collect them in the next step. * ✓collect — transfer accumulated fees and any decreased liquidity to a recipient (usually yourself). Pass `type(uint128).max` to drain both tokens. * ✓burn — burn the NFT once liquidity is zero and fees are collected. Closes the position permanently. ## Rebalancing Self-managed concentrated positions don't auto-adjust; on pools with a Topaz Auto vault you can choose Auto instead and let the vault manage the range. If price moves out of your range, you have three options: * ✓Wait for it to come back. The position stays valid; fees just don't accrue while out of range. * ✓Withdraw and remint at a new range that brackets the current price. This is the standard 'rebalance' — and it crystallizes any IL since the last mint. * ✓Mint additional positions at new ranges, keeping the old position open. Useful if you want exposure across multiple price bands. ⚠Rebalancing isn't free Each rebalance costs gas (mint + decrease + collect + burn or increase) and locks in IL. Frequent rebalancing on a volatile pair can eat fee earnings. If you can't actively manage, wider ranges or full-range positions are often better. ## Working with ETH (BNB) Slipstream pools hold WBNB, not native BNB. The position manager supports a multicall pattern to wrap-and-mint atomically: solidity ``` bytes[] memory data = new bytes[](2); data[0] = abi.encodeWithSelector( INonfungiblePositionManager.mint.selector, mintParams ); data[1] = abi.encodeWithSelector( INonfungiblePositionManager.refundETH.selector ); positionManager.multicall{value: bnbAmount}(data); ``` The app handles this for you when you choose the native side with the BNB/WBNB toggle under the amount. The same pattern works for `increaseLiquidity` and for `unwrapWETH9` on collect to receive native BNB instead of WBNB. ## Staked vs unstaked positions Slipstream lets you keep your position NFT in your wallet (unstaked) or deposit it into the pool's gauge (staked). The trade-off is structural: | Mode | Earns | Pays | | -------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | Unstaked | Swap fees from in-range trades | Pool's unstaked-position fee (default 10%, max 50%) routed through the gauge to voters — see Pool Fees. | | Staked | Local emissions based on gauge funding and eligible staked liquidity: TOPAZ on BNB, xTOPAZ on spokes | Forfeits the swap fees on this position; those flow to voters via the FeesVotingReward contract. | Which is better depends on the gauge's emission rate vs. the fee yield. Active pools with low vote share may favor unstaked; pools with strong vote allocation often favor staked. [See Staking in Gauges for the mechanics.](https://www.topazdex.com/docs/liquidity/staking) ## Common pitfalls * ✓Ticks not divisible by tickSpacing → mint reverts. The app prevents this, but custom integrations need to round explicitly. * ✓Token order matters: token0 must be the lower-address token. The app sorts for you; calling the contract directly does not. * ✓Setting slippage too tight on the mint can cause MintTooLittle errors during volatile periods. Default 0.5–1.0% is usually fine. * ✓Forgetting to collect fees before withdrawing — fees aren't auto-claimed on decreaseLiquidity, they sit in tokensOwed until you collect. * ✓Staking a position into a gauge while it still has uncollected fees is fine, but you should collect first if you want to keep those fees — staked positions don't accumulate swap fees, only emissions. ## Start from one token The [Concentrated liquidity zap](https://www.topazdex.com/docs/liquidity/zaps) can split a funding token and mint a new NFT in an existing pool on BNB Chain, Robinhood Chain, Base, Ethereum or Arc. Review its range, route, minimum liquidity and leftovers. It does not increase an existing NFT or stake it automatically. On each network, use its own position manager and wrapped-native token; Arc has no wrapped native, so its pools use the six-decimal USDC ERC-20 and no native value. The BNB multicall example above must not be reused with BNB addresses on another network. ## Continue reading [Pool Fees →Default fees, custom fees, dynamic fees, and unstaked-position fees.](https://www.topazdex.com/docs/liquidity/fees)[Staking in Gauges →Deposit your position NFT to earn TOPAZ emissions on BNB or xTOPAZ emissions on spokes.](https://www.topazdex.com/docs/liquidity/staking)[Concentrated Liquidity →The concepts behind ticks, ranges, and capital efficiency.](https://www.topazdex.com/docs/concepts/concentrated-liquidity)[Impermanent Loss →Why range selection determines your IL profile.](https://www.topazdex.com/docs/concepts/impermanent-loss) --- Source: https://www.topazdex.com/docs/liquidity/fees Liquidity # Pool Fees Every swap on Topaz pays a fee. This page is the complete map: how the fee is set, who collects it, and how the three fee modules (default, custom, dynamic) layer together. ## Pools on each network These pool mechanics apply on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Pools, gauges, assets and fee settings belong to the selected network. BNB examples below describe the hub; read the selected pool for its current local configuration. [Network availability](https://www.topazdex.com/docs/multichain). Gauge-staked LPs earn TOPAZ on BNB and xTOPAZ on live spokes. Unstaked liquidity earns trading fees; each unit earns fees or emissions. V2 LP tokens can be partially staked, so a position can have separate staked and unstaked balances and prior rewards to claim. Concentrated NFTs stake as whole positions. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions). ## Where fees go Fees attributable to gauge-staked liquidity flow to that pool’s local voters. Unstaked V2 and Concentrated liquidity retains its fee share, subject to Concentrated unstaked-fee rules. The protocol does not take a treasury skim from the voter-directed share. The same unit of liquidity does not earn full trading fees and gauge emissions simultaneously. LPs don't collect swap fees on staked v2 LP tokens — those fees are forwarded to the FeesVotingReward contract for voters. LPs earn the local emission token instead: TOPAZ on BNB, xTOPAZ on spokes. For Slipstream, the same swap-fees-go-to-voters rule applies to _staked_ positions; an unstaked Slipstream position continues to collect its share of swap fees in-NFT. ℹThe trade-off Staked V2 and Concentrated liquidity trades fee yield for gauge emissions. Unstaked liquidity keeps fees and earns no emissions; Concentrated liquidity may pay the unstaked-fee surcharge. BNB emissions are TOPAZ, while spokes use xTOPAZ. ## v2 pool fees v2 pools have a single fee value set per-pool, taken from the input token on each swap. Defaults: | Parameter | Value | Description | | --------------------- | --------------- | ------------------------------------------------------------ | | Stable pool default | 0.05% (5 bps) | Set by PoolFactory.stableFee. | | Volatile pool default | 0.30% (30 bps) | Set by PoolFactory.volatileFee. | | Maximum allowed | 3.00% (300 bps) | PoolFactory.MAX\_FEE — the hard cap for any custom override. | The fee manager (a privileged role on PoolFactory) can change the global default for stable/volatile pools or set a custom fee per pool. There is also a ZERO\_FEE\_INDICATOR sentinel that lets a specific pool be set to 0% fee — distinguishing it from unset/default behavior. ## Slipstream default fees Slipstream pools use tick spacing as their pool-identity discriminator. Each tick spacing has a recommended default fee at the factory: | Tick spacing | Default fee | Best for | | ----------------- | ------------------- | -------------------------------------------------------------------- | | Tick spacing 1 | 0.01% (100 pips) | Highly correlated pairs (USDT/USDC). | | Tick spacing 50 | 0.05% (500 pips) | Tight-correlated pairs (ETH/stETH, BTC/WBTC) and low-vol blue chips. | | Tick spacing 100 | 0.10% (1,000 pips) | Moderately correlated pairs. | | Tick spacing 200 | 0.30% (3,000 pips) | Volatile blue chips (TOPAZ/BNB, ETH/USDT). | | Tick spacing 2000 | 1.00% (10,000 pips) | Long-tail pairs. | These are the defaults at pool creation. The protocol fee manager can override the base fee on any pool within a 0%–3% range, and a volatility-based dynamic component can layer on top — both through the swap fee module the CLFactory routes fee resolution to. Note the precision: Slipstream fees are denominated in _pips_ (1 / 1,000,000), so 500 pips = 5 bps = 0.05%. v2 pool fees are denominated in basis points out of 10,000 — a different scale. The frontend always displays percent. ## Base fee overrides (Slipstream) The CLFactory delegates fee resolution to a single swap fee module. Today that module is the DynamicSwapFeeModule, which handles both the per-pool base-fee override described here and the volatility component described below. A standalone CustomSwapFeeModule with override-only behavior is also deployed and can be swapped in by the fee manager. * ✓Per-pool overrides — any pool's base fee can be set anywhere between 0% and 3%. * ✓Special sentinel: setting fee = 420 (pips) means a true zero-fee pool, distinguishing it from 'unset' (which falls back to the tick-spacing default). * ✓Hard cap: 3% (30,000 pips — MAX\_BASE\_FEE). The fee manager cannot exceed this. * ✓This is the base fee only. It is what the pool charges before the dynamic component is added and before the feeCap below is applied. ## Dynamic fee module (Slipstream) Some Slipstream pools opt into a volatility-based dynamic fee. The module reads the pool's TWAP and adds a surcharge when the current tick has moved far from the time-weighted average: ``` totalFee = min(baseFee + dynamicFee, feeCap) dynamicFee = |currentTick − twapTick| × scalingFactor / 1e6 twapTick = TWAP over secondsAgo (default 600s) ``` * ✓Stable conditions (tick ≈ TWAP): you pay only the base fee. * ✓Volatile conditions: fee rises with the divergence, compensating LPs for elevated IL risk. The formula uses the absolute tick difference, so an existing divergence raises the fee on buys and sells alike. * ✓Capped: the module never charges more than the applicable feeCap — the pool's own configured cap if it has one, otherwise the module-wide default, currently 1%. Neither can be set above the module's immutable 5% maximum (MAX\_FEE\_CAP = 50,000 pips). * ✓Graceful fallback: if the pool lacks oracle data (low cardinality or fresh pool), the module returns 0 dynamic fee, so users still pay only the base fee. Dynamic fees are disabled by default (defaultScalingFactor = 0). The fee manager opts a pool in by setting a feeCap and scalingFactor. A pool with no per-pool config falls back to _both_ module defaults, so it pays no dynamic component — but the module-wide defaultFeeCap still applies, which is why an unconfigured pool's total fee is currently capped at 1%. For more on how TWAP works and BNB Chain cardinality requirements, see [Oracles & TWAP](https://www.topazdex.com/docs/concepts/oracles). ℹWhen the fee is fixed A Slipstream pool reads its fee once at the start of a swap and stores it before the swap loop begins moving price. Your trade is priced off the spot / TWAP state that exists when it begins; its own price impact does not retroactively change the fee it pays. ## Unstaked position fee (Slipstream) To encourage LPs to stake their Slipstream NFTs in gauges (which makes their liquidity vote-weighted), the protocol applies an additional fee to _unstaked_ positions when an alive gauge exists for the pool. The fee is taken at the swap level — unstaked LPs effectively pay a higher share of their fee to the gauge (which then flows to voters). | Parameter | Value | Description | | -------------------- | ------------------------- | --------------------------------------------------------------------------------- | | Default unstaked fee | 10% (100,000 / 1,000,000) | Of the swap fee paid to unstaked LPs. | | Maximum unstaked fee | 50% | The fee manager can set a higher value up to 50% via the CustomUnstakedFeeModule. | | Applies when | Gauge exists & is alive | No gauge or killed gauge → no unstaked fee. | ## Fee resolution order When a Slipstream swap fires, the pool computes its fee in this order: ``` 1. Read baseFee from dynamicFeeConfig[pool] - 420 → zero fee - 0 → fall back to factory.tickSpacingToFee(tickSpacing) - other → use it 2. Read dynamic fee config: - Pool has scalingFactor > 0 → use per-pool config - Otherwise → use defaultScalingFactor + defaultFeeCap 3. totalFee = min(baseFee + dynamicFee, feeCap) 4. If tx.origin is in the discounts map, apply discount 5. Charge totalFee on the swap input ``` ## Aggregator and partner discounts The dynamic fee module supports per-address discounts, set by the fee manager. Useful for whitelisting aggregators or partner contracts that route significant volume through Topaz. Discount is applied at swap time based on `tx.origin`, so it benefits the end user even when an aggregator is the msg.sender. * ✓Discount precision: 1,000,000 (so 200,000 = 20% off). * ✓Maximum discount: 50% (MAX\_DISCOUNT = 500,000). * ✓Discounts apply to the totalFee after caps. They cannot make a swap unprofitable for LPs by going negative. ## Continue reading [Oracles & TWAP →How the dynamic-fee module reads price history from the pool.](https://www.topazdex.com/docs/concepts/oracles)[Staking in Gauges →Skip the unstaked-position fee by staking your position NFT.](https://www.topazdex.com/docs/liquidity/staking)[Gauge Voting →How pool fees flow to voters via the FeesVotingReward contract.](https://www.topazdex.com/docs/gauges)[Contracts →DynamicSwapFeeModule, CustomSwapFeeModule, and CustomUnstakedFeeModule addresses.](https://www.topazdex.com/docs/contracts) --- Source: https://www.topazdex.com/docs/liquidity/staking Liquidity # Staking in Gauges An LP gauge distributes emissions to liquidity providers in one pool: TOPAZ on BNB, and xTOPAZ on live spokes once funded. This guide covers LP token and Concentrated NFT staking. Staking xTOPAZ to vote is a separate [spoke voting position](https://www.topazdex.com/docs/xtopaz/staking). ## Pools on each network These pool mechanics apply on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Pools, gauges, assets and fee settings belong to the selected network. BNB examples below describe the hub; read the selected pool for its current local configuration. [Network availability](https://www.topazdex.com/docs/multichain). Gauge-staked LPs earn TOPAZ on BNB and xTOPAZ on live spokes. Unstaked liquidity earns trading fees; each unit earns fees or emissions. V2 LP tokens can be partially staked, so a position can have separate staked and unstaked balances and prior rewards to claim. Concentrated NFTs stake as whole positions. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions). ## The gauge in 30 seconds BNB veTOPAZ votes allocate TOPAZ to BNB gauges. On Robinhood Chain, Base, Ethereum and Arc, local xTOPAZ stake votes allocate the network’s xTOPAZ budget. Funded gauges stream their local emission token over the reward period to eligible staked liquidity. The swap fees that a staked LP would have earned are relinquished to the gauge's FeesVotingReward contract, which pays them out to voters. So staking trades fees for emissions; unstaked positions retain fees but earn no emissions and pay an extra unstaked-fee surcharge (Slipstream only). ## Staking a v2 LP token 1. 1Add liquidity to the v2 pool and receive the LP token in your wallet. 2. 2Open the pool's position card at [Positions](https://www.topazdex.com/positions) and click stake. 3. 3Approve the exact LP-token amount to the gauge. Later deposits can require another approval. 4. 4Stake the LP token. You earn the local emission token at the funded gauge’s current reward rate: TOPAZ on BNB, xTOPAZ on spokes. ℹContinuous accrual Gauges accrue rewards continuously, not at epoch boundaries. The per-token reward rate is set once per epoch when the Voter distributes that epoch's emissions to the gauge, then streams linearly across the epoch's 604,800 seconds. You can claim any time without affecting future accrual. ## Staking a Slipstream position NFT 1. 1Mint the position NFT in the Slipstream pool. 2. 2Collect any pending swap fees first if you want to keep them — staked positions don't accumulate swap fees. 3. 3Approve the gauge for your specific NFT (positionManager.approve(gauge, tokenId)). 4. 4Deposit the NFT into the gauge. The gauge holds custody; you retain economic ownership and can withdraw at any time. 5. 5You earn local emissions (TOPAZ on BNB; xTOPAZ on spokes) proportional to your in-range liquidity, not your total deposited liquidity. Out-of-range positions earn nothing. ⚠In-range matters A staked Concentrated position earns emissions only while its range covers the current tick. Out-of-range liquidity earns no current trading fees either. Reassess the range and costs before changing custody. ## Claiming rewards Two ways to claim gauge emissions (TOPAZ on BNB; xTOPAZ on spokes): * ✓Per-gauge: `getReward(account)` on a single gauge claims your accumulated emissions for that pool. * ✓Bulk: `Voter.claimRewards([gauge1, gauge2, ...])` claims the local emission token from many gauges in one transaction. In the app, Portfolio’s Claim all collects every network’s rewards, one network at a time. BNB gauges pay liquid TOPAZ; spoke gauges pay xTOPAZ from their received local budget. Voter fee and incentive claims are separate. xTOPAZ can remain liquid, enter a local voting stake or bridge when available; it does not become liquid TOPAZ automatically. ## Unstaking and withdrawing LP gauges have no xTOPAZ voting-position withdrawal lock. Their normal withdrawal paths remain available subject to contract state. A spoke xTOPAZ voting stake has its own date and epoch restrictions; do not apply this LP rule to it. * ✓v2 LP tokens: call `withdraw(amount)` on the gauge. Reward emissions stop accruing for the unstaked portion. Claim your pending emission tokens in the same call or separately via `getReward`. * ✓Slipstream NFTs: call `withdraw(tokenId)` on the gauge. The NFT returns to your wallet; pending rewards are sent automatically. Swap fees accumulated while the NFT was unstaked (i.e. zero) — but the position continues to live; you can re-stake, collect fees if any accrued before staking, or close it. ## Killed gauges If a gauge is killed by the Emergency Council (e.g. due to a discovered exploit, bad pool, or governance decision): * ✓New deposits revert. You cannot stake into a killed gauge. * ✓Existing stakers can still withdraw. Your LP token or NFT is not stuck. * ✓Gauge emissions stop. Already-accumulated rewards are still claimable. * ✓Killed gauges can be revived by the Emergency Council if the underlying issue is resolved. See [Security & Audits](https://www.topazdex.com/docs/security) for the admin-control surface. ## Continue reading [Gauge Voting →How votes determine which gauges receive emissions.](https://www.topazdex.com/docs/gauges)[Pool Fees →The fee flow that pays voters and the unstaked-position surcharge.](https://www.topazdex.com/docs/liquidity/fees)[veTOPAZ Locks →Lock your earned TOPAZ for veTOPAZ to vote, earn fees, and capture bribes.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Concentrated Positions →Range mechanics that determine how much your staked position earns.](https://www.topazdex.com/docs/liquidity/concentrated) --- Source: https://www.topazdex.com/docs/tokenomics Tokenomics # TOPAZ & Emissions TOPAZ is the protocol's ERC-20 token. This page covers initial allocation, the emission curve, where new TOPAZ is minted, and the rebase mechanism that auto-compounds into veTOPAZ locks. ## One TOPAZ emission schedule across networks TOPAZ issuance stays on BNB under the existing Minter. The expansion adds xTOPAZ shares backed by an aggregate permanent veTOPAZ lock, not a new independent TOPAZ inflation schedule on every chain. A BNB system gauge receives a vote-weighted allocation of TOPAZ. The coordinator locks it and mints xTOPAZ budgets for enabled spokes in proportion to their tracked share supply. Local spoke votes allocate those received budgets to local LP gauges. The unassigned portion and settled rebases can grow TOPAZ per share for all xTOPAZ holders. xTOPAZ is live across BNB Chain, Robinhood Chain, Base, Ethereum and Arc. It complements liquid TOPAZ and individually managed veTOPAZ locks. [Compare the assets](https://www.topazdex.com/docs/xtopaz) and [follow the budget calculation](https://www.topazdex.com/docs/multichain/emissions). ## TOPAZ at a glance TOPAZ is the protocol token, deployed on BNB Chain. It serves three purposes: * ✓Governance — locked as veTOPAZ to vote on gauge emissions and protocol parameters. * ✓Yield — locked veTOPAZ earns trading fees, bribes, and weekly rebases. * ✓Incentive flow — emissions flow to LPs in pools that voters choose, providing the protocol's structural LP yield. The TOPAZ contract address is on the [Contracts page](https://www.topazdex.com/docs/contracts). Once deployed, the only way new TOPAZ enters circulation is via the Minter contract's weekly emission — no admin mint, no hidden allocations. ## Initial allocation 50M #### Liquid TOPAZ Freely transferable tokens distributed at launch to seed initial liquidity and bootstrap the ecosystem. 250M #### Protocol Foundation & Team veTOPAZ Locked as veTOPAZ with a 4-year lock. Used for protocol governance, strategic voting, and long-term alignment. 200M #### Airdrop & Sacrifice veTOPAZ Distributed as locked veTOPAZ to sacrifice participants and airdrop recipients. Ensures early supporters have governance power from day one. ℹInitial supply is the only mint outside emissions The 500M initial supply was minted at launch — 50M as liquid TOPAZ for initial liquidity, the rest as locked veTOPAZ for the airdrop, sacrifice, and foundation / team. Every TOPAZ added to circulation after that enters via the Minter's weekly emission. No hidden allocations, no later top-ups. ## The emission curve The Minter contract issues TOPAZ once per epoch (one week). The curve runs in three phases, each governed by an on-chain constant: 1 #### Phase 1: Growth (Weeks 1–14) Starting at 10M TOPAZ per week, emissions grow 3% each week to bootstrap liquidity and attract early LPs. Peak emission of \~15.13M TOPAZ at epoch 15. 2 #### Phase 2: Decay (Weeks 15+) Emissions decay 1% per week from the peak, gradually reducing inflation as the protocol matures and fee revenue grows. Runs until weekly emissions cross below the TAIL\_START threshold. 3 #### Phase 3: Tail Emissions Once weekly emissions fall below 8,969,150 TOPAZ, the protocol transitions to a percentage-of-supply model (initially 0.67% per epoch). EpochGovernor can nudge this rate ±0.01 percentage points per epoch, bounded at 0.01% – 1% per epoch. | Parameter | Value | Description | | ------------------------ | -------------------- | --------------------------------------------------------------------------------------------- | | Starting weekly emission | 10,000,000 TOPAZ | Minter.weekly initialized at deployment. | | WEEKLY\_GROWTH | +3% per epoch | Applied for epochs 1–14 (growth phase). | | WEEKLY\_DECAY | −1% per epoch | Applied from epoch 15 onward. | | Peak emission | \~15,125,897 TOPAZ | Epoch 15 — the high point of the curve. | | TAIL\_START | 8,969,150 TOPAZ | Threshold at which decay stops and tail emissions activate. | | Initial tail rate | 0.67% per epoch | Of total supply. Per-epoch, not annualized. | | Tail rate bounds | 0.01% – 1% per epoch | Enforced at the Minter contract. | | EpochGovernor NUDGE | ±0.01 pp / epoch | Maximum tail-rate change per epoch via plurality vote. | | Team rate | 5% of emissions | Hard-capped at 5% in the Minter and configurable down to 0%. Routed to the protocol multisig. | ⚠Tail rate is per-epoch, not annual The 0.67% initial tail rate is the share of total supply minted each epoch, not each year. Compounded weekly that's a higher annualized issuance — by design. EpochGovernor lets voters nudge it down to 0.01% per epoch over time as TVL and fee revenue mature. ## Where emissions flow Each epoch’s newly minted TOPAZ has these allocation streams: * ✓Gauge emissions — the main flow. Routed to Voter, which then distributes to individual gauges based on the applicable prior-epoch vote weights. LPs in those gauges earn this. * ✓Rebases — additional TOPAZ scaled by `locked_ratio³` and sent to RewardsDistributor for veTOPAZ holders to claim. Auto-compounds into active locks, pays out as liquid TOPAZ for expired locks. * ✓Team rate — up to 5% of the combined gauge + rebase amount, routed to the protocol multisig. The rate is hard-capped at 5% in the Minter, so it can be lowered but never raised beyond that. ## The rebase math Rebases offset part of the emission dilution for users who lock. The formula scales with the cube of the locked share: the deeper protocol-wide lock participation is, the larger the slice of each epoch's emission that flows back to veTOPAZ holders. locked\_ratio = veTOPAZ totalSupply / TOPAZ totalSupply rebase = emission × locked\_ratio³ / 2 veTOPAZ totalSupply is voting power measured at the start of the epoch, not raw locked TOPAZ — decaying locks count for less as they approach expiry, permanent locks always count at full weight. * ✓If veTOPAZ is 50% of supply: rebase = emission × 0.125 / 2 = emission × 0.0625\. \~6.25% of the epoch's emission goes out as rebase. * ✓If veTOPAZ is 80% of supply: rebase = emission × 0.512 / 2 = emission × 0.256\. \~25.6% rebases — deep lock participation earns proportionally more. * ✓If veTOPAZ is 20% of supply: rebase = emission × 0.008 / 2 = emission × 0.004\. \~0.4% rebases — shallow participation earns very little. The cube makes the rebase a participation reward rather than a bootstrap subsidy: it is negligible while little is locked and rises steeply as lock participation deepens, capped at half the epoch's emission when every TOPAZ is locked at full weight. For a position at full weight, the rebase offsets `locked_ratio² / 2` of that epoch's dilution — 12.5% of it at 50% participation, 32% at 80%, 50% at the ceiling. The rest of the case for locking is voting power, trading fees, and bribes. ## What veTOPAZ earns annually A holder's annualized TOPAZ-denominated yield from veTOPAZ comes from three streams: trading fees (variable, depends on which pools you vote for), bribes (variable, depends on the market), and rebases (predictable from the formula above). Putting precise numbers on the first two isn't useful — they move with usage. But rebases plus a representative blend of fees and bribes have historically delivered double-digit TOPAZ-denominated APRs on ve(3,3) systems in healthy markets. ## Continue reading [veTOPAZ Locks →Lock mechanics, permanent locks, merge, split, and delegation.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Gauge Voting →Direct your share of weekly emissions and earn fees + bribes.](https://www.topazdex.com/docs/gauges)[Protocol Governance →How EpochGovernor adjusts the tail rate, and what other parameters are governed.](https://www.topazdex.com/docs/governance)[Airdrop & Sacrifice →How the initial veTOPAZ supply was distributed pre-mainnet.](https://www.topazdex.com/docs/airdrop) --- Source: https://www.topazdex.com/docs/tokenomics/vetopaz Tokenomics # veTOPAZ Locks Locking TOPAZ in BNB’s VotingEscrow creates a veTOPAZ NFT for BNB gauge voting, reward claims and eligible protocol-governance participation. Ordinary locks stay on the hub after expansion. Spoke voting instead uses [staked xTOPAZ positions](https://www.topazdex.com/docs/xtopaz/staking). ## Lock basics A lock has two inputs: amount (how much TOPAZ you escrow) and duration (how long you lock it for). The two together determine voting power. | Parameter | Value | Description | | -------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------- | | Minimum lock | 1 week | Rounded down to the next epoch boundary. | | Maximum lock | 4 years | MAXTIME = 4 × 365 × 86400 seconds. Hard ceiling. | | Voting power at lock | amount × (lock duration / 4 years) | Linear scale — half the duration, half the power. | | Decay | Linear toward zero | Voting power decays continuously until the unlock date, then sits at zero until you withdraw or extend. | | Output | veTOPAZ NFT (ERC-721) | Transferable, mergeable, splittable. | ℹSame TOPAZ, different time horizons 1 TOPAZ locked for 4 years = 1 veTOPAZ. 1 TOPAZ locked for 1 year = 0.25 veTOPAZ. 100 TOPAZ locked for 4 years = 100 veTOPAZ. Time is the multiplier; amount is the base. ## What a veTOPAZ lock earns * ✓Trading fees from voted pools. Swap fees from staked liquidity flow to voters of the corresponding gauge in full — the protocol takes no cut. Vote share in epoch n earns fees from swaps that happened in epoch n; the fees become claimable in epoch n+1. * ✓Bribes (incentives) on voted pools. External rewards deposited by projects to attract votes. Same epoch-n / claim-n+1 cadence as fees. * ✓Rebases. Weekly TOPAZ distributed to all veTOPAZ holders pro-rata to voting power. The amount scales with the cube of the locked share (veTOPAZ supply / TOPAZ supply) — the deeper protocol-wide lock participation, the larger the rebase. For active locks, rebases auto-compound; for expired locks, they pay out as liquid TOPAZ. ## The state machine A veTOPAZ NFT lives in one of four states: * ✓Normal. The default. Linear decay; can do everything (vote, transfer, merge, split, extend lock, withdraw at expiry). * ✓Normal Permanent. You've converted to a permanent lock. Voting power stays at the max forever (amount = voting power, no decay). Cannot be merged _into_ a normal lock, and only permanent locks can _delegate_. You can `unlockPermanent()` to revert to a normal decaying lock — only if you haven't voted in the current epoch. * ✓Locked. A normal NFT that's been deposited into a managed NFT. Almost no functionality — the only path out is`withdrawManaged` which restores you to a normal NFT with a fresh max-time lock. * ✓Managed Permanent. A special NFT created by the protocol or whitelisted managers. Aggregates many user deposits. Permanently locked by default; can delegate. [See Managed Locks.](https://www.topazdex.com/docs/voting/managed) ## Operations on a normal lock The VotingEscrow contract exposes a focused set of operations on an active lock: * ✓increaseAmount. Add more TOPAZ to an existing lock without changing the unlock date. Voting power scales proportionally. * ✓increaseUnlockTime. Extend the unlock date (capped at 4 years from now). Voting power increases accordingly. * ✓merge. Combine two normal NFTs into one. The _from_ NFT must be normal (not permanent); the _to_ NFT can be normal or normal permanent. The destination's lock end is set to whichever is later. The from NFT is burned. * ✓split. Divide one NFT into two with chosen TOPAZ amounts. Each child has the same unlock date as the parent. The parent is burned. Split is enabled protocol-wide on Topaz — anyone can split their own normal (or normal permanent) NFT. * ✓lockPermanent. Convert a normal NFT to permanent mode. Voting power locks at max with no further decay. * ✓unlockPermanent. Reverse the previous step — but only if you haven't voted in the current epoch. Returns to a normal NFT with 4-year unlock from the moment of unlock. * ✓withdraw. After unlock time, retrieve your underlying TOPAZ. The NFT is burned. * ✓delegate. Permanent locks (and managed NFTs) can delegate their voting power to another NFT's owner for governance proposals. Does _not_ delegate gauge voting power — that's a separate concept. ## Permanent vs decaying — which to choose Permanent locks have two distinguishing benefits and one trade-off: * ✓Benefit: voting power stays at the max forever; no need to extend each year. * ✓Benefit: only permanent locks can delegate (useful for managed strategies and on-chain governance). * ✓Trade-off: no exit. Until you unlockPermanent (which can fail if you've voted this epoch), your TOPAZ is escrowed indefinitely. * ✓Trade-off: cannot extend or shorten — the lock state is binary. Most active voters who plan to be in for the long haul prefer permanent locks for the no-maintenance behavior. Voters who want the option to gradually exit prefer decaying locks and renew duration as needed. ## Voting once per epoch Each veTOPAZ NFT can vote once per epoch. Voting also means depositing into a managed NFT (the two paths are mutually exclusive within an epoch). After you vote, you can't change your allocation until the next epoch — but unchanged votes carry over automatically. ℹReset to clear an earlier allocation A reset removes the NFT’s gauge votes. The previous vote must be from an earlier epoch and the first-hour restriction must have passed. Reset does not itself advance lastVoted; a subsequent vote still has to pass the contract’s current-epoch and voting-window gates. ## Where this happens in the app Open [Locks](https://www.topazdex.com/locks) to create or manage locks. The pages cover create (with an optional locking bonus), extend, increase, merge, split, transfer, convert to permanent, and withdraw. ## Optional wrapping into xTOPAZ An eligible normal unexpired or permanent BNB lock can be wrapped into xTOPAZ shares through the live BNB vault. The source NFT is burned and its individual BNB allocation ends. Current-epoch voters must wait; pool fees, incentives and settled rebases must be handled before the merge. Locks with any relay participation history are blocked to preserve historical payouts. Managed NFTs and relay-deposited NFTs cannot enter directly. The interface also blocks any NFT with a history of relay participation, even after withdrawal, to preserve historical payout rights. [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get). Redeeming xTOPAZ creates a new permanent BNB NFT, rather than restoring the original lock or its expiry. Entry and redemption are enabled when the vault's live conditions permit. [Redemption](https://www.topazdex.com/docs/xtopaz/redeem). ## Continue reading [Gauge Voting →How to direct emissions with your veTOPAZ each epoch.](https://www.topazdex.com/docs/gauges)[Incentives (Bribes) →External rewards posted to gauges to attract veTOPAZ votes.](https://www.topazdex.com/docs/voting/incentives)[Managed Locks →Delegate your veTOPAZ into a managed NFT for passive participation.](https://www.topazdex.com/docs/voting/managed)[TOPAZ & Emissions →Where TOPAZ comes from, the emission curve, and rebases.](https://www.topazdex.com/docs/tokenomics) --- Source: https://www.topazdex.com/docs/gauges Voting & Incentives # Gauge Voting Gauge votes allocate liquidity incentives and earn the fees and incentives attached to the pools selected. On BNB, voters use veTOPAZ NFTs and LP gauges pay TOPAZ. On Robinhood Chain, Base, Ethereum and Arc, local xTOPAZ positions vote and LP gauges pay xTOPAZ. ## Choose the network and voting position Start at the [voting overview](https://www.topazdex.com/vote), then choose a network. [BNB voting](https://www.topazdex.com/vote/bnb) uses a BNB veTOPAZ NFT. A spoke uses a stake in its own xTOPAZ voting vault. There is no single ballot that spends the same voting weight across different chains. Spoke voting power equals staked shares. A newly funded position has a withdrawal date; voting does not extend that date, but adding funds can. Fees and incentives are claimed locally, including those owed to positions that have since closed. [Spoke staking and voting](https://www.topazdex.com/docs/xtopaz/staking). Spoke voting and claims are enabled on Robinhood Chain, Base, Ethereum and Arc. Select a local xTOPAZ stake and that network's pools. The BNB walkthrough below applies to hub veTOPAZ NFTs. ## Epochs at a glance The protocol runs on weekly epochs. All voting, emissions, fees, and bribe accounting align to this clock. | Parameter | Value | Description | | ------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | Epoch length | 7 days (604,800 seconds) | Thursday 00:00 UTC → Thursday 00:00 UTC. | | Distribution window | First hour of each epoch | Vote, depositManaged, withdrawManaged, reset, and poke are disabled while the protocol distributes the prior epoch's emissions. | | Final-hour window | Last hour before epoch flip | Only whitelisted (approved) NFTs can vote during this final hour. | | Max gauges per vote | 30 | Set by Voter.maxVotingNum; governance-adjustable. | ## How to vote 1. 1Lock TOPAZ to receive a veTOPAZ NFT. See [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz). 2. 2Open [Vote](https://www.topazdex.com/vote). Choose a network to reach its allocation page, which lists each pool's fees, incentives, total rewards, votes and vAPR (voting APR plus the rebase estimate). Spoke vAPR includes the BNB rebase estimate too, because xTOPAZ receives every rebase through its growing TOPAZ backing per share. 3. 3Allocate your vote weight across up to 30 gauges. Weights are proportional, not absolute — entering 60 / 40 splits your NFT's voting power 60% to the first gauge and 40% to the second. 4. 4Submit. The transaction goes to the Voter contract, which records your vote and updates gauge weights immediately. 5. 5After the next epoch flip (Thursday 00:00 UTC), claim your share of trading fees and bribes from the FeesVotingReward and BribeVotingReward contracts of each gauge you voted for. ℹCarry-over: unchanged votes persist Once cast, your vote stays in effect epoch over epoch unless you change it. You don't need to recast each week to keep earning. To change allocation, simply call vote again in any subsequent epoch. ## Reset, re-vote, and poke Three operations exist for managing a vote over time: * ✓vote(...) — Cast or replace your vote. Allowed once per epoch, outside the first-hour distribution window. Whitelisted NFTs can also vote during the final-hour window. * reset() clears allocations from an earlier epoch and is blocked during the first-hour distribution window. It does not itself update lastVoted. Any following vote must independently satisfy the current voting gates. * ✓poke() — Refreshes the voting-weight snapshot for your NFT in all the reward contracts it's in. Useful if your locked amount changed (you added more TOPAZ, merged with another NFT, etc.) and you want the gauge to record the new weight immediately rather than at the next vote. Doesn't change which gauges you voted for, only the weight. ## Who earns what The clean separation between LPs and voters is the central design choice of ve(3,3): #### Liquidity Providers (LPs) Stake LP tokens or Slipstream NFTs in gauges and earn TOPAZ emissions on BNB or xTOPAZ emissions on spokes. The more votes a gauge receives, the more emissions flow to its LPs. LPs do not earn swap fees on staked positions — those flow to voters via the FeesVotingReward contract. #### Voters (veTOPAZ on BNB, staked xTOPAZ on spokes) Vote on local gauges and earn the fees routed from staked liquidity, the applicable unstaked Concentrated surcharge, and any incentives deposited by projects. Voters don't earn emissions directly — they direct where emissions flow. Both fees and incentives are claimable starting the epoch after they accrue. ## Claiming rewards Three types of rewards become claimable after each epoch flip: * ✓Trading fees from voted pools. Claim via `Voter.claimFees(feeContracts[], tokens[][], tokenId)`. * ✓Bribes / incentives from voted pools. Claim via `Voter.claimBribes(bribeContracts[], tokens[][], tokenId)`. * ✓Rebases on your veTOPAZ. Claim via `RewardsDistributor.claim(tokenId)` or `claimMany(tokenIds[])`. Auto-compounds for active locks. The interface gathers available reward sources for review. Pool fee and incentive rewards do not have a general 50-epoch expiry. The rebase distributor’s 50-week processing bound is a per-call limit: a long backlog can require repeated claims. Before any merge or wrap burns an NFT, resolve rewards still keyed to that ID. ## Vote delegation vs gauge voting A common point of confusion: the `delegate()` function on VotingEscrow delegates governance voting power (used in ProtocolGovernor / EpochGovernor proposals) and is only available for permanent locks and managed NFTs. It does _not_ delegate gauge votes. To delegate gauge voting, deposit your NFT into a managed NFT — see [Managed Locks](https://www.topazdex.com/docs/voting/managed). ## Continue reading [Incentives (Bribes) →How bribe markets work and how to maximize voter income.](https://www.topazdex.com/docs/voting/incentives)[Managed Locks →Delegate gauge voting by depositing into a managed veNFT.](https://www.topazdex.com/docs/voting/managed)[veTOPAZ Locks →The lock mechanics that gate participation here.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Staking in Gauges →The LP side of the gauge — who earns the emissions you direct.](https://www.topazdex.com/docs/liquidity/staking) --- Source: https://www.topazdex.com/docs/voting/incentives Voting & Incentives # Incentives (Bribes) Incentives, also called bribes, let projects compete for local gauge votes. BNB voters use veTOPAZ; activated spokes use staked xTOPAZ positions. A deposit targets a reward contract on one chain and pays that chain’s eligible voters. ## Why incentives exist Pre-ve(3,3), a project that wanted deep liquidity for its token had two choices: run its own LP farming program (expensive, no coordination, mercenary capital) or beg a major DEX to list it (slow, opaque, political). Both leak value. ve(3,3) replaces both with an open auction. Local voters choose which gauges receive the network’s emissions: TOPAZ on BNB, xTOPAZ on spokes. Projects compete for that flow by posting incentives on the gauges they care about. Voters take the incentives that maximize their return. Both sides discover the right price for liquidity transparently. ℹThe clean part of the design The project pays once for votes; the protocol's emission schedule does the actual LP-paying. The project never has to run a farming program directly. The voter sells the votes only when the price is right. ## The mechanics Every gauge has an associated `BribeVotingReward` contract. Anyone can call `notifyRewardAmount(token, amount)` on it to deposit incentives. Rules: * ✓Tokens must be on the Voter's whitelist or already registered as a reward on that contract. This prevents spam / phishing tokens. Whitelisting is governance-controlled. * ✓Incentives deposited during epoch n are claimable by voters who voted for that gauge in epoch n, becoming available at the epoch n+1 boundary (Thursday 00:00 UTC). * ✓Pro-rata distribution: each voter's claim is (their gauge vote weight) / (total gauge vote weight) × deposited incentive. * ✓Multiple tokens per gauge: a gauge can have several incentives simultaneously, each tracked separately. * Unclaimed fee and incentive rewards remain keyed to the voting position. There is no general 50-epoch expiry. A burned BNB NFT can lose access to its rewards; a closed spoke stake retains its owner so earlier rewards can still be claimed. ## Depositing an incentive (as a project) 1. 1Identify the target pool and confirm it has an active gauge. 2. 2Confirm the reward token is on the Voter whitelist. If not, request whitelisting (see Integration Guide). 3. 3Approve the BribeVotingReward contract for the amount, then call `notifyRewardAmount(token, amount)`. You can do this directly via the contract or through the incentives UI at [Incentives](https://www.topazdex.com/incentivize). 4. 4Timing: incentives deposited mid-epoch attract votes for the same epoch. To maximize visibility, deposit early in the epoch (Thursday — Saturday) so voters see them in time. 5. 5Watch how votes shift in your gauge over the epoch. Adjust subsequent incentive sizes based on observed vote ROI. ⚠No refunds Incentive deposits cannot be withdrawn by the depositor. Rewards are attributed to their deposit epoch; do not assume a deposit in an epoch with no eligible votes will be refunded or automatically become a later-epoch incentive. Verify the local reward contract and timing before funding it. ## Claiming incentives (as a voter) After an epoch flips, your share of incentives from each gauge you voted for becomes claimable. The app aggregates everything into a single "claim all" button. Programmatically: * ✓`Voter.claimBribes(bribes[], tokens[][], tokenId)` — pass arrays of bribe contracts and the tokens you want to claim from each. Receives the rewards to the NFT owner. * ✓`Voter.claimFees(fees[], tokens[][], tokenId)` — same shape, but for swap-fee rewards from the FeesVotingReward contracts. * Claims do not require a current-epoch vote. Keep the original chain, voting contract and position ID available, and resolve NFT reward claims before a merge or wrap burns that NFT. ## Strategy notes For both sides of the market, the same rule applies: incentive ROI is the only metric that matters in steady state. Express it as bribe-per-vote: bribePerVote = (deposited incentive in $) / (votes attracted) * ✓As a voter — sort pools by vAPR (the app sorts by vAPR, total rewards, fees or incentives). Spread votes across the top gauges to maximize income. Re-evaluate each epoch. * ✓As a project — target bribe-per-vote slightly higher than the current epoch floor (so you actually attract votes) but not so high that you're overpaying. Deposit early in the epoch so voters see the offer before they finalize allocations. * ✓Watch the emission flow. A vote is only worth what its share of next epoch's emissions ends up being worth. Use the local emission token’s market price — TOPAZ on BNB, xTOPAZ on spokes — when valuing expected emissions. Incentive deposits and voter rewards remain separate from LP emissions. ## Whitelisting reward tokens Only governance-whitelisted tokens can be used as incentives. This prevents griefing with worthless or malicious tokens. Projects launching with Topaz typically pre-coordinate whitelisting of their token with governance ahead of mainnet. For new tokens that want incentive eligibility, see the [Integration Guide](https://www.topazdex.com/docs/developers/integration) for the request flow. ## Plan incentives per chain A whitelist entry, pool, gauge and incentive token are all local to a deployment. A deposit to a BNB reward contract cannot attract votes to a Base pool. Choose the local chain and live gauge, verify the reward token there, approve the deposit (a standard wallet grants that reward contract one maximum allowance) and review which epoch receives it. BNB LP emissions are TOPAZ; Robinhood Chain, Base, Ethereum and Arc LP emissions are xTOPAZ. Market price and locked-TOPAZ backing per share are different observations. Incentive deposits are enabled on all five live voting networks: select the network, pool and eligible token, then review the exact approval and deposit. [Add incentives](https://www.topazdex.com/incentivize). ## Continue reading [Gauge Voting →Cast votes to direct emissions and claim fees + incentives.](https://www.topazdex.com/docs/gauges)[veTOPAZ Locks →The locking mechanic that gates participation in the incentive market.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Integration Guide →Whitelist a token, list a pool, and post incentives as a project team.](https://www.topazdex.com/docs/developers/integration)[Contracts →Voter, VotingRewardsFactory, and the related bribe + fee contracts.](https://www.topazdex.com/docs/contracts) --- Source: https://www.topazdex.com/docs/voting/managed Voting & Incentives # Managed Locks A managed veNFT aggregates many normal veTOPAZ NFTs under a single voter. It exists so small holders can participate in fees and bribes without managing votes every week, and so DAOs and protocols can run professional veTOPAZ strategies on behalf of token holders. ## Managed locks, relays and xTOPAZ Managed veTOPAZ locks and the [relay interface](https://www.topazdex.com/relays) are BNB features. Spokes use local xTOPAZ stake IDs, not managed NFTs, and their managed-lock call paths are unsupported. The xTOPAZ vault holds one normal permanent aggregate NFT and issues fungible shares. A managed lock instead tracks deposited NFTs and its managed reward streams. Do not treat a relay deposit as an xTOPAZ mint or assume a manager’s historical returns apply to shares. NFTs that have ever joined a relay are currently blocked from wrapping, including after withdrawal. Wrapping burns the source NFT, so unresolved historical relay payout rights must be preserved. Use a new eligible lock or deposit liquid TOPAZ instead. [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get). ## The shape of a managed NFT A managed NFT is a special veTOPAZ NFT minted by governance or a whitelisted manager. It's permanently locked by default — its voting power doesn't decay. Anyone can deposit their normal veTOPAZ NFT into it; the deposited NFT enters the locked state (read-only from the depositor's perspective) and its TOPAZ contributes to the managed NFT's aggregate voting weight. The manager votes on behalf of the entire pool. Any fees and incentives the managed NFT earns get distributed pro-rata to the underlying depositors — net of any manager fee. ℹWithdrawal preserves your TOPAZ When you withdraw from a managed NFT, your normal veTOPAZ NFT is restored with its _original_ TOPAZ amount, plus any locked rewards that were compounded into the managed NFT on your behalf. The lock end is set to the maximum (4 years from the withdraw timestamp), so your underlying lock duration is essentially reset whenever you exit. ## Who runs managed NFTs * ✓Protocol-owned managed NFTs — run by the Topaz foundation or partner DAOs, typically with public, neutral voting strategies (e.g. 'always vote for the most-bribed pool'). * ✓Third-party manager NFTs — created by whitelisted managers (DeFi yield aggregators, voting cooperatives) with their own strategy and fee tier. * ✓Allowed managers are explicitly listed and controlled by governance. A managed NFT can be deactivated by the Emergency Council if the manager misbehaves; deactivated NFTs cannot vote or accept new deposits, but existing depositors can still withdraw. Active relays (managed NFTs) are listed on the Relays page. Each card shows the relay's strategy outcome (compounding or payout), its Relay APR and its locked TOPAZ. ## Depositing into a managed NFT 1. 1Hold an unexpired veTOPAZ NFT, decaying or permanent, that is not already in a relay. 2. 2Choose a relay on the Relays page and review its strategy and Relay APR. 3. 3Call `depositManaged(tokenId, mTokenId)` via the Voter contract (the app handles this for you). Your NFT transitions to the _locked_ state. 4. 4From that point, the managed NFT votes with your weight, claims fees + bribes, and tracks your share of all rewards. ⚠One epoch trade-off Depositing into a managed NFT counts as your one allowed "vote" action for the epoch. You can't deposit and then vote your own NFT in the same week. The reverse is also true: voted NFTs cannot be deposited in the same epoch. ## Withdrawing 1. 1Wait until the epoch after your deposit (you can't withdraw in the same epoch you deposited). 2. 2Call `withdrawManaged(tokenId)` via the Voter contract. The app provides a UI. 3. 3Your NFT is restored to the normal state with your original TOPAZ amount, plus any compounded locked rewards. The lock end resets to the maximum (4 years from now), so you immediately regain full decaying voting power. 4. 4Pending free rewards (anything the manager passed on as liquid tokens) are claimable via the standard Voter rewards flow. ## Reward streams on a managed NFT A managed NFT separates rewards into two streams: * ✓Locked rewards. TOPAZ rebases and any TOPAZ-denominated rewards the manager compounds back into the underlying lock. These add to the underlying lock value but stay escrowed until you withdraw. Tracked by `LockedManagedReward`. * ✓Free rewards. Anything the manager chooses to pass through as liquid (fees in stablecoins, bribe tokens, etc.). Distributed pro-rata and claimable via `FreeManagedReward` while your NFT is locked. ## Use cases * ✓Small holders who want fee + bribe income without active voting each week. * ✓Treasury teams who want to delegate Topaz exposure to a trusted manager. * ✓Yield aggregators offering Topaz veNFT vaults on top of the protocol. * ✓Long-tail community pools that aggregate aligned community members behind a single voting strategy. ## Continue reading [veTOPAZ Locks →The full state machine — normal, permanent, locked, managed.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Gauge Voting →What the managed NFT is actually doing on your behalf each epoch.](https://www.topazdex.com/docs/gauges)[Incentives (Bribes) →The income source that managers compete to capture.](https://www.topazdex.com/docs/voting/incentives)[Contracts →VotingEscrow, Voter, and ManagedRewardsFactory addresses.](https://www.topazdex.com/docs/contracts) --- Source: https://www.topazdex.com/docs/governance Governance # Protocol Governance Topaz’s BNB core has two governance contracts and bounded admin roles. The multichain extension adds local administration for vaults, bridging, budgets and spoke voting. This page separates the existing hub governance model from those additional responsibilities. ## Administration across networks The existing BNB TOPAZ emission schedule and veTOPAZ governance are retained. A spoke xTOPAZ vote directs local gauge emissions; it does not confer a BNB ProtocolGovernor or EpochGovernor vote on each share holder. The multichain design uses configurable multisig administration per chain. It does not assume the same deployed Safe address on every network or an enforced cross-chain timelock. Local pauses and parameter changes require local authority; a pause on one spoke is not a protocol-wide pause. | Component | Additional controls | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------- | | BNB vault | Pause entry or redemption separately; set strategy and pauser; sweep non-TOPAZ tokens | | Strategy and coordinator | Strategy replacement and vote-window settings; register spokes; custody and withdrawal of undelivered budget shares | | OFT adapter and spoke OFTs | Peers, messaging verification configuration, directional limits, route pauses and hub supply reconciliation | | Spoke voting vault | Minimum stake and lock length for new money; pause new stakes and additions | | Spoke receiver and composers | Budget hold/funder settings and defined rescue powers | These controls can affect availability, delivery and future incentives. The BNB role map below covers the hub; deployed spoke contracts have local authorities and controls. [Security & Audits](https://www.topazdex.com/docs/security) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain) · [Contract addresses](https://www.topazdex.com/docs/contracts). ## What governance can and can't do The existing BNB core — the AMM math, the lock mechanics, the emission schedule — is immutable once deployed. Governance does not upgrade core contracts. What governance can change is bounded by what each parameter setter explicitly allows: * ✓Tail emission rate (±0.01 percentage points per epoch via EpochGovernor, within 0.01%–1% bounds). * ✓Team rate — TOPAZ allocation to the team address, set by the team role and bounded at 0%–5% of emissions. * ✓maxVotingNum — maximum gauges per veNFT vote (default 30). * ✓Token whitelist — which tokens are eligible as incentive (bribe) rewards. * ✓Managed NFT whitelist — which addresses can mint managed veNFTs. * ✓Factory registry approvals — which pool / gauge / rewards factories are valid for new gauge creation. ℹImmutable core AMM curves, voting power decay math, lock periods, fee caps, tail rate bounds, factory contracts themselves — these are immutable. New _factories_ can be registered to enable new pool types, but existing pools cannot be retroactively changed. Migration is opt-in by LPs and voters, never forced. ## ProtocolGovernor Topaz's top-level governance contract is a lightly modified OpenZeppelin Governor. Key properties: | Parameter | Value | Description | | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------- | | Voting power | veTOPAZ balance | Per-NFT, timestamp-based snapshots (EIP-6372 timestamp mode). | | Quorum | Governance-set | Subject to standard Governor quorum logic. | | Veto | Yes | A vetoer role can cancel proposals as a 51% attack mitigation. Designed for emergency use, not routine. | | Proposal hash | Includes proposer address | Prevents griefing via frontrun of identical proposals. | | Relay | Disabled | Governor cannot make arbitrary cross-contract calls outside its specified targets. | Proposals follow the standard Governor lifecycle: propose → delay → vote → execute. Vote weight is captured at the proposal's snapshot timestamp, so locking after a proposal starts does not retroactively earn votes on that proposal. ℹActivation in progress ProtocolGovernor is deployed and reads voting power from veTOPAZ. It is designed to hold the governor role once on-chain governance activates; until then, the parameters above are administered by the multisig. ## EpochGovernor — the tail-rate nudge A second, simpler Governor exists for one specific purpose: adjusting the tail emission rate by exactly one basis point per epoch. Once tail emissions activate, EpochGovernor lets voters choose each week whether to nudge the rate up, down, or hold. * ✓One proposal per epoch — the protocol guarantees uniqueness via the epochStart-derived proposal hash. * ✓Three options (up / down / hold), plurality wins. No quorum, no proposal threshold. * ✓Effect bounded: NUDGE = 1 basis point per call (i.e. 0.01 percentage points). * ✓Bounds enforced at the Minter: rate stays in 0.01% – 1% per epoch. * ✓Proposals created in epoch n are executed in epoch n+1 after the voting period closes. * ✓The very first nudge proposal must be initiated in the epoch before tail emissions activate. ⚠Pre-tail behavior EpochGovernor only operates once tail emissions are active. Until then, the emission schedule follows its fixed growth/decay curve and EpochGovernor is dormant. Phase-2 decay ends when weekly emissions drop below 8,969,150 TOPAZ — that's when EpochGovernor activates. [See TOPAZ & Emissions](https://www.topazdex.com/docs/tokenomics) for the full schedule. ℹActivation in progress As with ProtocolGovernor, EpochGovernor is designed to hold the epoch-governor role ahead of tail emissions going live. ## Admin role map The following BNB core roles exist alongside governance. They currently sit with the protocol multisig and its signers while on-chain governance activates. Every holder is readable on-chain and listed on the [contracts page](https://www.topazdex.com/docs/contracts). | Role | Powers | | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Governor | Whitelists tokens and NFTs for gauge creation, sets the max voting count, designates the allowed manager for managed veNFTs, and can reassign the governor and epoch-governor roles themselves. | | Emergency Council | Can kill / revive gauges, deactivate managed NFTs, and toggle the split function. Cannot mint, change emission rate, or move user funds. | | Fee Manager | Sets v2 and Slipstream base / custom swap fees up to their immutable 3% caps. For pools running the dynamic-fee module, configures the dynamic-fee parameters subject to that module's immutable 5% total-fee cap. Also configures unstaked-position fees and aggregator discounts. | | Pauser | Holds exactly one control: the v2 PoolFactory's factory-wide swap pause, which blocks swaps across its v2 pools for incident response. Cannot transfer, seize, or modify user balances — v2 LP withdrawal stays open while swaps are paused, and Slipstream pools have no pause path at all. | | Team | Receives the team-rate share of emissions and holds the protocol's foundation veTOPAZ. Sets the team rate itself, bounded by the immutable 5% cap, and sets the ve art proxy. | | FactoryRegistry owner | Approves and un-approves pool, gauge and rewards factories, which is how new pool generations become available. Cannot force migration of existing pools. | | Vetoer | Can cancel a ProtocolGovernor proposal as a 51%-attack guardrail. | ## Proposal lifecycle in practice * ✓Drafting: discussed openly in Telegram / GitHub before going on-chain. Aim for community consensus before submitting. * ✓On-chain proposal: anyone meeting the proposal threshold can submit via ProtocolGovernor.propose(). * ✓Voting period: starts after the proposal delay, runs for a fixed window. Vote by NFT, not by address — large veTOPAZ NFTs cast a single vote with their entire weight. * ✓Execute: if passing, the proposal becomes executable once the voting period closes. * ✓Veto: if the proposal is found to be malicious or buggy during the window, the vetoer can cancel. ## Continue reading [TOPAZ & Emissions →The emission schedule that EpochGovernor adjusts once tail kicks in.](https://www.topazdex.com/docs/tokenomics)[veTOPAZ Locks →Where governance voting power comes from.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Security & Audits →Admin controls, risk disclosures, and the Shieldify audit.](https://www.topazdex.com/docs/security)[Contracts →Governor contract addresses on BscScan.](https://www.topazdex.com/docs/contracts) --- Source: https://www.topazdex.com/docs/developers/integration Developers # Integration Guide A developer-facing tour of the protocol. Whether you're a project team listing your token, an aggregator routing through Topaz, or a builder reading pool state for an oracle, this is the entry point. ## Choose a deployment before integrating The BNB examples below use that chain's token addresses, wrapped native asset and contracts. A spoke needs its own verified deployment bundle, RPC, factory registry, Voter and reward token. Pool creation, whitelisting, gauges and incentives are local operations; an approval or listing on BNB does not authorize the same action elsewhere. The interface races Topaz routing, 0x and Relay on every chain pair each one serves. A Topaz winner executes through the Universal Router with Permit2; the Router and Slipstream SwapRouter examples below are direct contract integrations, not a description of every app swap. xTOPAZ adds vault entry, LayerZero transfers, redemption and local spoke voting. These flows are enabled on the live networks. Read the [multichain integration guide](https://www.topazdex.com/docs/developers/multichain) for chain and endpoint IDs, contract groups, receipt checks and indexing. ## Common integration paths * ✓Aggregator / router integration — quote Topaz pools and execute swaps through Router (v2) or SwapRouter (Slipstream). * ✓Token listing as a project — get whitelisted, create your pool, request a gauge, post incentives. * ✓Oracle consumer — read TWAPs from Slipstream pools for your dapp. * ✓Vault / strategy builder — automate concentrated-liquidity range management or veTOPAZ voting strategies. ## Routing & quoting For programmatic swaps, three quoter contracts cover all routes: * ✓`Router` — v2-style multihop swaps. Use `getAmountsOut` for quoting. * ✓`QuoterV2` — Slipstream-only multihop quotes. Off-chain only (it reverts to return data — the standard Uniswap V3 quoter pattern). * ✓`MixedRouteQuoterV1` — quotes that mix v2 and Slipstream pools in a single path. Use this when routing across both pool types. Encoding a Slipstream path: solidity ``` // Single hop bytes memory path = abi.encodePacked( tokenIn, // 20 bytes uint24(tickSpacing), // 3 bytes tokenOut // 20 bytes ); // Multi-hop via WBNB bytes memory path = abi.encodePacked( tokenIn, // 20 bytes uint24(50), // tickSpacing for first hop (low-vol) WBNB, // 20 bytes uint24(200), // tickSpacing for second hop (volatile) tokenOut // 20 bytes ); ``` See [Contracts](https://www.topazdex.com/docs/contracts) for all addresses including the mixed-route quoter and [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps) for end-user routing concepts. ## Listing a token / pool (for projects) The complete checklist for bringing a new token onto Topaz: 1. 1Deploy or identify the ERC-20 on the selected live Topaz network; the current examples use BNB. Standard ERC-20 only — fee-on-transfer tokens are partially supported by the v2 router but not by the Slipstream periphery. 2. 2Create the pool. For v2: `PoolFactory.createPool(tokenA, tokenB, stable)`. For Slipstream: `CLFactory.createPool(tokenA, tokenB, tickSpacing, sqrtPriceX96)`. Both are permissionless. 3. 3Seed initial liquidity. Provide both tokens at a price you're willing to defend. First deposit sets the price; subsequent depositors must match the ratio. 4. 4Request whitelisting. Two whitelists matter: (a) token whitelist for use as bribe rewards, and (b) for new tokens, token whitelist on the Voter to allow permissionless gauge creation. Coordinate with governance — reach out via Telegram or governance forum. 5. 5Get a gauge created. Once your token is whitelisted (or for a fully-whitelisted pair, by anyone), call `Voter.createGauge(poolFactory, pool)`. Without a gauge, the pool exists but receives no emissions. 6. 6Post incentives. Approve and call `BribeVotingReward.notifyRewardAmount(token, amount)` on the gauge's bribe contract to attract votes. [See Incentives (Bribes).](https://www.topazdex.com/docs/voting/incentives) ⚠Custom (non-whitelisted) pairs A gauge for a pair containing a non-whitelisted token can only be created by governance, not permissionlessly. Plan ahead if your token isn't yet on the Voter whitelist. ## Reading pool state on-chain Common reads: * ✓`PoolFactory.getPool(tokenA, tokenB, stable)` — fetch v2 pool address (returns 0x0 if absent). * ✓`CLFactory.getPool(tokenA, tokenB, tickSpacing)` — fetch Slipstream pool address. * ✓`Voter.gauges(pool)` — fetch a pool's gauge address (0x0 if none). * ✓`Voter.isAlive(gauge)` — check whether a gauge is currently active. * ✓`CLPool.slot0()` — current sqrtPriceX96, tick, observation index, etc. * ✓`CLPool.observe([secondsAgo1, secondsAgo2])` — compute a TWAP from the in-pool oracle. [See Oracles & TWAP.](https://www.topazdex.com/docs/concepts/oracles) ## Working with the gauge directly For programmatic LP integrations: solidity ``` // v2 LP token staking ILpToken(lpToken).approve(gauge, amount); IGauge(gauge).deposit(amount); // Claim emissions IGauge(gauge).getReward(msg.sender); // Withdraw IGauge(gauge).withdraw(amount); // Slipstream NFT staking INonfungiblePositionManager(npm).approve(gauge, tokenId); ICLGauge(gauge).deposit(tokenId); ICLGauge(gauge).getReward(tokenId); ICLGauge(gauge).withdraw(tokenId); ``` Gauges follow the standard `notifyRewardAmount` /`rewardPerToken` /`earned` pattern from MasterChef / Synthetix. Rewards stream linearly across 604,800 seconds after each epoch's emission allocation. ## Voting on behalf of a contract Smart-contract vaults that hold veTOPAZ NFTs can vote and claim like any wallet. Standard flow: solidity ``` // One-time setup: vault must own (or be approved for) the veNFT IVoter(voter).vote( tokenId, [pool1, pool2, ...], [weight1, weight2, ...] ); // Each epoch, after the flip: IVoter(voter).claimBribes( [bribeContract1, ...], [[token1A, token1B], ...], tokenId ); IVoter(voter).claimFees( [feeContract1, ...], [[token1A, token1B], ...], tokenId ); ``` ℹOne vote per epoch The Voter enforces a single vote per NFT per epoch (with exceptions for whitelisted NFTs that can vote during the final hour). Plan vault automations accordingly — re-voting before the next epoch boundary reverts. ## Indexing & subgraph Topaz emits standard events at every state change — pool creates, swaps, mints, burns, votes, gauge distributions, and reward claims. Indexers need each deployment’s RPC logs and start blocks, or a chain-specific subgraph. If you build public indexing infrastructure for the protocol, get in touch via Telegram for cross-linking. ## Continue reading [Contracts →Every deployed contract on all five networks, with explorer links.](https://www.topazdex.com/docs/contracts)[Oracles & TWAP →Read TWAPs from Slipstream pools and grow observation cardinality.](https://www.topazdex.com/docs/concepts/oracles)[Incentives (Bribes) →Programmatic incentive deposits for liquidity acquisition.](https://www.topazdex.com/docs/voting/incentives)[Gauge Voting →Voter interface details — vote, reset, poke, claim.](https://www.topazdex.com/docs/gauges) --- Source: https://www.topazdex.com/docs/developers/data-api # Topaz data API The public multichain API supplies market discovery, protocol analytics, governance, account and xTOPAZ observations. The deployed OpenAPI contract is authoritative. ## Multichain coverage Topaz analytics cover BNB Chain (56), Robinhood Chain (4663), Base (8453), Ethereum (1) and Arc (5042). Protocol totals combine the selected networks; a network filter applies to the metrics, chart and pool list. Pool and token identities always include both chain ID and contract address. Begin with GET /v1/chains. Use chainIds for collections and explicit chainId/address paths for individual entities. Capabilities and coverage are per network; deployment alone does not establish indexed data availability. ## Base URL and format Base origin: https://api.topazdex.com. Read-only public endpoints return JSON over HTTPS with CORS. The website’s /api routes are compatibility forwards for older clients; integrations should call the API service directly. Example: [https://api.topazdex.com/v1/protocol?chainIds=56,4663,5042](https://api.topazdex.com/v1/protocol?chainIds=56,4663,5042). Omit chainIds to request the API’s all-network scope; inspect the returned chain IDs. ## Discovery and reference [OpenAPI](https://api.topazdex.com/openapi.json) · [Interactive docs](https://api.topazdex.com/docs) · [API catalog](https://www.topazdex.com/.well-known/api-catalog). Generate clients from https://api.topazdex.com/openapi.json. Do not reuse a compatibility endpoint’s schema for /v1. ## Responses, identity and pagination Success responses use ok, data and endpoint-specific meta, with pageInfo on paginated collections. Schemas differ by endpoint family. Validate consumed fields, chain IDs, contract addresses, requested epochs and source identity. Follow pageInfo.nextCursor until hasNextPage is false. Keep filters and the pinned publication consistent. An expired or replaced publication requires a fresh traversal, not concatenation across snapshots. A page-size limit is not a complete inventory. ## Observations and caching Headline 24-hour and seven-day figures use the API’s rolling windows. Each network has its own indexed observation boundary; combined totals sum those independently observed windows. They are not a synchronized cross-chain block. No browser-side proration of yesterday’s totals is applied. A missing value is not zero. A known subtotal is displayed with + when complete valuation or network coverage is unavailable. Charts mark partial periods and preserve gaps. Response generation and cache times are not the time the underlying chain state was observed. Use indexedAt, snapshotAt, availableAt and the endpoint’s observation metadata as documented. generatedAt and cacheTtlSeconds describe serving; neither establishes a new chain observation. Stale/failed chain IDs and complete/known-value fields carry meaningful coverage information. ## Failures Check HTTP status and structured error codes. An unavailable chain, unsupported feature, missing entity, invalid query and incomplete history are different states. A failed refresh must not relabel a cached total as a new complete observation. ## Protocol GET /v1/protocol returns per-chain observations and totals for eligible user-pool liquidity, counts and rolling day/week flows. Policy metadata excludes backing, bridge balances, holders, prices and APRs from additive protocol metrics. GET /v1/protocol/history and /v1/protocol/daily return period flows and TVL observations. The default alignment is rolling; use alignment=utc for calendar-day charts. /stats explicitly requests UTC charts. GET /v1/protocol/trailing returns requested windows with coverage. ## Pools GET /v1/pools lists chain-qualified markets. GET /v1/pools/{chainId}/{poolAddress} returns one pool; /history, /daily, /trailing and /ticks provide metric-specific observations. Use scope=all when the intended universe extends beyond curated pools. Pool fields retain rolling volume and fees, separate feeApr/emissionsApr, fee-mode flags and pricing/range evidence. Excluded pools or unknown valuations cannot be silently inserted as zeros. ## Tokens and prices GET /v1/tokens and /v1/tokens/{chainId}/{tokenAddress} expose metadata and market observations. /prices, /price-history, /price-changes and /trailing use their documented observation boundaries. GET /v1/prices supports batch valuation. GET /v1/token-lists, /v1/token-lists/{chainId}, /v1/categories and /v1/curation expose catalog and category metadata. Supply, market cap and holder counts are not implied by a token’s price response. ## Gauges GET /v1/gauges and /v1/gauges/{chainId}/{gaugeAddress} describe indexed gauges. /history, /rewards and /bribes provide scoped observations. Keep user-pool gauges, system gauges, killed gauges and mapping support distinct. ## Votes, epochs and funding GET /v1/votes supports the documented event/current views. GET /v1/epochs and /v1/epochs/{chainId}/{epochStart} describe epoch observations. GET /v1/markets/bribes supplies per-epoch notified funding; /v1/bribes and chain-qualified pool/gauge /bribes routes expose funding records. Notified funding, claimed rewards, rolling trading fees and gauge emission rates are different quantities. A public voting display is not authority to sign a transaction. ## Accounts and governance GET /v1/accounts/{address}/portfolio, /liquidity-positions, /voting-positions, /votes, /rewards, /activity and /xtopaz are chain-scoped account reads. Indexed inventory may lag a confirmed receipt. Read the deployment, ownership, custody and claim evidence required by the action before signing. The interface retains direct contract and subgraph reads where needed for transaction preconditions, receipt recovery or account acceptance. The broad hub account API gate remains separate from enabled spoke position discovery. ## xTOPAZ and bridging GET /v1/xtopaz, /v1/xtopaz/rate-history and /v1/xtopaz/epochs report share accounting. GET /v1/bridge and /v1/bridge/{guid} report indexed messages. Canonical supply and backing are counted once; independent chain observations can leave reconciliation incomplete. ## Topaz Auto vaults GET /v1/auto-manage/vaults lists Topaz Auto vaults on BNB Chain, Robinhood Chain and Arc, with each vault’s pool, tokens, range, principal, reward fee and estimated APR. GET /v1/auto-manage/vaults/{chainId}/{vault} returns one vault; /history, /rebalances and /activity return its principal history, range resets and deposit, redemption and claim events. The API reads each vault’s contract when asked and indexes its events; a vault whose live read failed returns its last indexed state, marked as such. Transactions should read the vault and lens contracts directly. ## Observed pool fees Read feePips and the customFee/dynamicFee flags from /v1/pools and pool details. Indexed observations are not live execution quotes. The current public market response does not supply dynamic base/maximum settings. ## Compatibility exceptions The interface temporarily retains compatibility reports for Foundation ownership/allocation/incentive history and ROI, TOPAZ supply/locked shares, public veTOPAZ escrow/power totals and BNB dynamic-fee settings; cumulative volume uses /v1/protocol/volume. These reports have independent timestamps and definitions; they are not combined multichain snapshots. Do not build new market or protocol integrations on /api/stats. See [methodology](https://www.topazdex.com/stats/methodology) for the interface’s current exceptions. ## Deployment and health GET [/v1/deployments](https://api.topazdex.com/v1/deployments), [/v1/health](https://api.topazdex.com/v1/health) and [/v1/health/chains](https://api.topazdex.com/v1/health/chains) expose deployment and service observations. Use /v1/chains feature status before requesting a capability. ## Schema evolution Allow additive fields while validating the values and identities you consume. Re-import generated clients when required fields or semantics change. Methodology versions identify calculations; they do not make incompatible response shapes interchangeable. ## Continue reading [API reference](https://api.topazdex.com/docs) · [OpenAPI](https://api.topazdex.com/openapi.json) · [Stats](https://www.topazdex.com/docs/stats) · [Methodology](https://www.topazdex.com/stats/methodology) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain) ```sh curl https://api.topazdex.com/v1/protocol ``` --- Source: https://www.topazdex.com/docs/agents Agents # AI agents on Topaz Topaz brings AI to DeFi in two ways: the Topaz Agent — a live strategist that reasons about your positions and builds transactions — and the Agent Skill — a static package that teaches any AI agent the full Topaz protocol. ## Agent support and multichain scope The hosted agent service and installable skill are maintained separately from this interface. The published skill covers all five networks and documents xTOPAZ entry and redemption, bridging and spoke voting. Its quote and swap-batch helpers accept all five chain IDs; the remaining helpers and command-line tools target BNB Chain. Check the service's current capabilities and deployed network before using a builder; never substitute BNB addresses or data for a planned spoke. This interface supports xTOPAZ entry, redemption, bridging and spoke voting on the live networks. The hosted agent service and installable skill have their own release capabilities; web support does not activate agent builders. Check the published service manifest and chain-qualified addresses. [Live networks](https://www.topazdex.com/docs/multichain) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain). Carry chain, account, contract, token address, recipient and NFT or local stake ID in every quote and plan. Keep source submission, source confirmation and destination delivery distinct. A transaction hash is not proof that a bridge completed or a destination action succeeded. ## The Topaz Agent The [Topaz Agent](https://agents.topazdex.com) is a live, agentic service that uses multi-step AI reasoning with domain-specific playbooks to analyze pools, recommend liquidity positions, optimize gauge votes, plan bribe campaigns, and build wallet-ready transactions. It is non-custodial — the agent builds calldata, your wallet signs. You can interact with the agent through its web interface or programmatically via REST API, MCP (27 tools), Agent-to-Agent protocol, or ERC-8183 on-chain job submission. * ✓Users who want AI-powered DeFi strategy — LP recommendations, vote optimization, reward claiming, and portfolio analysis. * ✓Protocols planning liquidity campaigns with budget scheduling and APR projections. * ✓AI agents that need to connect programmatically via MCP or A2A for autonomous DeFi operations on Topaz. See the [Topaz Agent](https://www.topazdex.com/docs/agents/topaz-agent) page for capabilities, integration protocols, and the full API reference. ## The Agent Skill The Topaz Agent Skill is a runtime-neutral package — markdown instructions, protocol references, worked examples, evals, and TypeScript helpers — that gives an AI agent the structured context it needs to act on the Topaz protocol. It is a set of files that any agent can read and follow, not a hosted service. The canonical package lives at [github.com/topazdex/agent-skill](https://github.com/topazdex/agent-skill). The site refreshes the skill and manifest from GitHub through an hourly cache, with a complete committed fallback when upstream is unavailable. Local documentation adds deployment context without changing the package release version or its advertised execution capabilities. ℹQuick start The [/agents](https://www.topazdex.com/agents#skill) page has quick start commands, entry-point URLs, and the one-line installer. The docs here provide longer-form guides for specific topics. ## Agent vs. Skill — when to use which | Use case | Use | | --------------------------------------------------------- | --------------- | | Chat about DeFi strategy, get LP/vote recommendations | Topaz Agent | | Build a trading bot, dashboard copilot, or automation | Topaz Agent API | | Connect your own AI agent to Topaz via MCP or A2A | Topaz Agent MCP | | Teach Claude Code / Cursor / Hermes the Topaz protocol | Agent Skill | | Build an agent that understands Topaz from scratch | Agent Skill | | Add Topaz context to project instructions or agent memory | Agent Skill | ## Skill loading options The skill is designed to plug into whatever loading mechanism your agent supports. Pick the one that matches. * ✓Read from URL — best for browser agents, chat agents, or anything with a web-fetch tool. Point at [www.topazdex.com/skill.md](https://www.topazdex.com/skill.md) and you're done. * ✓Clone the full package — best for coding agents and CLI agents. Includes references, examples, scripts, and TypeScript helpers. * ✓Copy into a native skill system — for agents with their own skill, rule, or memory concept, drop the package in and point at the repo for support files. The [Runtimes & Install](https://www.topazdex.com/docs/agents/runtimes) page walks through each of these per runtime with the exact commands and prompt templates. ## Safety, by default Both the Topaz Agent and the agent skill are designed so agents quote, explain, build, and simulate by default — and only broadcast transactions when the user explicitly asks and signing credentials are configured. Every output is labeled so the user always knows whether anything actually moved. The full safety model — including output labels and when each is appropriate — is on the [Safety Model](https://www.topazdex.com/docs/agents/safety) page. ## Continue reading [Topaz Agent →Live strategist — capabilities, integration protocols, and API reference.](https://www.topazdex.com/docs/agents/topaz-agent)[Runtimes & Install →Per-runtime install paths, prompts, and the auto-detect installer.](https://www.topazdex.com/docs/agents/runtimes)[Capabilities →Example prompts grouped by workflow — quote, swap, vote, claim, lock.](https://www.topazdex.com/docs/agents/capabilities)[Safety Model →The four output labels, when broadcasting is OK, and how to enforce read-only.](https://www.topazdex.com/docs/agents/safety) --- Source: https://www.topazdex.com/docs/agents/runtimes Agents # Runtimes & Install The Topaz agent skill is runtime-neutral — every agent loads context a little differently. This page lists the three loading patterns, the conventional install paths per runtime, and the prompt templates that work. ## Agent support and multichain scope The hosted agent service and installable skill are maintained separately from this interface. The published skill covers all five networks and documents xTOPAZ entry and redemption, bridging and spoke voting. Its quote and swap-batch helpers accept all five chain IDs; the remaining helpers and command-line tools target BNB Chain. Check the service's current capabilities and deployed network before using a builder; never substitute BNB addresses or data for a planned spoke. This interface supports xTOPAZ entry, redemption, bridging and spoke voting on the live networks. The hosted agent service and installable skill have their own release capabilities; web support does not activate agent builders. Check the published service manifest and chain-qualified addresses. [Live networks](https://www.topazdex.com/docs/multichain) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain). Carry chain, account, contract, token address, recipient and NFT or local stake ID in every quote and plan. Keep source submission, source confirmation and destination delivery distinct. A transaction hash is not proof that a bridge completed or a destination action succeeded. ## Pick a loading pattern Three patterns cover essentially every agent runtime that exists today: | Pattern | Source | Best for | | -------------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------- | | Read from URL | https://www.topazdex.com/skill.md | Best for browser agents, chat agents, and anything with a web-fetch tool. | | Clone the repo | github.com/topazdex/agent-skill | Best for coding agents and CLI agents. Includes references, examples, evals, and TypeScript helpers. | | Native skill / rules | /skills/topaz | For agents with their own skill, rule, or memory system — copy in and point at the repo for support files. | ## Conventional install locations If you want the skill on disk for an agent that reads from a well-known directory, these are the conventions per runtime. They are not requirements — any path works, as long as you point the agent at it. | Runtime | Location | | --------------------------------- | ---------------------------------------------- | | Claude Code (user-wide) | \~/.claude/skills/topaz | | Claude Code (project-local) | /.claude/skills/topaz | | OpenCode | \~/.config/opencode/skills/topaz | | Hermes | \~/.hermes/skills/defi/topaz | | Codex / Cursor / Continue / Aider | any path — reference it explicitly | | Browser-only agents | https://www.topazdex.com/skill.md (no install) | ## One-line installer The repo ships an installer that auto-detects an existing agent skills directory and installs there. Detection order: 1. `~/.claude/skills/` exists → `~/.claude/skills/topaz` 2. `~/.config/opencode/skills/` exists → `~/.config/opencode/skills/topaz` 3. `~/.hermes/skills/` exists → `~/.hermes/skills/defi/topaz` 4. None of the above → fallback to `~/.local/share/topaz-skill` (installer prints a notice asking you to wire the agent at that path) The installer prints its chosen destination and the reason before cloning. Pass an explicit path to override detection. bash ``` # auto-detect destination curl -fsSL https://raw.githubusercontent.com/topazdex/agent-skill/main/install.sh | bash # explicit path curl -fsSL https://raw.githubusercontent.com/topazdex/agent-skill/main/install.sh \ | bash -s -- ~/some/other/path ``` ## Manual install via git Equivalent to the installer if you prefer to clone manually. bash ``` git clone https://github.com/topazdex/agent-skill.git cd /scripts cp .env.example .env # set BSC_RPC_URL; PRIVATE_KEY only needed for writes yarn install --immutable yarn validate && yarn smoke ``` ℹVerifying the install `yarn smoke` does a live read against BSC mainnet and confirms the helpers, ABIs, and subgraph queries work end-to-end. It requires `BSC_RPC_URL` in `scripts/.env`; no private key is needed for reads. ## Prompt templates Generic prompts that work across runtimes. Adapt the wording to your agent's conventions if it prefers a specific style. ### URL-reading agents ``` Read the official Topaz DEX agent skill at https://www.topazdex.com/skill.md and follow it when working with Topaz DEX swaps, pools, gauges, bribes, veNFTs, rewards, quotes, routes, or integrations. ``` ### Git-capable coding agents ``` Clone https://github.com/topazdex/agent-skill and follow SKILL.md. Use references, examples, and scripts from the cloned repo when available. ``` ### Claude Code ``` Read https://www.topazdex.com/skill.md. If more detail is needed, clone https://github.com/topazdex/agent-skill into ~/.claude/skills/topaz (or .claude/skills/topaz for project-local) and follow SKILL.md as guidance for Topaz DEX tasks. ``` ### Codex / Cursor / Continue / generic ``` Use https://www.topazdex.com/skill.md as the Topaz DEX protocol guide. For full references and scripts, clone https://github.com/topazdex/agent-skill. ``` ## Updating an installed skill If you cloned the repo: bash ``` git -C pull --ff-only # or the wrapper: bash /update.sh # check if an update is available without applying it cd && bash tools/check_update.sh # exit 0 = up to date, 10 = update available ``` Agents that loaded the skill from a URL can refetch or compare their installed version against . ## Continue reading [Capabilities →Once installed, what to ask the agent to do — workflow recipes and prompts.](https://www.topazdex.com/docs/agents/capabilities)[Safety Model →Understand the four output labels and broadcasting consent.](https://www.topazdex.com/docs/agents/safety) --- Source: https://www.topazdex.com/docs/agents/capabilities Agents # Capabilities These are example workflows for the Topaz skill’s BNB integration. Each recipe needs current deployment data and provider support. The skill's own guides cover xTOPAZ vault entry, bridging and spoke voting; check its helpers' chain support before building a spoke transaction. ## Agent support and multichain scope The hosted agent service and installable skill are maintained separately from this interface. The published skill covers all five networks and documents xTOPAZ entry and redemption, bridging and spoke voting. Its quote and swap-batch helpers accept all five chain IDs; the remaining helpers and command-line tools target BNB Chain. Check the service's current capabilities and deployed network before using a builder; never substitute BNB addresses or data for a planned spoke. This interface supports xTOPAZ entry, redemption, bridging and spoke voting on the live networks. The hosted agent service and installable skill have their own release capabilities; web support does not activate agent builders. Check the published service manifest and chain-qualified addresses. [Live networks](https://www.topazdex.com/docs/multichain) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain). Carry chain, account, contract, token address, recipient and NFT or local stake ID in every quote and plan. Keep source submission, source confirmation and destination delivery distinct. A transaction hash is not proof that a bridge completed or a destination action succeeded. ℹOutput is labeled, not broadcast Every agent response is labeled — `quote`, `built calldata`, `approval-needed`, or `broadcast tx-hash`. Nothing moves on-chain unless you explicitly ask and signing credentials are configured. See the [Safety Model](https://www.topazdex.com/docs/agents/safety) for the full contract. ## Quoting & swapping The skill knows how to quote v2 volatile, v2 stable, v3 concentrated, and mixed-route swaps, with slippage modeling. ### Quote a swap ``` Quote a swap of 5 WBNB into USDT on Topaz. Show the best route, expected output, price impact, and the per-pool fees you'd pay. ``` ### Build swap calldata ``` Build wallet-ready calldata for the swap above with 0.5% slippage tolerance, valid for 20 minutes. Don't broadcast. ``` ### Explain a route ``` Why did Topaz route this swap through three pools instead of the direct WBNB/USDT pool? Walk me through the fee and liquidity math. ``` Protocol mechanics: [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps). ## Liquidity (v2 LP and v3 NFT positions) ### Open a v2 LP position ``` Add 1000 USDT and the equivalent WBNB into the USDT/WBNB volatile pool on Topaz. Quote, build, don't broadcast. ``` ### Mint a concentrated (v3) position ``` Mint a Slipstream concentrated-liquidity position in the USDT/WBNB pool covering the ±5% range around current price. Use 0.05% fee tier. Quote and build. ``` ### Inspect existing positions ``` Show me every Topaz LP and CL position my wallet holds, with current value, fee earnings, and whether each one is in range. ``` Protocol mechanics: [Providing Liquidity](https://www.topazdex.com/docs/liquidity) · [Concentrated Positions](https://www.topazdex.com/docs/liquidity/concentrated). ## Gauges, voting & veTOPAZ ### Lock TOPAZ to mint a veNFT ``` Lock 10,000 TOPAZ for the maximum duration to mint a veTOPAZ NFT. Quote and build the lock transaction. ``` ### Vote with a veNFT ``` I want to vote my veNFT (id 1234) 60% on USDT/WBNB and 40% on TOPAZ/WBNB. Build the vote transaction. ``` ### Inspect gauge APRs and bribes ```text Compare BNB gauges for the current epoch. Keep LP Fee APR, LP Emissions APR and voter fees plus incentives separate. Show source timestamps and how adding my vote changes my estimated share. Do not sum all three as one return. ``` Protocol mechanics: [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz) · [Gauge Voting](https://www.topazdex.com/docs/gauges) · [Incentives (Bribes)](https://www.topazdex.com/docs/voting/incentives). ## Bribes & reward claims ### Post a bribe / incentive ``` I want to incentivize voters of the USDT/WBNB gauge with 5000 USDT for next epoch. Build the bribe transaction. ``` ### Claim everything claimable ``` For my wallet, claim all unclaimed: gauge emissions on my LP/CL positions, voter trading-fee rewards, voter bribes, and any veTOPAZ rebase. Build the transactions. ``` Protocol mechanics: [Incentives (Bribes)](https://www.topazdex.com/docs/voting/incentives). ## Reading protocol state ### Pool stats ``` Show me the current TVL, 24h volume, fee revenue, and emissions for the USDT/WBNB pool on Topaz, both v2 and v3 sides. ``` ### Wallet portfolio ``` Give me a complete Topaz portfolio for my wallet: veTOPAZ locks, LP/CL positions, current claimable rewards, and total estimated APR. ``` ### Protocol-wide analytics ``` Compare the last 4 epochs on Topaz: total emissions, total bribes offered, average voter APR, and any new gauges that were added. ``` ## Integration / building on top The skill is also the right starting point for agents that help developers integrate Topaz. The prompts below assume the agent has access to your codebase. ### Quote widget for a dapp ``` Add a Topaz swap quote widget to this dapp. It should quote any pair via Topaz, show the route and price impact, and let the user click through to www.topazdex.com to execute. Don't build a wallet integration. ``` ### Diagnose a failing swap ``` This Topaz swap is reverting on-chain (tx hash 0x...). Tell me what's wrong: bad slippage, missing approval, path that doesn't exist, or something else. ``` See also the protocol-level [Integration Guide](https://www.topazdex.com/docs/developers/integration) for the underlying contracts and subgraph. ## Continue reading [Safety Model →Understand what the output labels mean and when broadcasting is appropriate.](https://www.topazdex.com/docs/agents/safety)[Runtimes & Install →Set up the skill in your specific runtime before running these prompts.](https://www.topazdex.com/docs/agents/runtimes) --- Source: https://www.topazdex.com/docs/agents/safety Agents # Safety Model DeFi mistakes are expensive and irreversible. The Topaz skill is engineered so an agent quotes, explains, builds, and simulates by default — and only moves funds when the user has explicitly authorized the move and signing credentials are configured. ## Agent support and multichain scope The hosted agent service and installable skill are maintained separately from this interface. The published skill covers all five networks and documents xTOPAZ entry and redemption, bridging and spoke voting. Its quote and swap-batch helpers accept all five chain IDs; the remaining helpers and command-line tools target BNB Chain. Check the service's current capabilities and deployed network before using a builder; never substitute BNB addresses or data for a planned spoke. This interface supports xTOPAZ entry, redemption, bridging and spoke voting on the live networks. The hosted agent service and installable skill have their own release capabilities; web support does not activate agent builders. Check the published service manifest and chain-qualified addresses. [Live networks](https://www.topazdex.com/docs/multichain) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain). Carry chain, account, contract, token address, recipient and NFT or local stake ID in every quote and plan. Keep source submission, source confirmation and destination delivery distinct. A transaction hash is not proof that a bridge completed or a destination action succeeded. ## Default posture * ✓Quote before building — the agent always returns a quote first, with route, price impact, and slippage assumptions visible. * ✓Build without broadcasting — transaction calldata is generated wallet-ready but not submitted unless the user explicitly says "broadcast." * ✓Surface approvals explicitly — if an allowance or veNFT delegation is required, the agent raises it as a separate step, not a silent precondition. * ✓Label every output — the user always knows whether they're looking at a read, a built transaction, an approval requirement, or a broadcast result. ## The four output labels Every agent response carries one of four labels. The label tells you exactly how much has happened. | Label | Access | What it means | | ----------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | quote | read-only | Price, route, or state preview. Nothing on-chain. Re-runs are free. | | built calldata | wallet-ready, not submitted | A transaction object ready for the user's wallet. Not broadcast. Re-runs may produce identical or refreshed calldata. | | approval-needed | precondition | Allowance or veNFT delegation must happen before the next step. The agent should show what needs approving and why. | | broadcast tx-hash | on-chain | Only produced after explicit user authorization AND configured signing credentials. The response includes the transaction hash so the user can verify. | ## When broadcasting is appropriate Broadcasting requires two conditions, both of which must be true: 1. The user has explicitly asked the agent to broadcast — not merely "swap" or "do it," but a clear instruction to submit to the chain. 2. Signing credentials are configured in the agent's environment (e.g. `PRIVATE_KEY` in `scripts/.env` for the bundled helpers, or the runtime's wallet integration). ⚠Ambiguous requests stop at calldata If the user says "swap 5 WBNB for USDT", the right behavior is to quote and build, then ask whether to broadcast. Implicit broadcast is never correct. ## Slippage & approvals ### Slippage The agent must report assumed slippage in every quote and built calldata response. The default is conservative (typically 0.5%); users can override per-call. If the user requests an unusually loose tolerance, the agent should flag the risk (sandwich exposure) before building. ### Approvals ERC-20 swaps and LP deposits require token allowances. veNFT voting and managed locks require veNFT approval to the right contract. The agent should: * ✓Check current allowance / approval before building. * ✓Surface needed approvals as `approval-needed` outputs separate from the swap calldata. * ✓Prefer exact-amount approvals over infinite allowance, and flag if the user explicitly asks for infinite approval. ## Enforcing read-only mode For environments that must never broadcast (CI checks, analytics agents, public-facing copilots), enforce read-only at the environment level: bash ``` # don't expose any signing credential unset PRIVATE_KEY # verify with the bundled smoke test, which only does reads cd /scripts && yarn smoke ``` Without signing credentials configured, the skill cannot produce a `broadcast tx-hash` output regardless of what the user asks. The worst it can do is build calldata — which the user still has to take to a wallet themselves. ## What the agent should never do * ✓Broadcast a transaction the user didn't explicitly authorize, even if context strongly implies they want it. * ✓Silently widen slippage tolerance to make a transaction succeed. * ✓Combine multiple operations (e.g. approve + swap + claim) into a single "just do it" flow without labeling each step. * ✓Use private keys, mnemonics, or session tokens that weren't supplied through a configured signing path. * ✓Move user funds to any address other than what the user has named in the request. ## Reporting unsafe behavior If an agent using the Topaz skill behaves unsafely — broadcasts without consent, silently widens slippage, mishandles approvals — open an issue at [github.com/topazdex/agent-skill/issues](https://github.com/topazdex/agent-skill/issues) with the prompt, the response, and the runtime. Safety bugs are the highest-priority issues we accept. ## Continue reading [Capabilities →Example prompts grouped by workflow — see safety in context.](https://www.topazdex.com/docs/agents/capabilities)[Runtimes & Install →Where the skill lives in each agent environment.](https://www.topazdex.com/docs/agents/runtimes) --- Source: https://www.topazdex.com/docs/agents/topaz-agent Agents # Topaz Agent A live, agentic DeFi strategist purpose-built for the Topaz protocol on BNB Chain. It reasons about pools, positions, and voting strategies — then builds wallet-ready transactions. Non-custodial: the agent builds calldata, your wallet signs. ## Agent support and multichain scope The hosted agent service and installable skill are maintained separately from this interface. The published skill covers all five networks and documents xTOPAZ entry and redemption, bridging and spoke voting. Its quote and swap-batch helpers accept all five chain IDs; the remaining helpers and command-line tools target BNB Chain. Check the service's current capabilities and deployed network before using a builder; never substitute BNB addresses or data for a planned spoke. This interface supports xTOPAZ entry, redemption, bridging and spoke voting on the live networks. The hosted agent service and installable skill have their own release capabilities; web support does not activate agent builders. Check the published service manifest and chain-qualified addresses. [Live networks](https://www.topazdex.com/docs/multichain) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain). Carry chain, account, contract, token address, recipient and NFT or local stake ID in every quote and plan. Keep source submission, source confirmation and destination delivery distinct. A transaction hash is not proof that a bridge completed or a destination action succeeded. ## What it is The Topaz Agent is a hosted service at [agents.topazdex.com](https://agents.topazdex.com) that combines multi-step AI reasoning with deep protocol knowledge to act as your DeFi strategist on Topaz DEX. Unlike the [agent skill](https://www.topazdex.com/docs/agents) (a static package you install into your own agent), the Topaz Agent is a running service you interact with directly. It is registered on-chain as Agent ID 113284 via the ERC-8004 on-chain agent registry and implements ERC-8183 for structured job handling. ℹNon-custodial by design The Topaz Agent never holds private keys, never signs transactions, and never broadcasts unless you explicitly authorize it with configured signing credentials. Every interaction produces labeled outputs so you always know whether anything moved on-chain. ## How to use it ### Web chat Visit [agents.topazdex.com](https://agents.topazdex.com) and start a conversation in natural language. The agent supports multi-step tool calling — it will reason through your request, fetch live protocol data, and present its analysis with actionable recommendations. Example prompts to try: * ✓"Where should I LP $1,000 in stablecoins?" * ✓"What's the best swap route for 10 BNB to USDT?" * ✓"How should I vote with my veNFT this epoch?" * ✓"Show me the top pools by APR right now" * ✓"Build a bribe campaign for the WBNB/TOPAZ gauge" * ✓"Claim all my pending rewards" ### REST API Every capability is accessible via standard HTTP endpoints. Use the OpenAPI spec for full request/response schemas. bash ``` # Get a swap quote curl -X POST https://agents.topazdex.com/api/swap/quote \ -H "Content-Type: application/json" \ -d '{"tokenIn": "WBNB", "tokenOut": "USDT", "amount": "1"}' # Get LP recommendations curl -X POST https://agents.topazdex.com/api/lp/recommend \ -H "Content-Type: application/json" \ -d '{"risk": "medium", "budget": "1000"}' # Chat via API curl -X POST https://agents.topazdex.com/api/chat \ -H "Content-Type: application/json" \ -d '{"message": "What are the top gauges this epoch?"}' ``` ## Capabilities The agent exposes 15 registered capabilities grouped by workflow. Each capability can be accessed via chat, REST API, or MCP tools. ### Swaps | Tool | Endpoint | What it does | | ------------------ | --------------- | ------------------------------------------------------------------------------- | | swap.quote | /api/swap/quote | Best route across v2 + v3 pools with price impact and slippage estimates. | | swap.build | /api/swap/build | Wallet-ready calldata for the quoted route. Returns unsigned transaction bytes. | | route.alternatives | /api/swap/quote | Side-by-side v2 vs v3 route comparison with gas estimates. | ### Liquidity | Tool | Endpoint | What it does | | ------------ | ----------------- | ---------------------------------------------------------------------------- | | lp.recommend | /api/lp/recommend | Risk-scored position recommendations with TVL floors and APR cap guardrails. | | lp.build | /api/lp/build | Build LP calldata — addLiquidity for v2, mint for v3 CL positions. | ### Voting & veTOPAZ | Tool | Endpoint | What it does | | ---------------- | --------------------- | ------------------------------------------------------------------------------------ | | vote.recommend | /api/vote/recommend | Gauge allocation optimization — max-yield, support-protocol, or balanced strategies. | | vote.build | /api/vote/build | Build Voter.vote() calldata for your veNFT allocation. | | vote.eligibility | /api/vote/eligibility | Check if a veNFT can vote this epoch (cooldown, already voted, etc.). | ### Bribes & rewards | Tool | Endpoint | What it does | | ------------------- | ------------------------ | -------------------------------------------------------------------------- | | bribe.recommend | /api/bribe/recommend | Campaign planning with budget, duration, and projected APR impact. | | bribe.build | /api/bribe/build | Build bribe deposit calldata for a target gauge. | | rewards.build-claim | /api/rewards/build-claim | Claim emissions, trading fees, bribes, and rebase in a single transaction. | ### Analytics & strategy | Tool | Endpoint | What it does | | ----------------------- | -------------------- | ---------------------------------------------------------------------- | | strategy.weekly\_report | /api/strategy/weekly | Comprehensive epoch report — protocol state, top pools, opportunities. | | pool.lookup | /api/pools/top | Find pools for a token pair, ranked by TVL, volume, fees, or APR. | | pool.compare | /api/pools/top | Compare v2 vs v3 pool types for a given pair. | ## Integration protocols The Topaz Agent exposes four integration surfaces. Choose the one that matches your use case. ### OpenAPI (REST) Standard REST API with a full OpenAPI 3.0 spec. Works with any HTTP client, Postman, SDK generators, or automation platforms. | Detail | Value | | --------- | ---------------------------------------- | | Spec | https://agents.topazdex.com/openapi.json | | Base URL | https://agents.topazdex.com | | Auth | None (public read endpoints) | ### MCP (Model Context Protocol) 27 tools exposed via JSON-RPC 2.0 following MCP protocol version 2024-11-05\. Any MCP-compatible AI agent can connect directly and call tools programmatically. | Detail | Value | | --------- | ------------------------------- | | Endpoint | https://agents.topazdex.com/mcp | | Protocol | JSON-RPC 2.0 (MCP 2024-11-05) | | Tools | 27 | json ``` { "mcpServers": { "topaz-agent": { "url": "https://agents.topazdex.com/mcp" } } } ``` ### Agent-to-Agent (A2A) Discovery card for autonomous agent-to-agent communication following the A2A protocol. Other agents can discover the Topaz Agent's capabilities and delegate tasks to it. | Detail | Value | | ---------- | ------------------------------------------------------- | | Agent card | https://agents.topazdex.com/.well-known/agent-card.json | | Skills | 10 registered skills | ### ERC-8183 (on-chain jobs) Structured job submission for use cases like liquidity campaign planning, weekly voting reports, LP rebalancing analysis, and token listing evaluations. | Detail | Value | | --------------- | ---------------------------------------------------- | | Submit job | https://agents.topazdex.com/erc8183/jobs | | Get deliverable | https://agents.topazdex.com/erc8183/deliverables/:id | | Agent ID | 113284 (ERC-8004) | ## Safety model The Topaz Agent shares the same safety-by-default model as the agent skill. Every response follows a structured schema with a `kind` field indicating its nature. * ✓quote — read-only price or route preview, nothing on-chain. * ✓recommendation — analysis with confidence levels and risk disclosure. * ✓built\_calldata — unsigned transaction bytes ready for your wallet. * ✓approval\_needed — token allowance or delegation required before proceeding. ⚠Guardrails The agent enforces LP recommendation guardrails including TVL floors and APR caps to avoid directing users toward unsustainable yield traps. All recommendations include mandatory confidence levels and a risk disclosure section. For the full safety model including broadcast authorization rules and read-only mode, see the [Safety Model](https://www.topazdex.com/docs/agents/safety) page. ## API reference Key endpoints for programmatic access. See the [full OpenAPI spec](https://agents.topazdex.com/openapi.json) for complete request/response schemas. ### General | Endpoint | Purpose | | --------------- | ------------------------------------------------------------- | | GET /health | Health check | | GET /status | Live protocol stats (TVL, volume, pools, gauges, token price) | | GET /agent.json | Agent identity and capabilities | | GET /version | Component versions | | GET /changelog | Release history | ### Chat | Endpoint | Action | Details | | -------------- | --------------------- | -------------------------------------------------------------------------------------- | | POST /api/chat | Natural language chat | Accepts message (string) and optional sessionId. Returns AI reasoning with tool calls. | ### Swaps | Endpoint | Action | Details | | -------------------- | ------------------- | -------------------------------------------------------- | | POST /api/swap/quote | Get best swap quote | Finds optimal route across v2 + v3 pools. | | POST /api/swap/build | Build swap calldata | Returns unsigned transaction bytes for the quoted route. | ### Liquidity | Endpoint | Action | Details | | ---------------------- | ------------------ | ----------------------------------------------------- | | POST /api/lp/recommend | LP recommendations | Risk-scored position suggestions (low, medium, high). | | GET /api/pools/top | Top pools | Ranked by TVL, volume, fees, or APR. | ### Voting | Endpoint | Action | Details | | ------------------------ | -------------------- | -------------------------------------------------- | | POST /api/vote/recommend | Vote recommendations | Strategies: max-yield, support-protocol, balanced. | | POST /api/vote/build | Build vote calldata | Voter.vote() calldata for gauge allocation. | | GET /api/gauges/top | Top gauges | Active gauges with full APR breakdown. | ### Bribes & rewards | Endpoint | Action | Details | | ----------------------------- | -------------------- | ------------------------------------------------- | | POST /api/bribe/recommend | Campaign planning | Budget, duration, and projected APR impact. | | POST /api/bribe/build | Build bribe calldata | Deposit incentive transaction for a target gauge. | | POST /api/rewards/build-claim | Build claim calldata | Emissions, fees, bribes, and rebase in one tx. | ### Strategy | Endpoint | Action | Details | | ------------------------ | ------------------- | -------------------------------------------------- | | GET /api/strategy/weekly | Weekly epoch report | Comprehensive protocol analysis and opportunities. | ## Continue reading [Try the Topaz Agent →Open the web interface and start chatting with the agent.](https://agents.topazdex.com)[Agent Skill overview →Install the skill to teach your own AI agent the Topaz protocol.](https://www.topazdex.com/docs/agents)[Safety Model →Output labels, broadcast rules, and read-only enforcement.](https://www.topazdex.com/docs/agents/safety)[Capabilities →Full list of protocol workflows available via agents.](https://www.topazdex.com/docs/agents/capabilities) --- Source: https://www.topazdex.com/docs/contracts Protocol # Contracts Topaz is live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. This address book lists the deployed hub, spoke and interface contracts by network. The original BNB core sections retain their links; complete network tables follow. Verify the network and contract role before using an address. ## Multichain deployment status **Updated September 15, 2026.** Topaz DEX, xTOPAZ bridging and voting are live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. xTOPAZ entry and redemption use the BNB vault. Each table below identifies its network; identical addresses on different networks are separate deployments. The hub extension includes XTopaz, VeTopazVault, WrapRouter, a system-gauge strategy, EpochCoordinator and XTopazOFTAdapter. Each spoke has its own DEX contracts, XTopazOFT, XTopazVotingVault, SpokeEmissionReceiver and composers. [Multichain contract groups](https://www.topazdex.com/docs/developers/multichain). Each network table includes its DEX, token, bridge, voting and interface infrastructure. Contract-only composers and the xTOPAZ zap are identified separately from the actions exposed in the app. Per-pool and gauge instances are available through chain-qualified Explore and API records. [Networks and availability](https://www.topazdex.com/docs/multichain). ## Core Token & ve(3,3) The TOPAZ token, vote-escrow NFT, weekly emission engine, and the rewards plumbing that pays trading fees and bribes back to voters. | Contract | Address | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | Topaz (TOPAZ)The protocol token. 500M initial supply, then weekly emissions per the schedule on the Tokenomics page. | [0xdf002282C1474C9592780618Adda7EaA99998Abd](https://bscscan.com/address/0xdf002282C1474C9592780618Adda7EaA99998Abd) | | VotingEscrow (veTOPAZ)Vote-escrowed NFT. Lock TOPAZ here to mint a veTOPAZ position with voting power. | [0xe951aC65EFE86682311ab0d8995E7A58750c5eB3](https://bscscan.com/address/0xe951aC65EFE86682311ab0d8995E7A58750c5eB3) | | BonusLockLocking bonus program: deposits TOPAZ into a new permanent veTOPAZ position and adds the current tier’s bonus. Offered inside the lock creation page. | [0x441b05ba4f466a572949032C6284be7DBa65a545](https://bscscan.com/address/0x441b05ba4f466a572949032C6284be7DBa65a545) | | VoterRoutes votes to gauges, distributes emissions, and aggregates fee + bribe claims. | [0x2F80F810a114223AC69E34E84E735CaD515dAD67](https://bscscan.com/address/0x2F80F810a114223AC69E34E84E735CaD515dAD67) | | MinterMints weekly TOPAZ emissions and rebases for veTOPAZ holders. | [0x606794d37991A426a189fD9FA8664D339A77f8ae](https://bscscan.com/address/0x606794d37991A426a189fD9FA8664D339A77f8ae) | | RewardsDistributorDistributes rebases to veTOPAZ holders each epoch. | [0x85e15e7Ad4f20d5ca3A1104B1c2CcE72f5F683dB](https://bscscan.com/address/0x85e15e7Ad4f20d5ca3A1104B1c2CcE72f5F683dB) | | VeArtProxyGenerates the on-chain art for veTOPAZ NFTs. | [0x9612305fe63DFb84Da8f6d6261169F6B85026601](https://bscscan.com/address/0x9612305fe63DFb84Da8f6d6261169F6B85026601) | ## Governance & Administration On-chain governance for protocol parameters and epoch-level changes, plus the multisig that currently holds the administrative roles. See the governance page for the full role map. | Contract | Address | | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | | Protocol multisig (2-of-3)Gnosis Safe holding the protocol's administrative roles, bounded by the immutable caps described on the Security page. | [0xF407739E81574A3C9A3195bCb85eE694C94e540c](https://bscscan.com/address/0xF407739E81574A3C9A3195bCb85eE694C94e540c) | | ProtocolGovernorTop-level governance for protocol parameter changes. Deployed and reading veTOPAZ voting power as on-chain governance activates. | [0xbBCdCd30066cF25708F4A0aB9d9149D32Ea4C401](https://bscscan.com/address/0xbBCdCd30066cF25708F4A0aB9d9149D32Ea4C401) | | EpochGovernorPer-epoch governance: tail emission rate adjustments and similar epoch-scoped votes. Dormant until tail emissions begin. | [0xbae5585Afb875A45292470078aa4D4A261749084](https://bscscan.com/address/0xbae5585Afb875A45292470078aa4D4A261749084) | ## AMM (v2-style) Constant-product pools and the router that swaps through them. Used for stable and volatile pairs. | Contract | Address | | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | RouterMulti-hop swap router for v2-style pools. | [0x1E98c8226e7d452e1888e3d3d2F929346321c6c3](https://bscscan.com/address/0x1E98c8226e7d452e1888e3d3d2F929346321c6c3) | | PoolFactoryDeploys new v2-style pools. | [0x65E6cD0eF5D3467030103cf3d433034E570b5784](https://bscscan.com/address/0x65E6cD0eF5D3467030103cf3d433034E570b5784) | | Pool (implementation)Implementation contract cloned by PoolFactory for each new pair. | [0xdC942D8e37cC20BCf9aD1Fe0111eE6c5908f3678](https://bscscan.com/address/0xdC942D8e37cC20BCf9aD1Fe0111eE6c5908f3678) | ## Slipstream (Concentrated Liquidity) Concentrated-liquidity pools with dynamic and custom fee modules. NFT-based positions managed by the position manager. | Contract | Address | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | CLFactoryDeploys new concentrated-liquidity pools. | [0x73DC984D9490286E735548f61dfCCec67Af82ed9](https://bscscan.com/address/0x73DC984D9490286E735548f61dfCCec67Af82ed9) | | CLPool (implementation)Implementation contract cloned for each concentrated pool. | [0x18e68051d1b1fB44cb539cA4436F112D28577AF7](https://bscscan.com/address/0x18e68051d1b1fB44cb539cA4436F112D28577AF7) | | CLGauge (implementation)Implementation contract cloned for each concentrated-pool gauge. | [0xc2f777a2e9f54f195212a5a2d394399252958b97](https://bscscan.com/address/0xc2f777a2e9f54f195212a5a2d394399252958b97) | | CLGaugeFactoryDeploys gauges for concentrated-liquidity pools. | [0xeD2ED418f104E18B1D11eA5C26236A1caa675839](https://bscscan.com/address/0xeD2ED418f104E18B1D11eA5C26236A1caa675839) | | NonfungiblePositionManagerMints and manages the NFT that represents a concentrated-liquidity position. | [0xf8c30c3C362941C23025f2eA30B066A73C982f63](https://bscscan.com/address/0xf8c30c3C362941C23025f2eA30B066A73C982f63) | | SwapRouterMulti-hop swap router for concentrated pools. | [0x9B63CA87919617d042A89663492dB3c8686e0CaE](https://bscscan.com/address/0x9B63CA87919617d042A89663492dB3c8686e0CaE) | | QuoterV2Off-chain swap quoting for concentrated pools. | [0x7CCB89bB9BdEF68688F39a2c22d249fD1D9759f1](https://bscscan.com/address/0x7CCB89bB9BdEF68688F39a2c22d249fD1D9759f1) | | MixedRouteQuoterV1Quoter that supports mixed v2 + concentrated routes. | [0x47c3570b90e7234FE695Ad5F1bE69E21fe1a9ee2](https://bscscan.com/address/0x47c3570b90e7234FE695Ad5F1bE69E21fe1a9ee2) | | DynamicSwapFeeModuleThe swap fee module the CLFactory currently routes through. Resolves each pool's base fee and adds a volatility surcharge when spot diverges from TWAP. | [0x656cf5d2f1A70177E011e2c27DeafBeE4C7B0541](https://bscscan.com/address/0x656cf5d2f1A70177E011e2c27DeafBeE4C7B0541) | | CustomSwapFeeModuleStandalone per-pool swap fee override module, deployed as an alternative to DynamicSwapFeeModule. Not the module the CLFactory routes through today. | [0xA0462a52af4f8cbF7766Efbba75355B30b6BCCe2](https://bscscan.com/address/0xA0462a52af4f8cbF7766Efbba75355B30b6BCCe2) | | CustomUnstakedFeeModuleCustom fee overrides for liquidity that is not staked in a gauge. | [0x3bad7F96cd1b51CE86e12C42541Ac7d559A78582](https://bscscan.com/address/0x3bad7F96cd1b51CE86e12C42541Ac7d559A78582) | ## Factories & Infrastructure Factory registry, gauge factories, and infrastructure used by the protocol but not typically called directly by users. | Contract | Address | | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | FactoryRegistryRegistry of approved pool, gauge, and rewards factories. | [0x268d1C8a538Ecf6628838C11d581e1EABD13D6A4](https://bscscan.com/address/0x268d1C8a538Ecf6628838C11d581e1EABD13D6A4) | | GaugeFactoryDeploys gauges for v2-style pools. | [0xFc080D1EcD7c332022cebf942AEb62d5E1d4Cb08](https://bscscan.com/address/0xFc080D1EcD7c332022cebf942AEb62d5E1d4Cb08) | | VotingRewardsFactoryDeploys the fee and bribe vaults attached to each gauge. | [0x4C303f7af7b8b05226440e4e12FF9a82F513716c](https://bscscan.com/address/0x4C303f7af7b8b05226440e4e12FF9a82F513716c) | | ManagedRewardsFactoryDeploys managed-veNFT reward contracts. | [0xe4b23F13b24232C1E68AD0575191216152AA9480](https://bscscan.com/address/0xe4b23F13b24232C1E68AD0575191216152AA9480) | | ForwarderEIP-2771 trusted forwarder for meta-transactions. | [0xE79EB7c4D06ff38e6483921DE8e85A37eC7c731b](https://bscscan.com/address/0xE79EB7c4D06ff38e6483921DE8e85A37eC7c731b) | ## Airdrop Distributes airdrop and sacrifice veTOPAZ to locked destination wallets at mainnet launch. | Contract | Address | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | AirdropDistributorDistributes airdrop + sacrifice veTOPAZ to each wallet's locked BNB-Chain destination. | [0x7B1d8745079C85af80Ff7A7eA7C2C4769Eab5348](https://bscscan.com/address/0x7B1d8745079C85af80Ff7A7eA7C2C4769Eab5348) | ℹPer-pool addresses live in the app Topaz will host thousands of pools and gauges over time. The canonical list of every active pool and gauge — plus their fee tiers, TVL, and emission share — is available in Explore and the pool detail pages for each live deployment. ## Additional BNB interface periphery | Contract | BNB address | Purpose | | -------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | CL Zap | [0x475FEe1722e7F56A9d341492A67DB830d3A3A7DE](https://bscscan.com/address/0x475FEe1722e7F56A9d341492A67DB830d3A3A7DE) | Single-token deposits into existing Concentrated pools; a separate feature from the xTOPAZ vault zap | CL Zap is enabled on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Arc uses ERC-20 funding and refunds only. Native and ERC-20 zero-swap deposits were signed on the three spoke forks on September 12, 2026; a Topaz ID zap was confirmed by the user on September 24. Arc wallet acceptance remains open. This contract is separate from XTopazZap. [Liquidity zap scope](https://www.topazdex.com/docs/liquidity/zaps). ## Topaz Auto contracts Topaz Auto is live on BNB Chain, Robinhood Chain and Arc, and planned on Base and Ethereum. Each network has one factory, zap and lens; every vault is an ERC-20 share token created by its factory and listed on the [Topaz Auto overview](https://www.topazdex.com/alm). Vault addresses are published by the factory and the [Auto Manage API](https://api.topazdex.com/v1/auto-manage/vaults). | Network | Contract | Role | Address | | --------------- | --------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | BNB Chain | TopazManagedCLFactory | Creates and lists the network’s Topaz Auto vaults | [0x7bec70E961370385d73B209c95a893e102f6b27a](https://bscscan.com/address/0x7bec70E961370385d73B209c95a893e102f6b27a) | | BNB Chain | TopazManagedCLZap | Single-token deposits into a vault through 0x | [0xAC5707dF3A26A67E37995A03ED2255C95B57CE33](https://bscscan.com/address/0xAC5707dF3A26A67E37995A03ED2255C95B57CE33) | | BNB Chain | TopazManagedCLLens | Read-only vault, range and holder state | [0x50e6a11e2BdF48a8bcb9Fa9b505dfCb10c4C2BBF](https://bscscan.com/address/0x50e6a11e2BdF48a8bcb9Fa9b505dfCb10c4C2BBF) | | Robinhood Chain | TopazManagedCLFactory | Creates and lists the network’s Topaz Auto vaults | [0x94765515D5b86FC46585055790ca17cb3252C079](https://robin.etherscan.io/address/0x94765515D5b86FC46585055790ca17cb3252C079) | | Robinhood Chain | TopazManagedCLZap | Single-token deposits into a vault through 0x | [0x765Ac48e102ebb31F33F82cf9b9C660639E54B9f](https://robin.etherscan.io/address/0x765Ac48e102ebb31F33F82cf9b9C660639E54B9f) | | Robinhood Chain | TopazManagedCLLens | Read-only vault, range and holder state | [0x8fA5f9e073DACa98b0020FC27e13C7c0f959FFC8](https://robin.etherscan.io/address/0x8fA5f9e073DACa98b0020FC27e13C7c0f959FFC8) | | Arc | TopazManagedCLFactory | Creates and lists the network’s Topaz Auto vaults | [0xd791ED4A795F4A8F774cB42873963dd2906E2591](https://arc.etherscan.io/address/0xd791ED4A795F4A8F774cB42873963dd2906E2591) | | Arc | TopazManagedCLZap | Single-token deposits into a vault through 0x | [0xb95CaaCCb808a4d276c2dC32E8B89cC15A10D703](https://arc.etherscan.io/address/0xb95CaaCCb808a4d276c2dC32E8B89cC15A10D703) | | Arc | TopazManagedCLLens | Read-only vault, range and holder state | [0x92582B0cAC1b36a1d6d66B521cF6Bc9a827b95ce](https://arc.etherscan.io/address/0x92582B0cAC1b36a1d6d66B521cF6Bc9a827b95ce) | ## BNB Chain: deployed contracts EVM chain ID `56`; LayerZero V2 endpoint ID `30102`. Hub: canonical TOPAZ, veTOPAZ and xTOPAZ backing. | Contract | Role | Address on BNB Chain | | --------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | EpochCoordinator | Epoch budgets and bridge sends | [0x7A8F5eEDC0136a76Dbffa209f00622074e29C01B](https://bscscan.com/address/0x7A8F5eEDC0136a76Dbffa209f00622074e29C01B) | | FactoryRegistry | Factory Registry | [0x268d1C8a538Ecf6628838C11d581e1EABD13D6A4](https://bscscan.com/address/0x268d1C8a538Ecf6628838C11d581e1EABD13D6A4) | | HubUnwrapComposer | Contract for optional redemption after delivery | [0x64540da4816abf969E7C5c520924dd3d6A5ACb58](https://bscscan.com/address/0x64540da4816abf969E7C5c520924dd3d6A5ACb58) | | Minter | Minter | [0x606794d37991A426a189fD9FA8664D339A77f8ae](https://bscscan.com/address/0x606794d37991A426a189fD9FA8664D339A77f8ae) | | PoolFactory | Pool Factory | [0x65E6cD0eF5D3467030103cf3d433034E570b5784](https://bscscan.com/address/0x65E6cD0eF5D3467030103cf3d433034E570b5784) | | RewardsDistributor | Rewards Distributor | [0x85e15e7Ad4f20d5ca3A1104B1c2CcE72f5F683dB](https://bscscan.com/address/0x85e15e7Ad4f20d5ca3A1104B1c2CcE72f5F683dB) | | Router | Router | [0x1E98c8226e7d452e1888e3d3d2F929346321c6c3](https://bscscan.com/address/0x1E98c8226e7d452e1888e3d3d2F929346321c6c3) | | SystemDummyTokenA | System pool accounting token; not a trading asset | [0xAaFa47d89342EcA6cC3E56273278a5BbBC90c195](https://bscscan.com/address/0xAaFa47d89342EcA6cC3E56273278a5BbBC90c195) | | SystemDummyTokenB | System pool accounting token; not a trading asset | [0x41BF6c044B2B39F68A4d4D54Ec3e2ec46C93114b](https://bscscan.com/address/0x41BF6c044B2B39F68A4d4D54Ec3e2ec46C93114b) | | SystemGauge | Receives the BNB system emission allocation | [0xB12A5E332131091a226a23652418b54F80b2cda9](https://bscscan.com/address/0xB12A5E332131091a226a23652418b54F80b2cda9) | | SystemGaugeFactory | System Gauge Factory | [0x36E9c2d819CBEFc316C400e74185273308D3273c](https://bscscan.com/address/0x36E9c2d819CBEFc316C400e74185273308D3273c) | | SystemGaugeStrategy | Aggregate lock voting and backing strategy | [0x32431D0E4E17868b19850Df9d13c15f8aC090C8f](https://bscscan.com/address/0x32431D0E4E17868b19850Df9d13c15f8aC090C8f) | | SystemPool | System Pool | [0x8b29025838dCBe9098DE563C063233a51B3Dd5A1](https://bscscan.com/address/0x8b29025838dCBe9098DE563C063233a51B3Dd5A1) | | SystemPoolBootstrap | System Pool Bootstrap | [0x84C8c77a894C4992c1F345Bdec7F89Ca7447622F](https://bscscan.com/address/0x84C8c77a894C4992c1F345Bdec7F89Ca7447622F) | | SystemPoolFactory | System Pool Factory | [0x0A0483F8623BFEE18B7f31FE1Ea027367b5Cb15e](https://bscscan.com/address/0x0A0483F8623BFEE18B7f31FE1Ea027367b5Cb15e) | | Topaz | Topaz | [0xdf002282C1474C9592780618Adda7EaA99998Abd](https://bscscan.com/address/0xdf002282C1474C9592780618Adda7EaA99998Abd) | | VeTopazVault | Permanent veTOPAZ backing, entry and redemption | [0x875Acc3f094f10F9a7A8c32C79D509c13A3DE5B8](https://bscscan.com/address/0x875Acc3f094f10F9a7A8c32C79D509c13A3DE5B8) | | Voter | Voter | [0x2F80F810a114223AC69E34E84E735CaD515dAD67](https://bscscan.com/address/0x2F80F810a114223AC69E34E84E735CaD515dAD67) | | VotingEscrow | Voting Escrow | [0xe951aC65EFE86682311ab0d8995E7A58750c5eB3](https://bscscan.com/address/0xe951aC65EFE86682311ab0d8995E7A58750c5eB3) | | VotingRewardsFactory | Voting Rewards Factory | [0x4C303f7af7b8b05226440e4e12FF9a82F513716c](https://bscscan.com/address/0x4C303f7af7b8b05226440e4e12FF9a82F513716c) | | WrapRouter | TOPAZ deposit, NFT wrapping and combined source bridging | [0xB12D10065bcD591D9C9FF2f12B3CBF1d9741D885](https://bscscan.com/address/0xB12D10065bcD591D9C9FF2f12B3CBF1d9741D885) | | XTopaz | Canonical xTOPAZ token | [0xf7aDFfE50D6369eF19dF3aF8d4dDbC15Ace175FD](https://bscscan.com/address/0xf7aDFfE50D6369eF19dF3aF8d4dDbC15Ace175FD) | | XTopazOFTAdapter | Canonical share custody and LayerZero bridge | [0x7947b32E4B30413c83ee3602996eDF97F6093748](https://bscscan.com/address/0x7947b32E4B30413c83ee3602996eDF97F6093748) | | XTopazZap | XTopaz Zap | [0xdA75765e4Eb2D0ebABA24bBb4a4359c88C8C229B](https://bscscan.com/address/0xdA75765e4Eb2D0ebABA24bBb4a4359c88C8C229B) | | UniversalRouter | Topaz swap execution with Permit2 | [0x691e6171e0a434FfE5C9f1759621D05b9efcF6A6](https://bscscan.com/address/0x691e6171e0a434FfE5C9f1759621D05b9efcF6A6) | | Permit2 | Swap token allowance and signature permissions | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://bscscan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | | Multicall3 | Batched read infrastructure | [0xcA11bde05977b3631167028862bE2a173976CA11](https://bscscan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | | CLZap | Single-token Concentrated liquidity deposits | [0x475FEe1722e7F56A9d341492A67DB830d3A3A7DE](https://bscscan.com/address/0x475FEe1722e7F56A9d341492A67DB830d3A3A7DE) | | WrappedNative | Wrapped native gas token | [0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c](https://bscscan.com/address/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c) | | AllowanceHolder | 0x allowance infrastructure used by CL Zap | [0x0000000000001fF3684f28c67538d4D072C22734](https://bscscan.com/address/0x0000000000001fF3684f28c67538d4D072C22734) | | SettlerRegistry | 0x settlement target verification for CL Zap | [0x00000000000004533Fe15556B1E086BB1A72cEae](https://bscscan.com/address/0x00000000000004533Fe15556B1E086BB1A72cEae) | | VeArtProxy | Ve Art Proxy | [0x9612305fe63DFb84Da8f6d6261169F6B85026601](https://bscscan.com/address/0x9612305fe63DFb84Da8f6d6261169F6B85026601) | | ProtocolMultisig | Protocol multisig | [0xF407739E81574A3C9A3195bCb85eE694C94e540c](https://bscscan.com/address/0xF407739E81574A3C9A3195bCb85eE694C94e540c) | | ProtocolGovernor | Protocol Governor | [0xbBCdCd30066cF25708F4A0aB9d9149D32Ea4C401](https://bscscan.com/address/0xbBCdCd30066cF25708F4A0aB9d9149D32Ea4C401) | | EpochGovernor | Epoch Governor | [0xbae5585Afb875A45292470078aa4D4A261749084](https://bscscan.com/address/0xbae5585Afb875A45292470078aa4D4A261749084) | | Pool | V2 pool implementation, not a pair | [0xdC942D8e37cC20BCf9aD1Fe0111eE6c5908f3678](https://bscscan.com/address/0xdC942D8e37cC20BCf9aD1Fe0111eE6c5908f3678) | | CLFactory | CLFactory | [0x73DC984D9490286E735548f61dfCCec67Af82ed9](https://bscscan.com/address/0x73DC984D9490286E735548f61dfCCec67Af82ed9) | | CLPool | Concentrated pool implementation, not a pair | [0x18e68051d1b1fB44cb539cA4436F112D28577AF7](https://bscscan.com/address/0x18e68051d1b1fB44cb539cA4436F112D28577AF7) | | CLGauge | Concentrated gauge implementation, not a pool gauge | [0xc2f777a2e9f54f195212a5a2d394399252958b97](https://bscscan.com/address/0xc2f777a2e9f54f195212a5a2d394399252958b97) | | CLGaugeFactory | CLGauge Factory | [0xeD2ED418f104E18B1D11eA5C26236A1caa675839](https://bscscan.com/address/0xeD2ED418f104E18B1D11eA5C26236A1caa675839) | | NonfungiblePositionManager | Nonfungible Position Manager | [0xf8c30c3C362941C23025f2eA30B066A73C982f63](https://bscscan.com/address/0xf8c30c3C362941C23025f2eA30B066A73C982f63) | | SwapRouter | Swap Router | [0x9B63CA87919617d042A89663492dB3c8686e0CaE](https://bscscan.com/address/0x9B63CA87919617d042A89663492dB3c8686e0CaE) | | QuoterV2 | Quoter V2 | [0x7CCB89bB9BdEF68688F39a2c22d249fD1D9759f1](https://bscscan.com/address/0x7CCB89bB9BdEF68688F39a2c22d249fD1D9759f1) | | MixedRouteQuoterV1 | Mixed Route Quoter V1 | [0x47c3570b90e7234FE695Ad5F1bE69E21fe1a9ee2](https://bscscan.com/address/0x47c3570b90e7234FE695Ad5F1bE69E21fe1a9ee2) | | DynamicSwapFeeModule | Dynamic Swap Fee Module | [0x656cf5d2f1A70177E011e2c27DeafBeE4C7B0541](https://bscscan.com/address/0x656cf5d2f1A70177E011e2c27DeafBeE4C7B0541) | | CustomSwapFeeModule | Custom Swap Fee Module | [0xA0462a52af4f8cbF7766Efbba75355B30b6BCCe2](https://bscscan.com/address/0xA0462a52af4f8cbF7766Efbba75355B30b6BCCe2) | | CustomUnstakedFeeModule | Custom Unstaked Fee Module | [0x3bad7F96cd1b51CE86e12C42541Ac7d559A78582](https://bscscan.com/address/0x3bad7F96cd1b51CE86e12C42541Ac7d559A78582) | | GaugeFactory | Gauge Factory | [0xFc080D1EcD7c332022cebf942AEb62d5E1d4Cb08](https://bscscan.com/address/0xFc080D1EcD7c332022cebf942AEb62d5E1d4Cb08) | | ManagedRewardsFactory | Managed Rewards Factory | [0xe4b23F13b24232C1E68AD0575191216152AA9480](https://bscscan.com/address/0xe4b23F13b24232C1E68AD0575191216152AA9480) | | Forwarder | Forwarder | [0xE79EB7c4D06ff38e6483921DE8e85A37eC7c731b](https://bscscan.com/address/0xE79EB7c4D06ff38e6483921DE8e85A37eC7c731b) | | AirdropDistributor | Airdrop Distributor | [0x7B1d8745079C85af80Ff7A7eA7C2C4769Eab5348](https://bscscan.com/address/0x7B1d8745079C85af80Ff7A7eA7C2C4769Eab5348) | | StateMulticall | State Multicall | [0xa1941194be7c2607FfbC27DE23B1aCA357C45e3D](https://bscscan.com/address/0xa1941194be7c2607FfbC27DE23B1aCA357C45e3D) | | OpenOceanLimitOrderProtocol | Third-party limit orders; BNB only | [0xA8A0213bb2ce671E457Ec14D08EB9d40E6DA8e2d](https://bscscan.com/address/0xA8A0213bb2ce671E457Ec14D08EB9d40E6DA8e2d) | | OpenOceanDCA | Third-party recurring orders; BNB only | [0x6cBB2598881940D08d5Ea3fA8F557E02996e1031](https://bscscan.com/address/0x6cBB2598881940D08d5Ea3fA8F557E02996e1031) | ## Robinhood Chain: deployed contracts EVM chain ID `4663`; LayerZero V2 endpoint ID `30416`. Spoke: local DEX, xTOPAZ token, bridge and voting. | Contract | Role | Address on Robinhood Chain | | ---------------------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | SpokeBudgetComposer | Receive and fund the local epoch budget | [0x5DA6456fa2560071DD29871ca045908f98932865](https://robin.etherscan.io/address/0x5DA6456fa2560071DD29871ca045908f98932865) | | SpokeStakeComposer | Contract for optional staking after delivery | [0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB](https://robin.etherscan.io/address/0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB) | | XTopazOFT | Local xTOPAZ token and LayerZero bridge | [0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6](https://robin.etherscan.io/address/0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6) | | FactoryRegistry | Factory Registry | [0x6f701F163a7372C27275e76Af21b6cF06ca6D498](https://robin.etherscan.io/address/0x6f701F163a7372C27275e76Af21b6cF06ca6D498) | | GaugeFactory | Gauge Factory | [0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A](https://robin.etherscan.io/address/0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A) | | ManagedRewardsFactory | Managed Rewards Factory | [0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714](https://robin.etherscan.io/address/0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714) | | Pool | V2 pool implementation, not a pair | [0x8776BE6cd50BB78414c655bc8bF9e86A0989722F](https://robin.etherscan.io/address/0x8776BE6cd50BB78414c655bc8bF9e86A0989722F) | | PoolFactory | Pool Factory | [0x1E3aC31cF96b20619c913384C9bf6010A824fB95](https://robin.etherscan.io/address/0x1E3aC31cF96b20619c913384C9bf6010A824fB95) | | ProtocolForwarder | Protocol Forwarder | [0xcaFA164098cE984799413daA2Ee7579Eb9f471DF](https://robin.etherscan.io/address/0xcaFA164098cE984799413daA2Ee7579Eb9f471DF) | | Router | Router | [0x18226f64a850163C0f0ABA453653Cc206EaE99f3](https://robin.etherscan.io/address/0x18226f64a850163C0f0ABA453653Cc206EaE99f3) | | SpokeEmissionReceiver | Local emission budget accounting | [0xb6286AaE59580F504471Bf5031A2Aa688C5aC140](https://robin.etherscan.io/address/0xb6286AaE59580F504471Bf5031A2Aa688C5aC140) | | Voter | Voter | [0xb509071a8a33fC2184B169dfc029B3dE3CF5172B](https://robin.etherscan.io/address/0xb509071a8a33fC2184B169dfc029B3dE3CF5172B) | | VotingRewardsFactory | Voting Rewards Factory | [0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4](https://robin.etherscan.io/address/0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4) | | XTopazVotingVault | Local voting positions and withdrawal rules | [0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777](https://robin.etherscan.io/address/0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777) | | CLFactory | CLFactory | [0xaa5865dC3A60b25D305226d66fd573021f0D8fFB](https://robin.etherscan.io/address/0xaa5865dC3A60b25D305226d66fd573021f0D8fFB) | | CLGauge | Concentrated gauge implementation, not a pool gauge | [0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553](https://robin.etherscan.io/address/0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553) | | CLGaugeFactory | CLGauge Factory | [0xc99B3e03e8dE70318f705155a3195c18d6344dFE](https://robin.etherscan.io/address/0xc99B3e03e8dE70318f705155a3195c18d6344dFE) | | CLPool | Concentrated pool implementation, not a pair | [0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE](https://robin.etherscan.io/address/0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE) | | CustomSwapFeeModule | Custom Swap Fee Module | [0x3Ae3642ECebB720e48Fe3F8fefF5F7B5C50F98f6](https://robin.etherscan.io/address/0x3Ae3642ECebB720e48Fe3F8fefF5F7B5C50F98f6) | | CustomUnstakedFeeModule | Custom Unstaked Fee Module | [0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0](https://robin.etherscan.io/address/0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0) | | MixedRouteQuoterV1 | Mixed Route Quoter V1 | [0x39A344d192D1D34a6Bee24DCF11093e93Fbb3993](https://robin.etherscan.io/address/0x39A344d192D1D34a6Bee24DCF11093e93Fbb3993) | | NFTDescriptor | NFTDescriptor | [0xf09d42Dbd9F867422339F13F40A936Fc54B28133](https://robin.etherscan.io/address/0xf09d42Dbd9F867422339F13F40A936Fc54B28133) | | NFTSVG | NFTSVG | [0x1328cfCcB9d670fa478f0D5249f41A38f23aF592](https://robin.etherscan.io/address/0x1328cfCcB9d670fa478f0D5249f41A38f23aF592) | | NonfungiblePositionManager | Nonfungible Position Manager | [0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5](https://robin.etherscan.io/address/0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5) | | NonfungibleTokenPositionDescriptor | Nonfungible Token Position Descriptor | [0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f](https://robin.etherscan.io/address/0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f) | | QuoterV2 | Quoter V2 | [0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be](https://robin.etherscan.io/address/0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be) | | SwapRouter | Swap Router | [0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572](https://robin.etherscan.io/address/0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572) | | UniversalRouter | Topaz swap execution with Permit2 | [0x268d1C8a538Ecf6628838C11d581e1EABD13D6A4](https://robin.etherscan.io/address/0x268d1C8a538Ecf6628838C11d581e1EABD13D6A4) | | Permit2 | Swap token allowance and signature permissions | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://robin.etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | | Multicall3 | Batched read infrastructure | [0xcA11bde05977b3631167028862bE2a173976CA11](https://robin.etherscan.io/address/0xcA11bde05977b3631167028862bE2a173976CA11) | | CLZap | Single-token Concentrated liquidity deposits | [0x0B8aD16647d392F5f34A88097Cb01d2f074334AE](https://robin.etherscan.io/address/0x0B8aD16647d392F5f34A88097Cb01d2f074334AE) | | WrappedNative | Wrapped native gas token | [0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73](https://robin.etherscan.io/address/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73) | | AllowanceHolder | 0x allowance infrastructure used by CL Zap | [0x0000000000001fF3684f28c67538d4D072C22734](https://robin.etherscan.io/address/0x0000000000001fF3684f28c67538d4D072C22734) | | SettlerRegistry | 0x settlement target verification for CL Zap | [0x00000000000004533Fe15556B1E086BB1A72cEae](https://robin.etherscan.io/address/0x00000000000004533Fe15556B1E086BB1A72cEae) | | DynamicSwapFeeModule | Active Concentrated swap fee module; current scaling and cap are read per network | [0x0Dca13b1039277d82B27ADd86d06195B8E9BBfDb](https://robin.etherscan.io/address/0x0Dca13b1039277d82B27ADd86d06195B8E9BBfDb) | ## Base: deployed contracts EVM chain ID `8453`; LayerZero V2 endpoint ID `30184`. Spoke: local DEX, xTOPAZ token, bridge and voting. | Contract | Role | Address on Base | | ---------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | | SpokeBudgetComposer | Receive and fund the local epoch budget | [0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB](https://basescan.org/address/0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB) | | SpokeStakeComposer | Contract for optional staking after delivery | [0x2c359C5C680e2b1BcA465e63d1904afac6b308F1](https://basescan.org/address/0x2c359C5C680e2b1BcA465e63d1904afac6b308F1) | | XTopazOFT | Local xTOPAZ token and LayerZero bridge | [0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6](https://basescan.org/address/0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6) | | FactoryRegistry | Factory Registry | [0x6f701F163a7372C27275e76Af21b6cF06ca6D498](https://basescan.org/address/0x6f701F163a7372C27275e76Af21b6cF06ca6D498) | | GaugeFactory | Gauge Factory | [0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A](https://basescan.org/address/0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A) | | ManagedRewardsFactory | Managed Rewards Factory | [0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714](https://basescan.org/address/0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714) | | Pool | V2 pool implementation, not a pair | [0x8776BE6cd50BB78414c655bc8bF9e86A0989722F](https://basescan.org/address/0x8776BE6cd50BB78414c655bc8bF9e86A0989722F) | | PoolFactory | Pool Factory | [0x1E3aC31cF96b20619c913384C9bf6010A824fB95](https://basescan.org/address/0x1E3aC31cF96b20619c913384C9bf6010A824fB95) | | ProtocolForwarder | Protocol Forwarder | [0xcaFA164098cE984799413daA2Ee7579Eb9f471DF](https://basescan.org/address/0xcaFA164098cE984799413daA2Ee7579Eb9f471DF) | | Router | Router | [0x18226f64a850163C0f0ABA453653Cc206EaE99f3](https://basescan.org/address/0x18226f64a850163C0f0ABA453653Cc206EaE99f3) | | SpokeEmissionReceiver | Local emission budget accounting | [0xb6286AaE59580F504471Bf5031A2Aa688C5aC140](https://basescan.org/address/0xb6286AaE59580F504471Bf5031A2Aa688C5aC140) | | Voter | Voter | [0xb509071a8a33fC2184B169dfc029B3dE3CF5172B](https://basescan.org/address/0xb509071a8a33fC2184B169dfc029B3dE3CF5172B) | | VotingRewardsFactory | Voting Rewards Factory | [0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4](https://basescan.org/address/0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4) | | XTopazVotingVault | Local voting positions and withdrawal rules | [0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777](https://basescan.org/address/0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777) | | CLFactory | CLFactory | [0xaa5865dC3A60b25D305226d66fd573021f0D8fFB](https://basescan.org/address/0xaa5865dC3A60b25D305226d66fd573021f0D8fFB) | | CLGauge | Concentrated gauge implementation, not a pool gauge | [0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553](https://basescan.org/address/0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553) | | CLGaugeFactory | CLGauge Factory | [0xc99B3e03e8dE70318f705155a3195c18d6344dFE](https://basescan.org/address/0xc99B3e03e8dE70318f705155a3195c18d6344dFE) | | CLPool | Concentrated pool implementation, not a pair | [0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE](https://basescan.org/address/0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE) | | CustomSwapFeeModule | Custom Swap Fee Module | [0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0](https://basescan.org/address/0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0) | | CustomUnstakedFeeModule | Custom Unstaked Fee Module | [0x5E29d449199e1c2e5A5557145075ccBAE0Be0920](https://basescan.org/address/0x5E29d449199e1c2e5A5557145075ccBAE0Be0920) | | MixedRouteQuoterV1 | Mixed Route Quoter V1 | [0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be](https://basescan.org/address/0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be) | | NFTDescriptor | NFTDescriptor | [0xf09d42Dbd9F867422339F13F40A936Fc54B28133](https://basescan.org/address/0xf09d42Dbd9F867422339F13F40A936Fc54B28133) | | NFTSVG | NFTSVG | [0x1328cfCcB9d670fa478f0D5249f41A38f23aF592](https://basescan.org/address/0x1328cfCcB9d670fa478f0D5249f41A38f23aF592) | | NonfungiblePositionManager | Nonfungible Position Manager | [0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5](https://basescan.org/address/0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5) | | NonfungibleTokenPositionDescriptor | Nonfungible Token Position Descriptor | [0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f](https://basescan.org/address/0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f) | | QuoterV2 | Quoter V2 | [0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572](https://basescan.org/address/0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572) | | SwapRouter | Swap Router | [0x5DA6456fa2560071DD29871ca045908f98932865](https://basescan.org/address/0x5DA6456fa2560071DD29871ca045908f98932865) | | UniversalRouter | Topaz swap execution with Permit2 | [0xe4b23F13b24232C1E68AD0575191216152AA9480](https://basescan.org/address/0xe4b23F13b24232C1E68AD0575191216152AA9480) | | Permit2 | Swap token allowance and signature permissions | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | | Multicall3 | Batched read infrastructure | [0xcA11bde05977b3631167028862bE2a173976CA11](https://basescan.org/address/0xcA11bde05977b3631167028862bE2a173976CA11) | | CLZap | Single-token Concentrated liquidity deposits | [0x8C29f85a151E16c94BC845D14A7A4Cd44345F168](https://basescan.org/address/0x8C29f85a151E16c94BC845D14A7A4Cd44345F168) | | WrappedNative | Wrapped native gas token | [0x4200000000000000000000000000000000000006](https://basescan.org/address/0x4200000000000000000000000000000000000006) | | AllowanceHolder | 0x allowance infrastructure used by CL Zap | [0x0000000000001fF3684f28c67538d4D072C22734](https://basescan.org/address/0x0000000000001fF3684f28c67538d4D072C22734) | | SettlerRegistry | 0x settlement target verification for CL Zap | [0x00000000000004533Fe15556B1E086BB1A72cEae](https://basescan.org/address/0x00000000000004533Fe15556B1E086BB1A72cEae) | | DynamicSwapFeeModule | Active Concentrated swap fee module; current scaling and cap are read per network | [0x8Bc9B86eBCd30A724bf486536507B7f6bf1A5a46](https://basescan.org/address/0x8Bc9B86eBCd30A724bf486536507B7f6bf1A5a46) | ## Ethereum: deployed contracts EVM chain ID `1`; LayerZero V2 endpoint ID `30101`. Spoke: local DEX, xTOPAZ token, bridge and voting. | Contract | Role | Address on Ethereum | | ---------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | | SpokeBudgetComposer | Receive and fund the local epoch budget | [0x5DA6456fa2560071DD29871ca045908f98932865](https://etherscan.io/address/0x5DA6456fa2560071DD29871ca045908f98932865) | | SpokeStakeComposer | Contract for optional staking after delivery | [0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB](https://etherscan.io/address/0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB) | | XTopazOFT | Local xTOPAZ token and LayerZero bridge | [0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6](https://etherscan.io/address/0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6) | | FactoryRegistry | Factory Registry | [0x6f701F163a7372C27275e76Af21b6cF06ca6D498](https://etherscan.io/address/0x6f701F163a7372C27275e76Af21b6cF06ca6D498) | | GaugeFactory | Gauge Factory | [0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A](https://etherscan.io/address/0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A) | | ManagedRewardsFactory | Managed Rewards Factory | [0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714](https://etherscan.io/address/0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714) | | Pool | V2 pool implementation, not a pair | [0x8776BE6cd50BB78414c655bc8bF9e86A0989722F](https://etherscan.io/address/0x8776BE6cd50BB78414c655bc8bF9e86A0989722F) | | PoolFactory | Pool Factory | [0x1E3aC31cF96b20619c913384C9bf6010A824fB95](https://etherscan.io/address/0x1E3aC31cF96b20619c913384C9bf6010A824fB95) | | ProtocolForwarder | Protocol Forwarder | [0xcaFA164098cE984799413daA2Ee7579Eb9f471DF](https://etherscan.io/address/0xcaFA164098cE984799413daA2Ee7579Eb9f471DF) | | Router | Router | [0x18226f64a850163C0f0ABA453653Cc206EaE99f3](https://etherscan.io/address/0x18226f64a850163C0f0ABA453653Cc206EaE99f3) | | SpokeEmissionReceiver | Local emission budget accounting | [0xb6286AaE59580F504471Bf5031A2Aa688C5aC140](https://etherscan.io/address/0xb6286AaE59580F504471Bf5031A2Aa688C5aC140) | | Voter | Voter | [0xb509071a8a33fC2184B169dfc029B3dE3CF5172B](https://etherscan.io/address/0xb509071a8a33fC2184B169dfc029B3dE3CF5172B) | | VotingRewardsFactory | Voting Rewards Factory | [0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4](https://etherscan.io/address/0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4) | | XTopazVotingVault | Local voting positions and withdrawal rules | [0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777](https://etherscan.io/address/0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777) | | CLFactory | CLFactory | [0xaa5865dC3A60b25D305226d66fd573021f0D8fFB](https://etherscan.io/address/0xaa5865dC3A60b25D305226d66fd573021f0D8fFB) | | CLGauge | Concentrated gauge implementation, not a pool gauge | [0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553](https://etherscan.io/address/0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553) | | CLGaugeFactory | CLGauge Factory | [0xc99B3e03e8dE70318f705155a3195c18d6344dFE](https://etherscan.io/address/0xc99B3e03e8dE70318f705155a3195c18d6344dFE) | | CLPool | Concentrated pool implementation, not a pair | [0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE](https://etherscan.io/address/0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE) | | CustomSwapFeeModule | Custom Swap Fee Module | [0x3Ae3642ECebB720e48Fe3F8fefF5F7B5C50F98f6](https://etherscan.io/address/0x3Ae3642ECebB720e48Fe3F8fefF5F7B5C50F98f6) | | CustomUnstakedFeeModule | Custom Unstaked Fee Module | [0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0](https://etherscan.io/address/0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0) | | MixedRouteQuoterV1 | Mixed Route Quoter V1 | [0x39A344d192D1D34a6Bee24DCF11093e93Fbb3993](https://etherscan.io/address/0x39A344d192D1D34a6Bee24DCF11093e93Fbb3993) | | NFTDescriptor | NFTDescriptor | [0xf09d42Dbd9F867422339F13F40A936Fc54B28133](https://etherscan.io/address/0xf09d42Dbd9F867422339F13F40A936Fc54B28133) | | NFTSVG | NFTSVG | [0x1328cfCcB9d670fa478f0D5249f41A38f23aF592](https://etherscan.io/address/0x1328cfCcB9d670fa478f0D5249f41A38f23aF592) | | NonfungiblePositionManager | Nonfungible Position Manager | [0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5](https://etherscan.io/address/0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5) | | NonfungibleTokenPositionDescriptor | Nonfungible Token Position Descriptor | [0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f](https://etherscan.io/address/0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f) | | QuoterV2 | Quoter V2 | [0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be](https://etherscan.io/address/0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be) | | SwapRouter | Swap Router | [0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572](https://etherscan.io/address/0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572) | | UniversalRouter | Topaz swap execution with Permit2 | [0x606794d37991A426a189fD9FA8664D339A77f8ae](https://etherscan.io/address/0x606794d37991A426a189fD9FA8664D339A77f8ae) | | Permit2 | Swap token allowance and signature permissions | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | | Multicall3 | Batched read infrastructure | [0xcA11bde05977b3631167028862bE2a173976CA11](https://etherscan.io/address/0xcA11bde05977b3631167028862bE2a173976CA11) | | CLZap | Single-token Concentrated liquidity deposits | [0x1b4c8adC09D4c2940C0e536fF11266013D15B38a](https://etherscan.io/address/0x1b4c8adC09D4c2940C0e536fF11266013D15B38a) | | WrappedNative | Wrapped native gas token | [0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2](https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) | | AllowanceHolder | 0x allowance infrastructure used by CL Zap | [0x0000000000001fF3684f28c67538d4D072C22734](https://etherscan.io/address/0x0000000000001fF3684f28c67538d4D072C22734) | | SettlerRegistry | 0x settlement target verification for CL Zap | [0x00000000000004533Fe15556B1E086BB1A72cEae](https://etherscan.io/address/0x00000000000004533Fe15556B1E086BB1A72cEae) | | DynamicSwapFeeModule | Active Concentrated swap fee module; current scaling and cap are read per network | [0x8C29f85a151E16c94BC845D14A7A4Cd44345F168](https://etherscan.io/address/0x8C29f85a151E16c94BC845D14A7A4Cd44345F168) | ## Arc: deployed contracts EVM chain ID `5042`; LayerZero V2 endpoint ID `30417`. Spoke: local DEX, xTOPAZ token, bridge and voting. USDC pays gas and is traded as its own six-decimal ERC-20: Arc has no wrapped native, the routers' immutable WETH slot holds a reverting stub, and native-coin router functions revert. CL Zap supports ERC-20 funding and refunds only. | Contract | Role | Address on Arc | | ---------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | SpokeBudgetComposer | Receive and fund the local epoch budget | [0x5DA6456fa2560071DD29871ca045908f98932865](https://arc.etherscan.io/address/0x5DA6456fa2560071DD29871ca045908f98932865) | | SpokeStakeComposer | Contract for optional staking after delivery | [0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB](https://arc.etherscan.io/address/0xbba1C3b415cF8212Cf3Ce11e726ab62125BDc6dB) | | XTopazOFT | Local xTOPAZ token and LayerZero bridge | [0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6](https://arc.etherscan.io/address/0x1aA89C4Ab9884Cb65B759A3Cc3A1690744d687a6) | | FactoryRegistry | Factory Registry | [0x6f701F163a7372C27275e76Af21b6cF06ca6D498](https://arc.etherscan.io/address/0x6f701F163a7372C27275e76Af21b6cF06ca6D498) | | GaugeFactory | Gauge Factory | [0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A](https://arc.etherscan.io/address/0x60E60B6D0B77f3Af83Fd6Ed35Db6D0664693E39A) | | ManagedRewardsFactory | Managed Rewards Factory | [0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714](https://arc.etherscan.io/address/0xab2df5A1C8bB46a28D26a74c64eeAfFE89eD3714) | | Pool | V2 pool implementation, not a pair | [0x8776BE6cd50BB78414c655bc8bF9e86A0989722F](https://arc.etherscan.io/address/0x8776BE6cd50BB78414c655bc8bF9e86A0989722F) | | PoolFactory | Pool Factory | [0x1E3aC31cF96b20619c913384C9bf6010A824fB95](https://arc.etherscan.io/address/0x1E3aC31cF96b20619c913384C9bf6010A824fB95) | | ProtocolForwarder | Protocol Forwarder | [0xcaFA164098cE984799413daA2Ee7579Eb9f471DF](https://arc.etherscan.io/address/0xcaFA164098cE984799413daA2Ee7579Eb9f471DF) | | Router | Router | [0x18226f64a850163C0f0ABA453653Cc206EaE99f3](https://arc.etherscan.io/address/0x18226f64a850163C0f0ABA453653Cc206EaE99f3) | | SpokeEmissionReceiver | Local emission budget accounting | [0xb6286AaE59580F504471Bf5031A2Aa688C5aC140](https://arc.etherscan.io/address/0xb6286AaE59580F504471Bf5031A2Aa688C5aC140) | | Voter | Voter | [0xb509071a8a33fC2184B169dfc029B3dE3CF5172B](https://arc.etherscan.io/address/0xb509071a8a33fC2184B169dfc029B3dE3CF5172B) | | VotingRewardsFactory | Voting Rewards Factory | [0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4](https://arc.etherscan.io/address/0x28e686ffA9CAF74411FBa0923dC3729CD513e3D4) | | XTopazVotingVault | Local voting positions and withdrawal rules | [0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777](https://arc.etherscan.io/address/0x35D7Ac512f465F48D2bCb4C7322dd34c7BB7c777) | | CLFactory | CLFactory | [0xaa5865dC3A60b25D305226d66fd573021f0D8fFB](https://arc.etherscan.io/address/0xaa5865dC3A60b25D305226d66fd573021f0D8fFB) | | CLGauge | Concentrated gauge implementation, not a pool gauge | [0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553](https://arc.etherscan.io/address/0xE6ab7AA7cCe6C3e11E709408BD985828a98b6553) | | CLGaugeFactory | CLGauge Factory | [0xc99B3e03e8dE70318f705155a3195c18d6344dFE](https://arc.etherscan.io/address/0xc99B3e03e8dE70318f705155a3195c18d6344dFE) | | CLPool | Concentrated pool implementation, not a pair | [0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE](https://arc.etherscan.io/address/0x2DaA7cF731334b4Cd1c2E4E01E97Ca67F4B9C6AE) | | CustomSwapFeeModule | Custom Swap Fee Module | [0x3Ae3642ECebB720e48Fe3F8fefF5F7B5C50F98f6](https://arc.etherscan.io/address/0x3Ae3642ECebB720e48Fe3F8fefF5F7B5C50F98f6) | | CustomUnstakedFeeModule | Custom Unstaked Fee Module | [0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0](https://arc.etherscan.io/address/0xCe6BE50Cf7a6a868E5993Aaa505b905B31c011e0) | | MixedRouteQuoterV1 | Mixed Route Quoter V1 | [0x39A344d192D1D34a6Bee24DCF11093e93Fbb3993](https://arc.etherscan.io/address/0x39A344d192D1D34a6Bee24DCF11093e93Fbb3993) | | NFTDescriptor | NFTDescriptor | [0xf09d42Dbd9F867422339F13F40A936Fc54B28133](https://arc.etherscan.io/address/0xf09d42Dbd9F867422339F13F40A936Fc54B28133) | | NFTSVG | NFTSVG | [0x1328cfCcB9d670fa478f0D5249f41A38f23aF592](https://arc.etherscan.io/address/0x1328cfCcB9d670fa478f0D5249f41A38f23aF592) | | NonfungiblePositionManager | Nonfungible Position Manager | [0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5](https://arc.etherscan.io/address/0x522bf4b5c9280BB6bB719f2CE7f514Dd63c8c0C5) | | NonfungibleTokenPositionDescriptor | Nonfungible Token Position Descriptor | [0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f](https://arc.etherscan.io/address/0xB17cd823450ec44462399ED02f8c72Dce1Bf1D5f) | | QuoterV2 | Quoter V2 | [0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be](https://arc.etherscan.io/address/0xA9Cd3aC90513663197E7Fd6c932f63f0C40701be) | | SwapRouter | Swap Router | [0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572](https://arc.etherscan.io/address/0x2e7395A6E0De6eE1f390bEcE891069Cd18Ff8572) | | UniversalRouter | Topaz swap execution with Permit2 | [0x7B1d8745079C85af80Ff7A7eA7C2C4769Eab5348](https://arc.etherscan.io/address/0x7B1d8745079C85af80Ff7A7eA7C2C4769Eab5348) | | Permit2 | Swap token allowance and signature permissions | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://arc.etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | | Multicall3 | Batched read infrastructure | [0xcA11bde05977b3631167028862bE2a173976CA11](https://arc.etherscan.io/address/0xcA11bde05977b3631167028862bE2a173976CA11) | | USDC | Native gas token's six-decimal ERC-20; Arc has no wrapped native | [0x3600000000000000000000000000000000000000](https://arc.etherscan.io/address/0x3600000000000000000000000000000000000000) | | DynamicSwapFeeModule | Active Concentrated swap fee module; current scaling and cap are read per network | [0x8C29f85a151E16c94BC845D14A7A4Cd44345F168](https://arc.etherscan.io/address/0x8C29f85a151E16c94BC845D14A7A4Cd44345F168) | | CLZap | Single-token Concentrated deposits; ERC-20 funding and refunds only | [0xA3e7B9a8c3fb6b54381ECEfC2C3E1cBe991e9b8B](https://arc.etherscan.io/address/0xA3e7B9a8c3fb6b54381ECEfC2C3E1cBe991e9b8B) | | AllowanceHolder | 0x allowance infrastructure used by CL Zap | [0x0000000000001fF3684f28c67538d4D072C22734](https://arc.etherscan.io/address/0x0000000000001fF3684f28c67538d4D072C22734) | | SettlerRegistry | 0x settlement target verification for CL Zap | [0x00000000000004533Fe15556B1E086BB1A72cEae](https://arc.etherscan.io/address/0x00000000000004533Fe15556B1E086BB1A72cEae) | | WETH9 stub | Reverting immutable dependency; never use for funding or refunds | [0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f](https://arc.etherscan.io/address/0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f) | --- Source: https://www.topazdex.com/docs/security Security # Security & Audits Topaz is built with security as a primary design constraint. Core contracts inherit extensively deployed Aerodrome, Velodrome and Uniswap lineage with substantial production history and upstream audit coverage, and Shieldify Security independently reviewed what Topaz changed and added on top of that baseline, ahead of mainnet. ## xTOPAZ and multichain security scope **Audit scope.** The linked Shieldify report covers the earlier BNB Topaz contracts. It does not cover the later xTOPAZ vault, system gauge, coordinator, OFT bridge, composers, spoke voting vault or CL Zap. These are deployed separately; consult each release's own review records. Local fork signatures cover parts of the xTOPAZ and liquidity lifecycles, but do not establish mainnet delivery or a complete wallet lifecycle. [Contract addresses](https://www.topazdex.com/docs/contracts). The BNB core is retained. Reusing Voter, reward, gauge and pool code on spokes reduces new code, but does not validate deployment wiring, bridge configuration or the combined system. A chain listing, quote or successful approval simulation is not evidence that the whole transaction journey is live or validated. ### Additional risks and controls * **Backing and redemption:** xTOPAZ represents permanently locked TOPAZ. Its market price can diverge from backing value; redemption returns a permanent NFT and can be blocked by vote state, pauses, split permissions or a rebase backlog. * **NFT conversion:** wrapping burns the source NFT. Resolve fees, incentives and relay-related rewards before giving up that ID. The router’s operator approval covers all of the owner’s veTOPAZ NFTs. * **Bridge delivery:** LayerZero endpoints, message verification and execution, chain finality and route configuration are dependencies. Source confirmation does not establish destination receipt. Pauses and capacity limits can delay delivery. * **Spoke custody:** voting stakes have withdrawal dates. Adding funds can extend the whole position’s date; voting restrictions can also delay closing it. * **Administration:** vault entry and redemption have separate pause controls. Bridge administrators configure peers, verification settings and limits. The coordinator can withdraw held budget shares; receivers and composers have defined rescue powers. A non-upgradeable core does not remove these authorities. * **Data:** snapshots, prices and exchange rates can differ in age across chains. A missing price or receipt must not be turned into a zero balance or a successful outcome. See [Protocol Governance](https://www.topazdex.com/docs/governance) for the extended role map, [Bridge xTOPAZ](https://www.topazdex.com/docs/xtopaz/bridge) for delivery checks and [network availability](https://www.topazdex.com/docs/multichain) before interacting. ## Shieldify Security Audit Audit Report ### Topaz DEX Security Review Reviewed by Shieldify Security · published on their public audits portfolio [Read Report ↗](https://github.com/shieldify-security/audits-portfolio/blob/main/reports/Topaz-Dex-Security-Review.pdf) Shieldify reviewed what Topaz changes and adds relative to the Aerodrome codebase it forks. That baseline has years of production history and already carries its own audit history, so the engagement was scoped to where Topaz-specific risk actually lives rather than re-deriving known-good code. The full PDF is hosted on Shieldify's GitHub for independent verification. ⚠What this audit does not cover A differential review is not a full protocol audit. The inherited Aerodrome / Velodrome code was treated as a known-good baseline and was not re-examined line by line as part of this engagement — its assurance comes from its own audit history and production track record, not from this report. Read the PDF for the exact scope, and treat the protocol as carrying smart-contract risk regardless. Every deployed contract is listed on the [Contracts page](https://www.topazdex.com/docs/contracts) with explorer links for each network, so the source can be cross-checked on-chain against both the report and the upstream codebase. ## Contract architecture Core contracts inherit from OpenZeppelin's audited implementations where possible. Each external function is guarded by the appropriate pattern: * ✓Reentrancy protection on the fund-moving entry points: OpenZeppelin nonReentrant across the v2 pools, gauges, rewards contracts and VotingEscrow, and the lock mutex on Slipstream pools. * ✓Emergency controls are subsystem-specific rather than one protocol-wide switch. The v2 PoolFactory exposes a single factory-wide swap pause covering its v2 pools; Slipstream pools have no pause path; gauges are killed and revived individually through the Voter. No emergency control transfers or seizes user balances, and v2 LP withdrawal stays open while swaps are paused. * ✓Access control on privileged setters (fee manager, emergency council, pauser, vetoer) via OpenZeppelin Ownable / role patterns. * ✓Arithmetic safety differs by generation: the Solidity 0.8.19 contracts (v2 core, gauges, governance) rely on built-in checked arithmetic, with unchecked blocks only where overflow is mathematically impossible. The Slipstream core retains its audited Solidity 0.7.6 lineage and uses explicit LowGasSafeMath and SafeCast libraries instead. * ✓EIP-2771 trusted forwarder support for meta-transactions, isolated to the Forwarder contract. * ✓Key administrative and economic state changes emit events for off-chain monitoring and analytics. ## Immutability and upgradability The existing BNB core takes a specific stance on immutability vs. evolution: core contracts and deployed factories are immutable, the protocol extends by approving new factory implementations through FactoryRegistry, and migration is opt-in by users. * ✓Core: Pool, Gauge, VotingEscrow, Voter, Minter, RewardsDistributor, and the Governors are not upgradable. No admin proxy. The code on BscScan today is the code forever. * ✓Factories: FactoryRegistry can approve or remove factory implementations for future pools, gauges and rewards contracts. Approving a new implementation does not modify existing deployed factories or pools — PoolFactory, CLFactory, GaugeFactory, CLGaugeFactory, VotingRewardsFactory and ManagedRewardsFactory sit behind no proxy and cannot be upgraded in place. * ✓Migration: when a new factory is approved, existing pools and positions are not forced to migrate. LPs and voters opt in by depositing into the new generation if they choose. ## Admin controls The BNB core administrative roles currently sit with the protocol multisig and its signers, with the governance contracts deployed alongside them as on-chain governance activates. What those roles can reach is bounded by immutable code rather than by policy — these limits are enforced by the contracts themselves and cannot be lifted by any key: * ✓No key can mint TOPAZ outside the emission curve. The schedule is fixed in the Minter and the team rate is hard-capped at 5%. * Core roles do not provide an arbitrary transfer of user LP positions, veTOPAZ NFTs or wallet balances. Emergency controls can restrict actions, and the multichain extension has additional pause, budget-custody and rescue powers described above. * ✓Swap fees cannot be raised without limit. v2 fees and Slipstream base / custom fees are hard-capped at 3% by immutable constants, not settings. A Slipstream pool running the dynamic-fee module can charge more than its base fee while spot diverges from TWAP, bounded by that pool's configured feeCap — which the module itself will not let anyone set above an immutable 5%. * ✓Core contracts cannot be upgraded. Pool, Gauge, VotingEscrow, Voter, Minter, RewardsDistributor and the Governors have no admin proxy. * ✓Within those bounds, admin roles can kill or revive gauges, use subsystem-specific emergency controls, configure fees within their contract-enforced caps, whitelist tokens for gauge creation, and approve new factory implementations. The full admin role map is documented in [Protocol Governance](https://www.topazdex.com/docs/governance). Current role holders are visible on-chain via the verified contracts on the [Contracts page](https://www.topazdex.com/docs/contracts). ## Risk disclosure DeFi carries inherent risks. The most relevant to Topaz: * Smart-contract risk: even after audit, latent bugs are possible. Use the protocol at your own risk. * Impermanent loss: LP positions can lose value relative to holding. Concentrated ranges amplify both fee yield and IL. [See the IL primer.](https://www.topazdex.com/docs/concepts/impermanent-loss) * Governance risk: parameters within governed ranges can change. The bounds themselves (emission caps, fee caps, lock periods) are immutable. See [Protocol Governance](https://www.topazdex.com/docs/governance) for what governance can and can't touch. * Oracle risk: TWAP prices are manipulation-resistant but not perfect. Oracle-dependent integrations should use appropriate cardinality and window lengths. [See Oracles & TWAP.](https://www.topazdex.com/docs/concepts/oracles) * Regulatory risk: DeFi protocols are not regulated as financial intermediaries in most jurisdictions; your local rules may apply. * Operational risk: phishing sites, fake support, malicious approvals. Always verify URLs and never sign transactions you don't understand. Participants should conduct their own research and never commit more than they can afford to lose. ## Responsible disclosure If you discover a vulnerability in any deployed Topaz contract, please report it privately before disclosing publicly. Reach out via [Telegram](https://t.me/TopazDex) to coordinate a private channel. Active bug-bounty terms are published separately and updated as the program evolves. ⚠Don't post exploits publicly Tweeting an unpatched exploit, or attempting to demonstrate it on mainnet, puts real user funds at risk. Coordinate disclosure first; we'll work fast. --- Source: https://www.topazdex.com/docs/airdrop History # Airdrop & Sacrifice Pre-mainnet, Topaz seeded its governance base in two parallel tracks: a community airdrop snapshot and a fixed-rate sacrifice window on Abstract. Both are now closed, and veTOPAZ has been distributed. ℹBoth events are closed Final veTOPAZ allocations were distributed to each recipient's locked BNB-Chain destination at mainnet launch via the [AirdropDistributor](https://www.topazdex.com/docs/contracts) contract. No claim step, no further action required. ## The airdrop The airdrop snapshot was taken pre-mainnet across qualifying Abstract and BNB Chain ecosystem activity. Eligible wallets registered a locked BNB-Chain destination during the destination-lock window. At mainnet launch, veTOPAZ was airdropped directly to those destinations via the AirdropDistributor — no claim step. Wallets that did not lock a destination before the deadline forfeited their allocation. ## The sacrifice The sacrifice was a time-boxed contribution window on Abstract that let supporters earn additional veTOPAZ on top of the airdrop snapshot. It opened April 24, 2026 at 18:00 UTC and closed ahead of mainnet. The sacrifice allocated **150,000,000 veTOPAZ** in total — the full global cap. Like the airdrop, veTOPAZ was distributed to each contributor's locked BNB-Chain destination at mainnet launch. * ✓Chain: Abstract (sacrifice deposits only). * ✓Accepted assets: gBLUE, DEPTH, and USDC at a fixed rate of $0.005 per veTOPAZ. * ✓Global cap: 150,000,000 veTOPAZ (fully allocated). * ✓Per-wallet cap: 10,000,000 veTOPAZ. * ✓Distribution: airdropped to each wallet's BNB-Chain destination at mainnet launch. * ✓One-way: deposits could not be withdrawn. ## Destination wallets Distribution landed on BNB Chain, so every airdrop-eligible and sacrifice-contributing wallet had to register a non-AGW EVM address (MetaMask, Rabby, hardware wallet, etc.) as its destination before the destination-lock deadline. AGW accounts don't exist on BNB Chain, which is why AGW participants were required to set a separate BNB-Chain destination. Wallets without a destination on file at the deadline forfeited their allocation. ## Why these events existed The airdrop and sacrifice were designed to bootstrap a vote-active veTOPAZ base from day one. They put governance power in the hands of aligned supporters before mainnet, so emissions, voting, and bribe markets all had real participation from the first epoch rather than ramping up cold. ## The expansion does not change this history The closed airdrop and sacrifice distributed veTOPAZ on BNB. Abstract was the sacrifice network, not a Topaz spoke deployment. Multichain expansion does not reopen these events, move those NFTs automatically or require a new claim. Existing holders can continue BNB voting. Optional wrapping into xTOPAZ is live, with its own eligibility and reward checks. [Network availability](https://www.topazdex.com/docs/multichain) · [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get). --- Source: https://www.topazdex.com/docs/bonuslock Tokenomics # Bonus Lock Lock your TOPAZ and receive bonus TOPAZ on top — minted directly into a permanently locked veTOPAZ position. The earlier you lock, the higher the bonus. 50,000,000 TOPAZ in total bonus rewards are distributed across 7 descending tiers. ✨BNB Bonus Lock program The BNB promotion opened on May 26, 2026 at 18:00 UTC with a 50M TOPAZ bonus pool. Its current remaining allocation must be checked on the [lock creation page](https://www.topazdex.com/locks/create); this migrated guide does not establish that a tier is still available. ## How it works You deposit TOPAZ into the BonusLock contract and receive a permanently locked veTOPAZ position (veNFT) containing your deposit plus a bonus from the protocol. The bonus percentage depends on the current tier — early lockers get a higher rate. The resulting veTOPAZ position earns everything a normal permanent lock earns: trading fees from voted pools, bribe rewards, and weekly rebases — all at maximum voting power with no decay. ## Bonus tiers The bonus rate decreases as more bonus TOPAZ is distributed. Each tier has a fixed amount of bonus TOPAZ available at that rate. Once a tier is exhausted, the next tier activates automatically. | Tier | Bonus rate | Allocation | | --------- | ----- | -------------------------------- | | Tier 1 | 75% | 5,000,000 bonus TOPAZ available | | Tier 2 | 60% | 5,000,000 bonus TOPAZ available | | Tier 3 | 50% | 5,000,000 bonus TOPAZ available | | Tier 4 | 40% | 5,000,000 bonus TOPAZ available | | Tier 5 | 30% | 7,500,000 bonus TOPAZ available | | Tier 6 | 25% | 10,000,000 bonus TOPAZ available | | Tier 7 | 20% | 12,500,000 bonus TOPAZ available | ℹCross-tier locks If your lock is large enough to span a tier boundary, the bonus is split proportionally — the portion that fits in the current tier earns the current rate, and the remainder earns the next tier's rate. The app shows the exact bonus amount before you confirm. ## Two ways to participate In the app, the bonus is part of Create lock and always creates a new permanent veTOPAZ position. To add it to a lock you already hold, merge the two afterwards. ### Option A — New veTOPAZ position 1. 1Open Create lock and enter the TOPAZ amount. The bonus checkbox is on by default whenever a bonus is payable; the duration picker hides because the lock is permanent. 2. 2Approve the BonusLock contract to spend your TOPAZ. 3. 3Confirm the lock. You receive a new permanently locked veNFT containing your deposit + the bonus. ### Option B — Add to an existing veNFT (direct contract call) To combine a bonus lock with a veNFT you already hold, lock with the bonus first, then merge the two from the lock page. The existing veNFT must be a standard (non-managed) lock. 1. 1Choose the amount of TOPAZ and select the veNFT to merge into. 2. 2Approve the BonusLock contract to spend your TOPAZ and transfer the veNFT. 3. 3Confirm the lock. Your existing veNFT is returned with the additional TOPAZ + bonus added to its balance, permanently locked. ## What you receive The output is a permanently locked veTOPAZ NFT with maximum voting power and no decay. This position is identical to any other permanent veTOPAZ lock — it can vote on gauges, earn fees, earn bribes, receive rebases, and delegate. | Parameter | Value | Description | | -------------- | ----------------------- | -------------------------------------------------------------------------------------------- | | Lock type | Permanent | No unlock date. Voting power stays at maximum indefinitely. | | Position value | Deposit + Bonus | Your deposited TOPAZ plus the tier bonus, combined in one veNFT. | | Earnings | Fees + Bribes + Rebases | Same as any veTOPAZ — vote on gauges to earn trading fees and bribes. Rebases auto-compound. | ⚠Permanent means permanent A Bonus Lock creates a permanent BNB veTOPAZ position. Permanent mode does not allow immediate liquid withdrawal: any conversion back to a decaying lock must satisfy the deployed escrow rules and then its maximum-duration countdown. Read [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz). ## Program details | Parameter | Value | Description | | ---------------- | ----------------------- | -------------------------------------------------------------------------- | | Total bonus pool | 50,000,000 TOPAZ | Distributed across all 7 tiers. Program ends when the pool is exhausted. | | Start | May 26, 2026 18:00 UTC | Locks before this time are rejected by the contract. | | End | When 50M is distributed | No fixed end date — the promotion runs until all bonus TOPAZ is allocated. | | Contract | 0x441b...a545 | BonusLock on BNB Chain. Verified on BSCScan. | ## Bonus Lock and xTOPAZ are separate This page describes the BNB promotion and retains its original URL; the program runs from the lock creation page. It is not a spoke bonus program, an xTOPAZ mint or a bridge reward. A resulting normal permanent NFT would need the same ownership, vote and reward checks as any other lock before wrapping; the promotion itself does not establish eligibility or an xTOPAZ bonus. [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get). ## Continue reading [veTOPAZ Locks →Full reference for veTOPAZ: voting power, decay, permanent locks, merge, split, and delegation.](https://www.topazdex.com/docs/tokenomics/vetopaz)[Gauge Voting →How to direct emissions with your veTOPAZ each epoch and earn trading fees.](https://www.topazdex.com/docs/gauges)[Incentives (Bribes) →External rewards deposited by projects to attract veTOPAZ votes.](https://www.topazdex.com/docs/voting/incentives)[TOPAZ & Emissions →Where TOPAZ comes from, the emission curve, and rebases.](https://www.topazdex.com/docs/tokenomics) --- Source: https://www.topazdex.com/docs/stats # Stats and analytics Topaz analytics cover BNB Chain (56), Robinhood Chain (4663), Base (8453), Ethereum (1) and Arc (5042). Protocol totals combine the selected networks; a network filter applies to the metrics, chart and pool list. Pool and token identities always include both chain ID and contract address. ## Combined and network-filtered data Headline 24-hour and seven-day figures use the API’s rolling windows. Each network has its own indexed observation boundary; combined totals sum those independently observed windows. They are not a synchronized cross-chain block. No browser-side proration of yesterday’s totals is applied. A missing value is not zero. A known subtotal is displayed with + when complete valuation or network coverage is unavailable. Charts mark partial periods and preserve gaps. Response generation and cache times are not the time the underlying chain state was observed. ## What is published [Protocol stats](https://www.topazdex.com/stats) shows TVL, rolling 24-hour and seven-day volume and fees, TOPAZ price, cumulative volume, pools with live gauges, per-network history charts, the current epoch, a by-network table and the top pools. Use the network menu to scope the supported data. Cumulative volume reads /v1/protocol/volume for all networks or the selected network. [Pool analytics](https://www.topazdex.com/stats/pools) ranks stable, volatile and concentrated pools on the selected networks. Every row links to its own chain’s pool page. Fee APR and Emissions APR are separate. [Fee performance](https://www.topazdex.com/stats/dynamic-fees) lists pools with indexed custom or dynamic fees and their observed rates, with BNB Chain module base and maximum fees in the same table. [TOPAZ](https://www.topazdex.com/topaz) shows the token’s price and pools, plus combined protocol activity. TOPAZ supply is a canonical token quantity; spoke xTOPAZ representations must not be added to it. ## How the data is produced The API combines chain-scoped indexed observations, pricing evidence, event history and contract state. Each response carries its own coverage, publication and observation metadata. No fixed refresh interval promises that all chains or endpoint families were observed together. Charts request UTC-aligned periods; headline windows roll with each source’s history boundary. History can be incomplete even when the latest market snapshot is available. ## Foundation transparency [Foundation transparency](https://www.topazdex.com/stats/foundation) retains the compatibility service’s wallet, veNFT allocation, incentive history and KPI reports. This specialized report is separate from combined multichain protocol totals; pool labels come from the chain-qualified market catalog. Deposited incentives are not the same thing as rewards claimed. ## Build on the data Use the [API reference](https://api.topazdex.com/docs), [OpenAPI schema](https://api.topazdex.com/openapi.json) and [data integration guide](https://www.topazdex.com/docs/developers/data-api). Discover supported chains through /v1/chains; never attach a spoke label to a hub response. ## Continue reading [Methodology](https://www.topazdex.com/stats/methodology) · [Rate definitions](https://www.topazdex.com/docs/stats/rates) · [Multichain integration](https://www.topazdex.com/docs/developers/multichain) --- Source: https://www.topazdex.com/docs/stats/rates # Rate definitions Each rate describes a different cash flow, reward asset and denominator. Unstaked liquidity earns trading fees; gauge-staked liquidity earns emissions. Voters receive notified fee and incentive funding. ## Liquidity provider rates Fee APR and Emissions APR are separate earning modes. Partially staked V2 positions can have both sources, and previously accrued claims can survive a custody change. Concentrated positions stake as whole NFTs. ## Fee APR The multichain API reports trailing seven-day Fee APR: (fees7dUsd × 365 / 7) / tvlUsd × 100. This simple annualization assumes no compounding. The numerator is the API’s observed seven-day fees, not today’s UTC bucket and not a client-side estimate. Pool Fee APR describes unstaked liquidity. Personal fee amounts and their valuation are separate from this pool reference rate. Missing pricing or an incomplete window can make the rate unavailable. ## Emissions APR For a streaming gauge, annualized reward-token flow is rewardRate × 31,536,000 × rewardPriceUsd. A V2 rate divides that flow by the relevant staked value. Reward assets are TOPAZ on BNB Chain and xTOPAZ on the spokes. Killed or expired gauges are not active emission streams. The API records the source, reward rate and applicable denominator. Do not add Fee APR to Emissions APR for the same unit of staked liquidity. ## Concentrated emissions Pool listings show the API’s reference $100 deposit at its specified range, using active staked liquidity and accounting for the reference deposit’s dilution. Read aprProfile and aprScenario for the actual range, methodology and any cap or fallback. Personal positions use their actual staked liquidity and range. An out-of-range position cannot assume the reference in-range return. A pool-wide TVL denominator and an active-liquidity denominator answer different questions. ## Voter rates Voter APR measures epoch funding relative to the value of votes competing for it; it is separate from LP returns. ## Voter APR Voter APR = (epoch fees + epoch incentives) / valued voting weight × 52 × 100. The page uses funding for the requested epoch and distinguishes unavailable valuation from a confirmed zero. Hub veTOPAZ power and spoke xTOPAZ voting shares have different units. Display chain, voting asset, epoch and observation time. Adding votes dilutes the same reward pot; a current reference APR does not promise the return on a new vote. ## APR and APY APR is simple annualization without compounding. APY requires an explicit reinvestment schedule. Claimed veTOPAZ rebases and growth in xTOPAZ assets per share do not make an unrelated pool or voter APR an APY. ## Other Topaz products Relays, Topaz Flow and Topaz Vaults have their own reward mechanics. Their rates must state the cash flow, asset, period, denominator, compounding assumption and observation time. ## xTOPAZ and cross-network comparisons xTOPAZ backing is locked TOPAZ per canonical share. Backing value, local market price and voting-share value are different measurements. Do not sum canonical shares with their bridged representations, or treat a receiver’s last delivered rate as a new hub observation. Combined protocol TVL and flow metrics are additive across eligible pools; APR percentages, holder counts and local vote units are not simply additive across networks. ## Continue reading [Methodology](https://www.topazdex.com/stats/methodology) · [Pool fees](https://www.topazdex.com/docs/liquidity/fees) · [Gauge staking](https://www.topazdex.com/docs/liquidity/staking) · [Data API](https://www.topazdex.com/docs/developers/data-api) --- Source: https://www.topazdex.com/docs/privacy Private Swaps # Private Swaps Topaz Private Swaps use the Topaz Privacy service and SilentSwap to route a payment privately between supported assets and EVM networks. Funding can come from BNB Chain, Robinhood Chain, Base or Ethereum. This service is separate from ordinary 0x and Relay swaps and the xTOPAZ LayerZero bridge. ## What are Topaz Private Swaps? Open [Private Swap](https://www.topazdex.com/swap/privacy) for the integrated flow. You choose one funding asset, one recipient and the recipient's payout asset and network. Your wallet signs the funding transactions prepared by the service; Topaz ID smart-wallet funding is currently blocked because the service supports EOA execution. Privacy depends on the route and its external services; it is not a guarantee that all transaction metadata or wallet activity is hidden. Check [Security & Audits](https://www.topazdex.com/docs/security) and the displayed review before sending. ## Where to swap privately The integrated route is [Swap → Private](https://www.topazdex.com/swap/privacy), with recent orders, tracking and eligible refund controls in the same app. **/privacy is the public Privacy Policy**, not the swap form. The [dedicated Privacy site](https://privacy.topazdex.com) provides additional hosted order and recovery tools. Its sign-in or recovery-account workflow can differ from the main app; do not expect every screen to be identical. ## How it works (in plain terms) 1. Pick a source network, token and amount, then the recipient address and payout asset on its destination network. 2. Request an estimate and review the minimum payout, routing fees, slippage, source gas and quote expiry. 3. Confirm the order. The app switches to the funding network and asks for an ERC-20 approval if required, followed by the deposit transaction there. 4. When funding outside BNB, that source transaction uses Relay to swap and bridge into the BNB gateway. You do not first send a manual BNB deposit. 5. Track the order through processing and payout. An expired quote returns for fresh review; a source confirmation is not final recipient delivery. ## Supported networks & tokens Funding networks are the service's /sources networks that also have a Topaz token registry (currently BNB Chain, Robinhood Chain, Base and Ethereum); /destinations determines payout networks. The selectors offer supported EVM networks and assets; a long-tail ERC-20 can be resolved on its own chain, with the estimate determining whether the requested route is available. A symbol match alone does not identify a token across networks. The current interface supports one recipient. It reads the source balance on that asset's chain and validates its own network limits and minimum payout. Payout networks are independent of Topaz's DEX launch registry: a supported payout network does not mean Topaz pools or xTOPAZ voting are deployed there. The funding gateway is on BNB. Eligible refunds pay **USDC on BNB**, even if you originally funded with another token on another chain. [Recovery & Refunds](https://www.topazdex.com/docs/privacy/recovery). ## Privacy levels The main app exposes slippage settings for the service route. Any privacy-level options offered by the [dedicated site](https://privacy.topazdex.com) belong to that hosted experience; the main app does not offer a privacy-level selector. Use the terms and estimate actually shown by the service, not an assumed timing or anonymity guarantee. ## Fees & amounts Before you confirm anything, the quote shows you: * ✓What you send — the source token and amount. * ✓Private deposit — the amount that enters the privacy route. * ✓Network + privacy fee — the cost of routing the swap privately. * ✓Recipient — the address being paid. * ✓Max slippage — the worst-case price movement you'll tolerate. There are no hidden charges beyond what the quote displays. You only ever pay gas for the transactions you approve in your own wallet, plus the fees shown in the quote. ## Security & trust Review the funding chain, spender, amount, recipient, payout token and network for every order. The deposit is the financial action; an estimate or order record is not a signed deposit. The route depends on the Privacy service, SilentSwap and any required funding bridge. Service status and refund eligibility can change while an order is in flight. A failed lookup is not a confirmed failure, and recoverability is subject to the supported order and contract state. Do not put wallet secrets or any hosted recovery material into chat or support messages. The integrated transaction flow does not ask you to copy a recovery-account seed as a normal deposit step. ## FAQ ### Which networks can fund a private swap? Use the source selector and a fresh estimate. Funding is currently offered on BNB Chain, Robinhood Chain, Base and Ethereum. ### Why does my wallet switch chains? The deposit must be sent on the selected funding asset's chain. A later refund is on BNB because the gateway holds USDC there. Verify each prompt against the action you chose. ### Where do I find a submitted order? Use recent orders below the integrated form, or the hosted tracking link. Records retained in this browser are scoped to the original wallet. [Order History](https://www.topazdex.com/docs/privacy/history). ### What happens if it fails? Inspect the original order and source receipt. Use the displayed eligibility check for a BNB USDC refund, or the dedicated site's supported recovery tools. Completion or refund is not guaranteed merely because an order exists. ## For developers & integrators The main app calls the service at https://privacy.topazdex.com/api/silentswap. Its source and destination registries, estimate, order, transaction, status and refund responses define the flow. Validate the funding chain and every prepared transaction before asking the wallet to sign. Hosted deep links and embeds belong to the Privacy service's API, not the Stats API or xTOPAZ OFT interface. Consult the service's current integration contract for those handoffs. [Topaz integration overview](https://www.topazdex.com/docs/developers/integration). ## Continue reading [Do a Private Swap →Step-by-step: connect, quote, sign, deposit, and track to completion.](https://www.topazdex.com/docs/privacy/swap)[Order History →Find every private swap you've made and its current status.](https://www.topazdex.com/docs/privacy/history)[Recovery & Refunds →How to sweep back stranded funds and claim on-chain refunds.](https://www.topazdex.com/docs/privacy/recovery)[Integration Guide →Deep link, embed the widget, or drive the flow via the HTTP API.](https://www.topazdex.com/docs/developers/integration) --- Source: https://www.topazdex.com/docs/privacy/swap Private Swaps # Do a Private Swap Use the integrated [Private Swap](https://www.topazdex.com/swap/privacy) form to fund from a supported EVM network and pay one recipient in a supported destination asset. The steps below describe the current main-app flow; the dedicated service can present different sign-in and recovery tools. ℹIntegrated and dedicated experiences The main app offers the form, recent orders, tracking and eligible refund controls at [Private Swap](https://www.topazdex.com/swap/privacy). The [dedicated Privacy site](https://privacy.topazdex.com) also provides hosted tools. This guide does not assume their screens or recovery-account prompts are identical. ## Step by step 1. Open [Private Swap](https://www.topazdex.com/swap/privacy) and connect the EOA wallet that will fund the order. Topaz ID smart-wallet funding is currently unavailable. 2. Choose the funding asset and network. Keep that network's native token for gas. 3. Choose the recipient and payout asset on the destination network. One recipient is supported in the current interface. 4. Get an estimate. Review fees, minimum payout, slippage, estimated time, funding chain and quote expiry. 5. Confirm the order and review the wallet prompts. An ERC-20 may need an allowance before the deposit. Every funding transaction must be on the source asset's network. 6. Send the deposit. Non-BNB funding uses the service's Relay entry to reach the BNB gateway in that source transaction. 7. Keep the order ID and deposit hash, then follow delivery. Recent orders let you reopen tracking. A source confirmation does not establish that the recipient has been paid. The integrated path asks for the prepared wallet transactions; it does not require a recovery-account phrase as a normal step. If a hosted recovery tool provides sensitive recovery material, keep it private and follow that service's instructions. ## Tracking your swap After you submit your deposit, the swap moves through these stages: 1 #### Order created Your order is registered. 2 #### Deposit submitted Your deposit transaction has been sent. 3 #### Deposit detected The network has confirmed your deposit. 4 #### Processing The private route is executing and the recipient is being paid. 5 #### Complete Done. The recipient has received their tokens. ℹIf something goes wrong A failed or delayed order needs a status and receipt check. Refund controls depend on eligibility; an accepted refund pays USDC on BNB. [Recovery & Refunds](https://www.topazdex.com/docs/privacy/recovery). ## Continue reading [Order History →Find every private swap you've made and check its status.](https://www.topazdex.com/docs/privacy/history)[Recovery & Refunds →How to sweep back stranded funds and claim on-chain refunds.](https://www.topazdex.com/docs/privacy/recovery)[Private Swaps Overview →What private swaps are, supported tokens, privacy levels, and fees.](https://www.topazdex.com/docs/privacy) --- Source: https://www.topazdex.com/docs/privacy/history Private Swaps # Order History Recent private-swap records in this browser are scoped to the wallet that submitted them. Reconnect that wallet to reopen tracking, and keep the order ID and deposit hash for checks outside this browser. ## Where to find it Recent orders appear below the [Private Swap form](https://www.topazdex.com/swap/privacy). Reopen an order to view its status, source transaction and the service's hosted tracking link. The [dedicated orders page](https://privacy.topazdex.com/orders) provides the service's own wallet-linked history tools. The app's local list is not a complete cross-device history. Clearing browser storage or switching devices can remove local entries. A missing entry does not prove that an order was never submitted. ## What each entry shows * Funding token, amount and source network. * Recipient, payout asset and destination network. * Source deposit hash, order status and payout details when available. * A supported refund or hosted recovery path where eligible. Keep deposit submitted, deposit detected, processing and recipient delivered distinct. The source explorer and destination explorer can be on different networks. ## Acting on an order Check the original order and source receipt before creating a replacement. Reopen tracking to refresh a delayed or unavailable status. For an eligible refund, use the displayed review and expect USDC on BNB, regardless of the funding token or chain. [Recovery & Refunds](https://www.topazdex.com/docs/privacy/recovery). ## Continue reading [Recovery & Refunds →How to sweep back stranded funds and claim on-chain refunds.](https://www.topazdex.com/docs/privacy/recovery)[Do a Private Swap →Step-by-step: connect, quote, sign, deposit, and track to completion.](https://www.topazdex.com/docs/privacy/swap)[Private Swaps Overview →What private swaps are, supported tokens, privacy levels, and fees.](https://www.topazdex.com/docs/privacy) --- Source: https://www.topazdex.com/docs/privacy/recovery Private Swaps # Recovery & Refunds For a delayed or failed private swap, first check the original order and deposit receipt. Recovery depends on the service and contract state. An order record or failed status alone does not guarantee a refund. ℹIntegrated refunds and hosted recovery The main app has eligible refund controls in [Private Swap tracking](https://www.topazdex.com/swap/privacy). The [dedicated Privacy site](https://privacy.topazdex.com/recover) provides additional service-specific recovery tools. Reconnect the wallet that funded the original order. ## Recover funds Use the original order's hosted tracking or recovery link for the service's supported recovery path. Do not assume that a wallet signature alone can recover every asset or route. If that service provided private recovery-account material, use it only in the verified recovery tool and never send it to support. A local browser record can help identify an order, but it does not control funds or replace the source transaction hash. If state is unavailable, retry the lookup before treating the deposit as failed or sending again. ## Refunds The integrated tracking view checks refund eligibility when an order fails or its escrow window passes undelivered. Review the prepared refund transaction and current contract state before signing. **Refunds pay USDC on BNB Chain.** The funding gateway holds the deposit there even when the original input came from Ethereum or another supported source network. A refund does not promise the original token or an automatic bridge back. Keep BNB for a required refund transaction and check the actual receipt before treating it as received. ## Recovery limits Recovery is conditional on the actual deposit, supported route, service state and contract eligibility. It can be delayed or unavailable; this guide does not promise that funds can always be recovered or that delivery has a fixed deadline. This refund path belongs to private swaps. Ordinary 0x and Relay cross-chain swaps and the [xTOPAZ bridge](https://www.topazdex.com/docs/xtopaz/bridge) have different status and recovery mechanisms. ## Continue reading [Order History →Find the stalled swap and start recovery from its entry.](https://www.topazdex.com/docs/privacy/history)[Do a Private Swap →Step-by-step: review the funding chain, recipient, deposit and delivery.](https://www.topazdex.com/docs/privacy/swap)[Private Swaps Overview →What private swaps are, supported tokens, privacy levels, and fees.](https://www.topazdex.com/docs/privacy) --- Source: https://www.topazdex.com/privacy Legal # Privacy Policy Last updated: June 4, 2026 Your privacy matters to us. This policy explains what information we collect across the Topaz marketing site, documentation, analytics, agent services, and decentralized exchange, how we use it, and the choices you have. Topaz is a non-custodial DeFi protocol. We never hold your assets or private keys. Because we integrate third-party sign-in providers such as Privy, Google, and X, this policy also describes how information flows through those services. ## 01Who We Are This Privacy Policy describes how the Topaz project (“Topaz,” “we,” “us,” or “our”) handles information in connection with the Topaz suite of products, which includes: * the marketing site and protocol documentation at topazdex.com; * the public analytics surface (protocol stats, foundation transparency, and performance dashboards); * the Topaz decentralized exchange (“DEX”) web application for swaps, liquidity, voting, and bribes; * the Topaz Agent, agent skill, and related AI, API, and developer integrations. Topaz is a non-custodial decentralized finance (DeFi) protocol. We do not take custody of your assets, control your private keys, or execute transactions on your behalf. Interactions with the underlying smart contracts occur directly between you and public blockchains. ## 02Blockchain Data Is Public Topaz is built on public blockchains, primarily BNB Chain. When you transact with the protocol, information including your wallet address, transaction amounts, token balances, and on-chain activity is recorded on a public, immutable ledger that we do not control and cannot alter or delete. This information is inherently public, may be linked to your identity by third parties, and persists independently of Topaz. Please consider this before transacting. ## 03Information We Collect We collect the following categories of information: Information you provide or connect * Wallet address when you connect a wallet to the DEX or use our services. * Authentication identifiers when you sign in through a third-party authentication provider (see [Third-Party Authentication](#third-party-auth)), which may include an email address, social handle, public profile information, or an embedded-wallet identifier. * Communications you send us, such as support requests, bug reports, or messages through community channels. Information collected automatically * Usage and device data such as IP address, browser type, device characteristics, pages viewed, referring URLs, and interaction events. * Cookies and similar technologies used for analytics, preferences, and session management (see [Cookies & Analytics](#cookies)). * On-chain activity associated with wallet addresses that interact with the protocol. We do not knowingly collect government-issued identifiers, and we do not request your private keys, seed phrases, or recovery codes. No legitimate Topaz service will ever ask for them. ## 04Third-Party Authentication Some Topaz services let you sign in or provision an embedded wallet through third-party authentication and identity providers. When you choose to use one of these methods, that provider processes your information under its own privacy policy, and limited information is shared with us to create and secure your session. Privy We use Privy for wallet connection, authentication, and embedded-wallet provisioning. Depending on the login method you choose, Privy may process your email address, social login identifiers, wallet address, and authentication metadata. See the [Privy Privacy Policy](https://privy.io/privacy). Google / Google Cloud OAuth If you sign in with Google (Google OAuth / Google Cloud), we receive basic profile information you authorize, such as your name, email address, and account identifier. Our use of information received from Google APIs adheres to the [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy), including its Limited Use requirements. See the [Google Privacy Policy](https://policies.google.com/privacy). X (Twitter) If you sign in with X, we receive your public profile information and account identifier as authorized through X's OAuth flow. See the [X Privacy Policy](https://x.com/en/privacy). We use the information from these providers only to authenticate you, create and secure your account or session, provision wallet functionality where applicable, and provide the services you request. You can revoke access at any time through the respective provider's account settings. ## 05How We Use Information We use the information we collect to: * Provide, operate, maintain, and secure our services; * Authenticate users and manage sessions and embedded wallets; * Produce and display protocol analytics, statistics, and transparency dashboards; * Monitor, debug, and improve performance, reliability, and security; * Detect, prevent, and respond to fraud, abuse, and security incidents; * Respond to your inquiries and provide support; * Comply with applicable legal obligations and enforce our terms. We do not sell your personal information. We process information based on our legitimate interest in operating the protocol, your consent (where required, such as for certain cookies), and our need to comply with the law. ## 06Cookies & Analytics We use cookies, local storage, and similar technologies to operate the site, remember preferences, and understand how our services are used. We use Google Analytics to collect aggregated usage statistics; this involves cookies and the processing of usage data by Google as described in the [Google Privacy Policy](https://policies.google.com/privacy). Most browsers let you refuse or delete cookies through their settings. Disabling cookies may affect the functionality of some parts of our services. ## 07How We Share Information We may share information with: * Service providers that perform functions on our behalf, such as authentication (Privy), identity providers (Google, X), hosting, database, and analytics vendors; * Public blockchains, where on-chain transactions are recorded permanently and publicly; * Legal and safety recipients when we believe disclosure is required by law, regulation, legal process, or to protect the rights, property, or safety of users or the public; * Successors in connection with a merger, acquisition, financing, or reorganization of the project or its assets. ## 08Data Retention & Security We retain information for as long as necessary to provide our services and for legitimate business or legal purposes. On-chain data cannot be deleted because it is stored on public blockchains outside our control. We use reasonable technical and organizational measures designed to protect information. However, no method of transmission or storage is completely secure, and we cannot guarantee absolute security. ## 09Your Rights & Choices Depending on where you live, you may have rights to access, correct, delete, or restrict the processing of your personal information, to object to processing, or to data portability. You may also withdraw consent where processing is based on consent. To exercise these rights, contact us using the details in [Contact](#contact). Note that rights generally do not extend to immutable on-chain data, which we cannot modify or erase. We may need to verify your identity before responding. ## 10International Users & Children Our services are operated for a global audience, and information may be processed in countries other than your own, which may have different data-protection rules. By using our services, you understand that your information may be transferred internationally. Our services are not directed to children under the age of majority in their jurisdiction (and in no case under 18). We do not knowingly collect information from children. If you believe a child has provided us information, please contact us. ## 11Changes to This Policy We may update this Privacy Policy from time to time. When we do, we will revise the “Last updated” date above. Material changes may be communicated through our services or community channels. Your continued use of our services after an update constitutes acceptance of the revised policy. ## 12Contact For privacy questions or requests, reach us through our official channels: * X: [@TopazDex](https://x.com/TopazDex) * Telegram: [t.me/TopazDex](https://t.me/TopazDex) See also our [Terms of Service](https://www.topazdex.com/terms). --- Source: https://www.topazdex.com/terms Legal # Terms of Service Last updated: June 4, 2026 These Terms govern your use of the Topaz Services, including our marketing site, documentation, analytics, agent tooling, and the Topaz decentralized exchange. Please read them carefully. Topaz is non-custodial DeFi software. You transact directly with public smart contracts using your own wallet, and you are responsible for understanding the risks involved. ## 01Acceptance of Terms These Terms of Service (“Terms”) govern your access to and use of the Topaz suite of products, including the marketing site, protocol documentation, public analytics dashboards, the Topaz Agent and developer integrations, and the Topaz decentralized exchange web application (collectively, the “Services”). By accessing or using the Services, you agree to be bound by these Terms and our [Privacy Policy](https://www.topazdex.com/privacy). If you do not agree, do not use the Services. ## 02Nature of the Services Topaz is a non-custodial, decentralized finance protocol deployed as smart contracts on public blockchains, primarily BNB Chain. The Services provide an interface to, and information about, those smart contracts. They include automated market making for swaps, liquidity provision, a ve(3,3) voting and incentive system, and related analytics and agent tooling. * We do not take custody of, control, or have access to your assets or private keys. * We do not execute transactions for you; you initiate and sign every transaction with your own wallet. * Smart-contract interactions are peer-to-protocol and occur on a blockchain we do not control. * We are not a broker, exchange operator, financial institution, money transmitter, or custodian. The interface is provided as a convenience. You may also interact with the underlying smart contracts directly and independently of our Services. ## 03Eligibility & Compliance By using the Services, you represent and warrant that you: * Are at least 18 years old and have the legal capacity to enter into these Terms; * Are not located in, a citizen or resident of, or organized under the laws of any jurisdiction subject to comprehensive sanctions, and are not on any sanctions or restricted-party list; * Will not access the Services from a jurisdiction where doing so, or where the use of decentralized exchanges or digital assets, is prohibited or restricted; * Are solely responsible for complying with all laws, regulations, and tax obligations that apply to you. We may restrict or deny access to the Services to any person or in any jurisdiction, at our discretion, including to comply with legal requirements. ## 04Wallets & Authentication To use certain features you may connect a self-custodial wallet or authenticate through a third-party provider such as Privy, Google, or X. Your use of those providers is also subject to their respective terms and privacy policies. You are solely responsible for the security of your wallet, credentials, private keys, seed phrases, and devices. Any transaction authorized through your wallet or account is your responsibility. We cannot reverse, cancel, or recover transactions, and we cannot restore lost keys. Never share your private keys or seed phrase with anyone; no legitimate Topaz service will request them. ## 05Assumption of Risk Using DeFi protocols and digital assets involves significant risk. By using the Services, you acknowledge and accept these risks, including: * Price volatility and the potential total loss of value of digital assets; * Smart-contract vulnerabilities, bugs, exploits, and economic or oracle attacks, even where audited; * Impermanent loss, slippage, failed transactions, and gas costs; * Loss of funds from user error, phishing, compromised wallets, or malicious tokens; * Regulatory uncertainty and the possibility of adverse legal or tax treatment; * Blockchain network risks, including congestion, forks, reorganizations, and downtime; * Third-party dependencies, including bridges, routers, RPC providers, and front-end hosting. You are responsible for evaluating these risks and for any decision to transact. Nothing in the Services is financial, investment, legal, or tax advice. Conduct your own research. ## 06Tokens & Governance The Services may reference the TOPAZ token, veTOPAZ locks, emissions, voting, bribes, and other protocol mechanics. Information about tokens, rewards, APRs, and analytics is provided for informational purposes only, may be inaccurate or delayed, and does not constitute a promise of future value, yield, or returns. Digital assets are not deposits, securities offerings, or financial products offered by us, and they are not insured or guaranteed. You should not acquire any token expecting profit from the efforts of others. ## 07Acceptable Use You agree that you will not: * Use the Services for any unlawful purpose or in violation of any applicable law or regulation; * Engage in money laundering, terrorist financing, fraud, market manipulation, or sanctions evasion; * Attempt to gain unauthorized access to, disrupt, or interfere with the Services or their infrastructure; * Introduce malware, exploit vulnerabilities, or conduct denial-of-service or similar attacks; * Use bots, scrapers, or automated means in a manner that imposes an unreasonable load or circumvents access controls; * Misrepresent your identity, impersonate others, or infringe the intellectual-property or other rights of any party. ## 08Third-Party Services & Content The Services may link to or integrate third-party tools, websites, data providers, authentication providers, and protocols. We do not control and are not responsible for third-party services or content. Your use of them is at your own risk and subject to their terms. The inclusion of any link or integration does not imply our endorsement. ## 09Intellectual Property The Topaz name, logos, marketing site, documentation, and interface design are owned by us or our licensors and are protected by applicable laws. Subject to these Terms, we grant you a limited, non-exclusive, non-transferable, revocable license to access and use the Services for their intended purpose. Open-source components are licensed under their respective licenses. You may not use our marks without permission. ## 10Disclaimers THE SERVICES ARE PROVIDED “AS IS” AND “AS AVAILABLE” WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. We do not warrant that the Services will be uninterrupted, secure, error-free, or free of harmful components, that information will be accurate or current, or that smart contracts are free of vulnerabilities. You use the Services at your own risk. ## 11Limitation of Liability TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL TOPAZ OR ITS CONTRIBUTORS, AFFILIATES, OR SERVICE PROVIDERS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR ANY LOSS OF PROFITS, REVENUE, DATA, OR DIGITAL ASSETS, ARISING OUT OF OR RELATED TO YOUR USE OF THE SERVICES, WHETHER BASED ON WARRANTY, CONTRACT, TORT, OR ANY OTHER LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW CERTAIN LIMITATIONS, SO SOME OF THE ABOVE MAY NOT APPLY TO YOU. ## 12Indemnification You agree to indemnify, defend, and hold harmless Topaz and its contributors, affiliates, and service providers from and against any claims, liabilities, damages, losses, and expenses, including reasonable legal fees, arising out of or related to your use of the Services, your violation of these Terms, or your violation of any law or the rights of any third party. ## 13Changes & Termination We may modify, suspend, or discontinue any part of the Services at any time, and we may update these Terms from time to time. When we update the Terms, we will revise the “Last updated” date above. Your continued use of the Services after changes take effect constitutes acceptance of the revised Terms. We may restrict or terminate your access to the front-end Services at any time. The underlying smart contracts are decentralized and may remain accessible independently of our Services. ## 14Governing Law & Disputes These Terms and any dispute arising out of or relating to them or the Services will be governed by applicable law without regard to conflict-of-laws principles, and you agree to resolve disputes on an individual basis. To the extent permitted by law, you waive any right to participate in a class action. If any provision of these Terms is found unenforceable, the remaining provisions will remain in full effect. ## 15Contact Questions about these Terms? Reach us through our official channels: * X: [@TopazDex](https://x.com/TopazDex) * Telegram: [t.me/TopazDex](https://t.me/TopazDex) See also our [Privacy Policy](https://www.topazdex.com/privacy). --- Source: https://www.topazdex.com/docs/multichain # Topaz across networks Topaz is a live multichain DEX with one shared token economy. BNB Chain remains the hub for TOPAZ issuance and veTOPAZ locks. Spoke networks bring Topaz pools, liquidity incentives and local voting closer to the assets and users on each network. **Live on five networks — updated October 1, 2026.** Topaz DEX, liquidity, xTOPAZ bridging and voting are live on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Entry and redemption use the BNB vault. Arc trades USDC directly, with no wrapped native; its CL Zap is live for ERC-20 deposits, with USDC paying gas. Every transaction still checks current balances, approvals, epoch rules and contract conditions. [Contract addresses](https://www.topazdex.com/docs/contracts). ## The launch networks | Network | Role | Topaz DEX and voting | xTOPAZ | | --------------- | ------------- | ------------------------------------------------- | ---------------------------------------- | | BNB Chain | Hub | Live: V2, Concentrated, CL Zap and veTOPAZ voting | Live vault, entry, redemption and bridge | | Robinhood Chain | Spoke | Live: V2, Concentrated, CL Zap and xTOPAZ voting | Live bridge and local staking | | Base | Spoke | Live: V2, Concentrated, CL Zap and xTOPAZ voting | Live bridge and local staking | | Ethereum | Spoke | Live: V2, Concentrated, CL Zap and xTOPAZ voting | Live bridge and local staking | | Arc | Spoke | Live: V2, Concentrated, CL Zap (ERC-20 only), Topaz Auto and xTOPAZ voting | Live bridge and local staking | DEX, voting, bridging and concentrated liquidity zaps have separate availability. A live swap quote on another network can use aggregation without any Topaz pool being deployed there. See [Swaps & Routing](https://www.topazdex.com/docs/trading/swaps). ## One economy, local liquidity | On BNB | On each spoke | | ----------------------------------------------------------- | -------------------------------------------------------------------- | | TOPAZ is issued by the existing Minter. | There is no independent TOPAZ emission schedule. | | Holders lock TOPAZ as veTOPAZ NFTs and vote for BNB gauges. | Holders stake xTOPAZ into local positions and vote for local gauges. | | An aggregate permanent veTOPAZ lock backs xTOPAZ shares. | The spoke's xTOPAZ represents the same shares in that BNB backing. | | The system gauge receives a share of BNB emissions. | The chain's budget arrives as xTOPAZ and funds local LP gauges. | You can keep an ordinary BNB veTOPAZ lock and continue voting there. Wrapping into xTOPAZ is an optional change in how you participate: the original NFT is merged and burned, and its individual BNB voting choices are replaced by the vault's system-gauge strategy. [Compare TOPAZ, veTOPAZ and xTOPAZ](https://www.topazdex.com/docs/xtopaz). ## Choose a network before an action Pools, liquidity positions, gauges, votes, incentive deposits and claims belong to a specific chain. A USDC pair on Base is a different market from a similarly named BNB pair. Verify the chain and token addresses, then use that chain's pool and gauge contracts. The [voting overview](https://www.topazdex.com/vote) is designed to compare opportunities across networks before opening a local allocation form. BNB uses [veTOPAZ voting](https://www.topazdex.com/vote/bnb); spoke voting uses an xTOPAZ stake on the selected network. A vote on one chain cannot allocate directly to a pool on another. Explore, pool and token details, wallet balances and liquidity positions cover the five live networks. Voting comparisons use local reward observations. Protocol stats cover every live network; the foundation report and dynamic-fee module settings retain their BNB Chain scope. Unavailable values remain unavailable, with partial totals disclosed. [Data coverage](https://www.topazdex.com/docs/stats). ## Three different cross-chain journeys | Your purpose | Route | What arrives | | ------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------ | | Exchange assets across networks | Ordinary swap through 0x Cross-Chain or Relay (Relay only for Arc) | The quoted output token, subject to that order's status and refund rules | | Move Topaz voting capital | xTOPAZ bridge through LayerZero | xTOPAZ shares on the destination network | | Send through a privacy route | [Private swaps](https://www.topazdex.com/swap/privacy) through the Topaz Privacy service | The chosen payout asset; refunds, when eligible, are USDC on BNB | These services have different supported networks and recovery paths. Private-swap network support does not mean Topaz liquidity or xTOPAZ bridging is live there. ## Start with the journey you need * [Understand xTOPAZ](https://www.topazdex.com/docs/xtopaz): backing, rewards and the difference from veTOPAZ. * [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get): deposit TOPAZ or wrap an eligible BNB lock. * [Bridge xTOPAZ](https://www.topazdex.com/docs/xtopaz/bridge): routes through BNB, delivery and recovery. * [Stake and vote on a spoke](https://www.topazdex.com/docs/xtopaz/staking): positions, withdrawal dates and local rewards. * [Redeem on BNB](https://www.topazdex.com/docs/xtopaz/redeem): receive a new permanent veTOPAZ lock. * [Follow the emissions](https://www.topazdex.com/docs/multichain/emissions): weekly budgets and share backing. * [Integrate the expansion](https://www.topazdex.com/docs/developers/multichain): chain identity, contracts and indexer boundaries. --- Source: https://www.topazdex.com/docs/xtopaz # xTOPAZ explained xTOPAZ is a transferable share token backed by TOPAZ inside an aggregate permanent veTOPAZ lock on BNB Chain. It connects the BNB token economy to local liquidity and voting on other Topaz networks. **Live on five networks.** Get xTOPAZ on BNB, bridge it to Robinhood Chain, Base, Ethereum or Arc, and stake to vote for local pools. Entry, redemption, bridging and local voting are enabled, subject to current contract conditions. Start at the [xTOPAZ overview](https://www.topazdex.com/xtopaz). [Network availability](https://www.topazdex.com/docs/multichain) · [Contract addresses](https://www.topazdex.com/docs/contracts). ## TOPAZ, veTOPAZ and xTOPAZ | Asset or position | What it represents | How it participates | Exit | | ----------------- | -------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | | TOPAZ | The BNB protocol token | Can be locked as veTOPAZ or deposited for xTOPAZ | Liquid token, subject to market liquidity | | veTOPAZ | An individual BNB lock NFT | Owner chooses BNB gauge votes; eligible locks also participate in protocol governance | Underlying TOPAZ withdrawable after a decaying lock expires | | Liquid xTOPAZ | Shares in the vault's permanent BNB lock | Shares in backing growth; can be transferred or bridged | Redeem on BNB for a new permanent veTOPAZ NFT when permitted | | Staked xTOPAZ | A local spoke voting position holding xTOPAZ | Votes for that spoke's gauges and claims local fees and incentives | Withdraw xTOPAZ after the position's date and voting gates permit | An xTOPAZ stake is not a veTOPAZ NFT or an LP position. Merely holding liquid xTOPAZ does not cast local gauge votes or earn local voter fees. ## What backs a share The vault records TOPAZ assets through its aggregate veTOPAZ lock and shares through the canonical xTOPAZ total supply: ```text assets per share = locked TOPAZ in the aggregate / canonical xTOPAZ supply shares received = floor(TOPAZ deposited × total shares / total assets) TOPAZ represented = floor(xTOPAZ shares × total assets / total shares) ``` The initial seed creates a one-to-one accounting rate. Later, one xTOPAZ can represent more than one locked TOPAZ. Deposits use the current rate; they do not always mint one xTOPAZ per TOPAZ. Integer rounding favors the vault, and an irredeemable seed remains to keep it initialized. The backing rate is not a USD price or a promise that a market will buy xTOPAZ at that value. A redemption returns locked TOPAZ in an NFT, not liquid TOPAZ or a stablecoin. ## How backing grows Settled rebases add TOPAZ to the aggregate without adding shares. The portion of system-gauge emissions not assigned to spokes is also locked without matching shares. Both can increase TOPAZ represented by each xTOPAZ, including shares on spokes. Your liquid xTOPAZ balance does not rebase upward. The assets behind each share change. Read the [emissions guide](https://www.topazdex.com/docs/multichain/emissions) for the difference between backing growth and the xTOPAZ paid to spoke LPs. ## What wrapping changes Wrapping merges an eligible veTOPAZ NFT into the aggregate and burns the original NFT. You receive shares and give up that NFT's individual BNB gauge allocation. The aggregate votes through a system-gauge strategy. Existing pool fees and incentives must be accounted for before the NFT is burned; read [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get) before choosing this route. An ordinary managed lock or relay keeps a different custody and reward model. xTOPAZ is not a renamed relay, and its aggregate is a normal permanent lock rather than a managed veNFT. [Managed Locks](https://www.topazdex.com/docs/voting/managed). ## Participation on a spoke On Robinhood Chain, Base, Ethereum or Arc, bridge liquid shares to the network and stake them in its voting vault. Each position has its own amount, allocation and withdrawal date. Voting weight equals the staked share amount; the backing exchange rate is not multiplied into it. Local voter rewards are the pool's fees and incentive tokens. Local LP gauge emissions are xTOPAZ. ## Understand the commitment The backing stays permanently locked unless shares are redeemed into a new permanent NFT. Converting that returned NFT to a decaying lock starts the ordinary maximum-duration countdown under BNB lock rules; bridging back does not bypass it. Vault pauses, an active system vote, split permissions, bridge capacity and delivery can affect when a journey completes. [Redemption](https://www.topazdex.com/docs/xtopaz/redeem) · [Security & Audits](https://www.topazdex.com/docs/security). --- Source: https://www.topazdex.com/docs/xtopaz/get # Get xTOPAZ There are two entry paths on BNB: deposit liquid TOPAZ, or wrap a veTOPAZ NFT you already own. Both add permanently locked backing and mint xTOPAZ at the vault's current share rate. **Entry is enabled on BNB.** [Get xTOPAZ](https://www.topazdex.com/xtopaz/get) by depositing TOPAZ or wrapping an eligible lock, optionally bridging in the same source transaction. One confirmation handles approval, waits for its receipt, then checks and simulates the entry transaction automatically. BNB fork entry has been signed; mainnet wallet execution and destination delivery remain separate verification work. [Network availability](https://www.topazdex.com/docs/multichain). ## Deposit liquid TOPAZ 1. Choose BNB and the amount of TOPAZ to deposit. Keep BNB available for gas and any bridge fee. 2. Check that entry is open, your balance is sufficient and the vault has valid backing. Review the estimated xTOPAZ shares at the current rate. 3. Review the one-time unlimited TOPAZ approval to the deposit router, if needed. Confirm once in the dapp and follow the wallet prompts; the entry transaction is simulated automatically after approval. 4. Confirm the deposit and wait for the receipt. The actual share mint establishes what you received. A deposit increases the vault's aggregate permanent lock. It does not create a separate veTOPAZ NFT for you. Very small amounts can round down to no shares and must not be submitted. ## Wrap an existing veTOPAZ NFT An eligible lock must be a normal lock, owned by the submitting wallet, and either permanent or unexpired. Managed NFTs and NFTs still deposited in a managed lock cannot be wrapped directly. An expired lock should use its ordinary withdrawal path. A lock that voted in the current epoch must wait for the next epoch. A carried-over vote must be reset, and resets are blocked during the first hour after Thursday rollover. Entry can be paused independently of the aggregate's voting state; entry itself can remain open while the aggregate is voting. Claim the selected NFT's pool fee and incentive rewards before wrapping; the review reminds you. The vault synchronizes settled rebases before calculating the final shares. A long rebase backlog may need repeated claims before wrapping can proceed. **The source NFT is burned.** Unclaimed fees and incentives keyed to it are lost when it is burned. Resolve missing or failed reward reads first. A lock deposited in a relay can be wrapped once it is withdrawn from the relay. ## Review the NFT approval carefully The wrapping router uses `setApprovalForAll` on VotingEscrow. This authorizes the router across all veTOPAZ NFTs owned by that wallet, not just the selected NFT. The router acts as operator while the user still owns the NFT, then lets the vault perform the merge. Check the router and chain before granting this approval; it can be revoked later. This differs from the reusable ERC-20 allowance for a TOPAZ deposit and from approving an individual concentrated liquidity NFT to its gauge. ## Enter and bridge in one source transaction A combined wrap-and-bridge or deposit-and-bridge uses BNB for entry and sends the resulting shares through the hub adapter. Review the destination, recipient, native messaging fee, bridge precision and any xTOPAZ dust retained on BNB. The estimate precedes the transaction's rebase synchronization and final share calculation. A successful source receipt establishes actual minted and sent amounts; destination delivery is a separate step. Approvals are not explicitly simulated. After any approval receipt, the entry transaction is checked and simulated automatically before the wallet prompt. Source simulation does not establish destination delivery. ## After entry Keep the accepted transaction hash. The interface has receipt checks for saved single-hash deposits and wraps, including after reload. A historical receipt describes what happened in that transaction; it is not your current balance. Unsupported or ambiguous records must not be treated as a successful mint. Continue with [Bridge xTOPAZ](https://www.topazdex.com/docs/xtopaz/bridge) or [Stake and vote](https://www.topazdex.com/docs/xtopaz/staking). Swapping an arbitrary token into xTOPAZ through the separate xTOPAZ zap is a contract capability outside the initial interface release; the [concentrated liquidity zap](https://www.topazdex.com/docs/liquidity/zaps) creates an LP NFT instead. --- Source: https://www.topazdex.com/docs/xtopaz/bridge # Bridge xTOPAZ xTOPAZ uses LayerZero OFT transfers to move shares between BNB and a spoke. The share backing remains on BNB. A bridge moves xTOPAZ; it does not change it into TOPAZ or another asset. **Bridging is live.** [Bridge xTOPAZ](https://www.topazdex.com/xtopaz/bridge) connects BNB with Robinhood Chain, Base, Ethereum and Arc. Each route checks peers, limits, fees and current contract state before sending. Source confirmation and destination delivery are separate. [Network availability](https://www.topazdex.com/docs/multichain). ## Every route goes through BNB | Journey | Legs | | -------------------- | ---------------------------------------------------------- | | BNB to a spoke | One OFT transfer from the hub adapter to that spoke | | A spoke to BNB | One OFT transfer back to the hub adapter | | One spoke to another | Return to BNB, then send from BNB to the destination spoke | The bridge form always has BNB Chain on one side. Choose Robinhood, Base, Ethereum or Arc as the source and BNB becomes the destination; choose BNB as the source to send to any of those four networks. The arrow reverses the direction. To move between spokes, first bridge to BNB and wait for delivery, then start a new transfer from BNB. The form does not offer a two-step journey. Only liquid xTOPAZ can bridge. Withdraw a [spoke stake](https://www.topazdex.com/docs/xtopaz/staking) first if your shares are staked. BNB veTOPAZ NFTs and LP tokens are not sent through the xTOPAZ bridge. ## What the bridge does On BNB, the adapter locks canonical xTOPAZ when sending to a spoke and unlocks it on return. The spoke OFT mints on receipt and burns on departure. The hub tracks each spoke's bridged supply, including shares that have arrived but have not been staked. The bridge's shared precision is six decimals. For an 18-decimal xTOPAZ token, quantities below a multiple of `10^12` raw units cannot be sent. Review both the amount actually sent and the dust left on the source; bridging does not promise delivery of the entire typed decimal amount. ## Review before sending * Confirm source and destination networks and the recipient on the destination. A matching address string is not proof that a smart wallet is deployed or controlled there. * Read the fresh send amount, receive amount, native messaging fee and source gas requirement. Keep the source network's native token available for gas and the messaging fee. * Check both ends of the route, their pause state and remaining capacity. Capacity can change after the quote. * On BNB, the bridge adapter receives an unlimited xTOPAZ allowance when the existing allowance is insufficient. A direct send from the spoke OFT burns the caller's shares without a separate ERC-20 spender approval. Confirm the review once: Topaz automatically requests any approval, waits for its receipt, checks and simulates the bridge, then requests the bridge transaction. Your wallet still asks you to confirm each transaction. Changes to the reviewed transfer or fee limit require a new review. ## Confirmation is not delivery The source transaction can confirm while the packet is still in flight. Track the source hash and LayerZero packet identifier. The interface's saved-transfer checks verify source events and the actual sent amount, then use the LayerZero status report and the named destination receipt to check delivery. A source receipt alone is not enough to say “received.” Nor does an unavailable status mean the transfer failed. Before retrying a send, establish whether the original transaction was accepted so that you do not send a second transfer accidentally. Saved single-hash checks can run on the original chain after a network switch or feature rollback. Records are local to the browser; keep the hash yourself. Reload recovery for ambiguous batches and every historical RPC condition is not established. ## Delays, pauses and limits A paused route or exhausted receive capacity can hold a packet for retry after conditions change. The hub inbound policy limits the rate at which a spoke can return shares; use current on-chain availability rather than assuming a fixed limit or delivery time. Configured limits may change, and bridge recovery is not a guaranteed instant refund. For a delayed transfer, inspect its original source receipt and message status, then follow that packet's supported retry path. Do not use the Private Swap refund flow: it belongs to another service and another asset journey. ## Optional actions after delivery The contracts also define bridge-and-stake on a spoke and bridge-back-and-redeem on BNB. If the destination action cannot run, their composers are designed to deliver liquid xTOPAZ to the designated recipient instead. Receiving shares does not establish that staking or redemption succeeded. Composed destination actions are outside the current interface flow. Use a plain bridge transfer, wait for delivery, then stake locally or redeem on BNB. [Spoke staking](https://www.topazdex.com/docs/xtopaz/staking) · [BNB redemption](https://www.topazdex.com/docs/xtopaz/redeem). --- Source: https://www.topazdex.com/docs/xtopaz/staking # Stake xTOPAZ and vote On a Topaz spoke, stake xTOPAZ in the local voting vault to direct that network's gauge emissions and claim fees and incentives from the pools you vote for. This is voting-capital staking. [LP gauge staking](https://www.topazdex.com/docs/liquidity/staking) is a separate action that earns emissions. **Local voting is live.** [Stake xTOPAZ](https://www.topazdex.com/xtopaz/stakes) on Robinhood Chain, Base, Ethereum or Arc, then vote and claim local fees and incentives. Each action checks ownership, epoch rules and current contract conditions before signing. [Network availability](https://www.topazdex.com/docs/multichain). ## Each stake is a position A position has an owner, an xTOPAZ amount, a local integer ID, a vote allocation and an `unlockAt` date. No ERC-721 NFT is minted. One wallet can own several positions with different dates and allocations. Voting power equals the xTOPAZ amount staked in that position. It does not decay with time and is not multiplied by the TOPAZ-per-share rate. Position IDs are local to their chain and voting vault; position 12 on Base is not position 12 on Robinhood or BNB veTOPAZ NFT 12. ## Open a stake or add to one Choose a network and enter the liquid xTOPAZ amount to stake. The form shows the deployed minimum and withdrawal date. Review once: Topaz requests an unlimited xTOPAZ approval to that network's voting vault if needed, waits for confirmation, then automatically checks and simulates the stake before asking your wallet to send it. Approvals do not have a separate simulation step. Your wallet confirms each transaction. Money entering a position sets its withdrawal date to the start of the epoch after the next configured number of full epochs. With the default `lockEpochs = 1`, a stake opened in epoch N unlocks at the start of N+2\. This is roughly 7–14 days, depending on when you enter, plus any voting restrictions that apply at exit. For example, funds added on Tuesday September 8, 2026 are in the epoch beginning September 3\. With the default setting, their date is Thursday September 17 at 00:00 UTC. If the position is voting, the first-hour restriction also applies. Adding to an old position can relock its **entire** balance. Opening a new position keeps the old position's date separate. Only the owner or authorized operator can add to an existing position; a third party staking for you opens a new one and cannot extend an old position with dust. ## Cast local votes 1. Select the spoke and position, then compare that chain's live pools and available rewards. 2. Allocate percentages across its gauges. Check the local Voter's maximum pool count, live gauge state and voting window. 3. Review the resulting weights and the source of each reward estimate. Unknown prices or failed reads are unavailable, not zero. 4. Refresh and simulate the next call before confirming. Changed values require a fresh review. Voting opens after the first hour of the Thursday epoch and normally closes one hour before the next rollover. Each position can cast one vote per epoch. Existing allocations carry over; a `poke` refreshes their weight. Resetting requires the previous vote to be from an earlier epoch. Voting and claiming do not extend the withdrawal date. ## What a voter receives Voters claim local pool fees and the tokens posted as local incentives after the reward epoch ends. Open a stake and select Claim rewards to review fees and incentives together. One confirmation starts the sequence; each claim is checked and simulated before sending. Confirmed claims are excluded from later steps. Merely staking without voting does not allocate to a pool. xTOPAZ backing can also grow through BNB settlement, but that is reflected in the share rate, not a separate rebase claim on each spoke position. Local LPs staked in gauges receive the chain's xTOPAZ emissions. Their Emissions APR and your Voter APR measure different cash flows and must not be added together. [Rate Definitions](https://www.topazdex.com/docs/stats/rates). ## Withdraw or close Only the owner can withdraw, after `unlockAt` and the applicable voting gates. Partial withdrawal rescales existing votes to the remaining balance and leaves the remaining balance's date unchanged. A voting position cannot be fully closed in the epoch it last voted, and withdrawals from voting positions are blocked during the first hour after rollover. An unlocked position with no active vote does not need a voting reset. Always use the actual position state rather than treating Thursday 01:00 as a universal unlock promise. Closed position IDs retain their owner so previously earned fees and incentives remain claimable. Expand Closed stakes on the Stakes page to open them and claim rewards after the balance reaches zero. Once withdrawn, the liquid shares can stay on the spoke or [bridge through BNB](https://www.topazdex.com/docs/xtopaz/bridge). ## Operators, merges and pauses The contract permits an owner to authorize a vote operator across their positions. Operators can vote, add, merge and claim; rewards pay the owner, and operators cannot withdraw funds. A merge keeps the target's allocation and the later withdrawal date. A source with an active vote must satisfy reset rules. Operator and merge contracts do not imply a finished interface flow. New stakes and additions can be paused locally, while the existing contract rules continue to govern withdrawals, voting and claims. Admins can configure the lock length for new money up to four full epochs; a zero setting does not erase previously recorded withdrawal dates. --- Source: https://www.topazdex.com/docs/xtopaz/redeem # Redeem xTOPAZ Redemption burns xTOPAZ on BNB and splits its share of the aggregate backing into a new permanent veTOPAZ NFT for the recipient. It does not pay liquid TOPAZ and does not restore the original NFT that was wrapped. **Redemption is enabled on BNB.** [Redeem xTOPAZ](https://www.topazdex.com/xtopaz/redeem) checks the vault state and handles approval followed by automatic redemption simulation from one dapp confirmation. The result is a new permanent veTOPAZ NFT. BNB fork execution is recorded; mainnet redemption through this interface remains unverified. [Network availability](https://www.topazdex.com/docs/multichain). ## Bring liquid shares to BNB Shares on a spoke must return through the [xTOPAZ bridge](https://www.topazdex.com/docs/xtopaz/bridge). Withdraw any spoke voting position first, respecting its date and vote state. A source bridge confirmation does not make shares available for redemption until the BNB delivery is confirmed. The contracts also support a composed bridge-back-and-redeem path with a liquid-share fallback. That destination action is outside the initial interface flow. ## When redemption is open Redemption requires the vault's unwrap pause to be off, the aggregate not to be voting, split permission to be available and enough backing to preserve the vault's seed. A settled rebase backlog must be drained before splitting can burn the aggregate's old ID. The strategy's default system-vote window is Wednesday 18:00–22:00 UTC. Redemption closes when that vote is actually cast. A reset can reopen it after Thursday's first-hour distribution restriction, once the reset transaction executes. The time alone is not sufficient: read the live contract state. Entry via deposit or wrap has its own separate pause. ## Review and redeem 1. Choose how many liquid xTOPAZ shares to redeem on BNB and the recipient of the new NFT. 2. Review the share-to-TOPAZ estimate, available backing and the permanent-lock result. Settled rebases are synchronized before final contract pricing. 3. Review the one-time unlimited xTOPAZ approval to the vault, if needed. Confirm once in the dapp and follow the wallet prompts; redemption is simulated automatically after the approval receipt. 4. Submit the redemption and wait for its receipt. Use the actual share burn, split and recipient custody evidence to identify the new NFT. The interface supports saved single-hash redemption checks after reload. A historical result links the receipt-created lock; it does not establish its present owner or balance after later transactions. ## Managing the resulting lock The new NFT is a normal permanent veTOPAZ lock on BNB. Its individual BNB voting choices are again controlled by its owner, subject to the normal epoch rules. Claimable local spoke voter rewards remain keyed to their original stake IDs and are not included in redemption. To eventually withdraw liquid TOPAZ, the owner must turn permanent mode off when permitted, then wait for the ordinary maximum-duration decaying lock to expire. Redemption and bridging do not bypass the underlying lock commitment. [veTOPAZ Locks](https://www.topazdex.com/docs/tokenomics/vetopaz). --- Source: https://www.topazdex.com/docs/multichain/emissions # Multichain emissions Topaz's expansion keeps the existing TOPAZ emission engine on BNB. Spoke LP incentives are funded from a system gauge's share of those emissions, converted into xTOPAZ and delivered to local gauges. **Live multichain system.** This guide describes the deployed hub and spoke settlement design. A live network does not imply a nonzero budget in every epoch: gauges receive the amounts actually finalized, delivered and funded. [Network availability](https://www.topazdex.com/docs/multichain) · [Contract addresses](https://www.topazdex.com/docs/contracts). ## Follow one week's emissions | Step | What happens | | ----------------------- | --------------------------------------------------------------------------------------------------------------------- | | BNB issuance | The existing Minter issues weekly TOPAZ under the existing schedule. | | System-gauge allocation | The aggregate permanent lock votes for the system pool; the system gauge receives its vote-weighted share. | | Hub settlement | The coordinator claims that allocation, synchronizes the vault rebase and reads canonical and per-spoke share supply. | | Budget calculation | Each enabled spoke receives a share budget proportional to its tracked xTOPAZ supply. | | Backing and mint | All claimed TOPAZ is permanently locked; only the allocated spoke budgets are minted as new xTOPAZ. | | Delivery | Each budget travels through LayerZero to that spoke's receiver. | | Local distribution | The local Voter allocates received xTOPAZ to its gauges according to local voting weights. | The system gauge credits its allocation immediately to its strategy; it is a special accounting gauge, not an ordinary user LP farming pool. Local user gauges stream the rewards they actually receive. ## How a chain's budget is calculated After synchronizing settled rebases, let A be aggregate locked TOPAZ, S canonical xTOPAZ supply, B the TOPAZ received by the strategy, and C the hub adapter's tracked supply for a spoke: ```text potential budget shares = floor(B × S / A) spoke budget = floor(potential budget shares × C / S) new shares minted = sum of enabled spoke budgets ``` This uses **total shares attributed to the spoke**, not only shares staked for voting. Liquid user shares and undistributed xTOPAZ already on that spoke are included. Local staking then determines how votes are allocated within that spoke; it does not directly set the chain's share of the hub budget. ## The unassigned portion grows backing The portion corresponding to shares on BNB is locked without matching new shares. That can raise TOPAZ per xTOPAZ for holders on every chain. BNB shares include wallets, pools, the vault's seed and budgets still held by the coordinator before delivery. Rebases also grow backing without increasing holder balances. Do not count that growth as an extra liquid reward or combine it with an LP Emissions APR without explaining the asset, denominator and period. [xTOPAZ explained](https://www.topazdex.com/docs/xtopaz) · [Rate Definitions](https://www.topazdex.com/docs/stats/rates). ## Thursday is a boundary, not a delivery guarantee Epochs turn at Thursday 00:00 UTC. Finalization, messaging and local distribution each need their transactions to execute. A missing delivery, paused receiver or missing local votes can delay gauge funding even after the epoch changes. If a spoke has no vote weight, its received budget waits in the receiver rather than being sent into a Voter with no allocations. If a week is not finalized, a later finalization can settle accumulated system-gauge rewards using its then-current supply snapshot. Older finalized budgets remain individually sendable; delivery can be partial and is limited by token precision. For an accurate status, distinguish calculated, sent, received, notified and claimable amounts. A chain budget is not automatically a user's claimable balance, and a quoted rate does not promise next week's return. ## One schedule, separate decisions The expansion does not introduce a new TOPAZ minter on each chain or multiply the original emission schedule by the number of networks. BNB veTOPAZ votes determine the system gauge's allocation alongside other BNB gauges. xTOPAZ supply distribution determines spoke budgets. Staked xTOPAZ votes then choose local gauge allocations. The Minter schedule and its governance remain documented at [TOPAZ & Emissions](https://www.topazdex.com/docs/tokenomics) and [Protocol Governance](https://www.topazdex.com/docs/governance). --- Source: https://www.topazdex.com/docs/developers/multichain # Multichain integration Integrating Topaz across networks requires an explicit chain for every contract, token, position and data source. The BNB core remains the hub; xTOPAZ adds a share vault, OFT routes and local spoke voting vaults. **Updated September 21, 2026.** BNB Chain, Robinhood Chain, Base, Ethereum and Arc have live DEX, xTOPAZ bridge and voting deployments. BNB hosts the vault for entry and redemption. Arc's ERC-20-only CL Zap has been live since September 24, and Topaz Auto managed vaults are live on BNB Chain, Robinhood Chain and Arc. Use the [address book](https://www.topazdex.com/docs/contracts) and the live [chain registry](https://api.topazdex.com/v1/chains), with per-request contract checks before writes. ## Identity and deployment records | Network | EVM chain ID | LayerZero V2 endpoint ID | Role | | --------------- | ------------ | ------------------------ | ---------- | | BNB Chain | 56 | 30102 | Hub | | Robinhood Chain | 4663 | 30416 | Live spoke | | Base | 8453 | 30184 | Live spoke | | Ethereum | 1 | 30101 | Live spoke | | Arc | 5042 | 30417 | Live spoke | EVM chain IDs and LayerZero endpoint IDs are different identifiers. Use the EVM ID for wallet selection and RPC; use the endpoint ID for OFT peers and destination arguments. Arc (5042, endpoint 30417) pays gas in USDC and has no wrapped native: its routers take a reverting WETH stub, so integrate with token-only functions and never offer a native leg there. The release supplies a frontend bundle with `chain.json`, `addresses.json` and `abis/.json`. The address manifest maps contract names to address and project; deployed BNB core contracts use a `Core` prefix. The interface parses those into typed contract groups in its Topaz chain registry. Require verified chain identity, bytecode, immutable wiring and peers before activating each feature. Do not copy the [network-qualified addresses](https://www.topazdex.com/docs/contracts) onto another network. Store tokens as chain plus address, and positions as chain plus contract plus ID. A spoke vote ID is a counter-issued position ID, not an address converted to an integer and not an ERC-721. ## Contract groups | Hub | Responsibility | | ----------------------------------- | ---------------------------------------------------------------------------------------- | | XTopaz and VeTopazVault | Canonical shares, backing, entry, rebase synchronization and redemption | | WrapRouter | Pool-reward claims before NFT merge, deposits and combined source entry-and-bridge calls | | XTopazOFTAdapter | Canonical lock/unlock, peers, tracked spoke supply and route limits | | SystemGauge and SystemGaugeStrategy | System-pool voting and immediate emission credit | | EpochCoordinator | Finalization, budget custody and per-epoch sends | | HubUnwrapComposer | Optional redemption after bridge delivery, with liquid-share fallback | | Spoke | Responsibility | | --------------------------------------------- | ----------------------------------------------------------------------- | | XTopazOFT | Local share balance, mint/burn on OFT delivery/send | | XTopazVotingVault | Position custody, withdrawal dates and the ve-compatible voting surface | | Voter, Gauge and voting rewards | Local allocations, LP incentives and voter claims | | SpokeEmissionReceiver and SpokeBudgetComposer | Authenticated budget funding and notification | | SpokeStakeComposer | Optional new position after delivery, with liquid-share fallback | | V2 and Slipstream deployments | Local pool discovery, liquidity and routing | The spoke Voter, reward and gauge contracts reuse the existing core logic. Managed-lock calls are not a supported spoke path; the voting vault provides the compatible read surface without creating veTOPAZ NFTs. ## Read, review, then simulate the next call Read related preconditions at a verified block. For a wrap, that includes ownership, lock type, expiry, last vote, operator approval, complete pool-reward discovery, claimable rebase and aggregate backing. Normal NFTs with lastVoted equal to zero can skip relay and voter-reward enumeration; an older vote alone cannot prove empty historical rewards. For redemption, include pause, vote, split and seed constraints. For spoke stakes, include position owner, amount, withdrawal date, local vote state and actual reward contracts. Capture chain, account, recipient, spenders, amounts and reviewed limits. Bind the review to its owner and source chain; switch to that chain as part of confirmation. A wallet identity change or a chain change during preparation stops unsent work. Approval receipts are followed by fresh operation simulation. Keep accepted transaction handles for confirmation retries; never retry an uncertain submission as a fresh financial action. Direct liquid xTOPAZ bridging, TOPAZ deposits, combined entry and redemption use maximum sequential ERC-20 allowance and one dapp confirmation. The runner waits for approval, reads allowance again and simulates the operation automatically; it does not explicitly simulate approvals. Wrapping retains its required NFT operator approval. Spoke staking and reward actions retain their earlier approval and interaction model. All migrated journeys preserve saved single-hash recovery; the September 12 UX refactor has not yet been signed. Local fork signatures cover BNB entry/redemption and Robinhood/Base stake, vote and reward flows. Composed destination actions, ambiguous-batch recovery, real cross-chain delivery and complete mainnet wallet lifecycles remain separate work. ## Bridge and receipt evidence Check both OFT peers and token precision, the source and destination capacity, pauses, fee and recipient. A plain send has an empty compose payload. Composed sends target a composer and encode its beneficiary; token delivery and completion of the destination action are different outcomes. Use `OFTSent` and `OFTReceived`, the packet GUID and the originating chain to correlate delivery. For combined source entry, verify NFT custody and burn or TOPAZ funding, the actual share mint, and the actual bridge debit. Do not fill missing event values from a quote estimate. Retain the source hash so delivery can be checked after a feature is disabled. ## Data and indexing The [multichain API](https://api.topazdex.com/openapi.json) serves chain-qualified market and account data on all five live networks. Discover networks with `GET /v1/chains`; follow the schema for chain-qualified endpoints. The [data integration guide](https://www.topazdex.com/docs/developers/data-api) describes versioned API requests and the separately scoped compatibility reports. Never relabel a hub response as spoke data. Indexers use per-chain deployments and start blocks. Useful hub events include `RateUpdated`, `Wrapped`, `Deposited`, `Redeemed`, `AggregateReplaced`, `EpochFinalized`, `ChainBudget` and `BudgetSent`. On spokes, track position open/add/merge/withdraw, votes, claims and budget received/notified events. Preserve closed position owners for reward discovery. The aggregate NFT ID changes after redemption. Read the current ID and follow its replacement events instead of pinning the initial NFT. The spoke receiver's exchange rate is the last delivered hub observation, not necessarily the current live rate. ## Pricing and totals Keep market price, vault backing per share, raw vote weight and reward-token amounts distinct. Do not count the same backing once as locked TOPAZ and again as freely additive xTOPAZ collateral. Canonical shares locked in the adapter and their spoke representations are the same economic shares, not independent global supply. The shared weekly clock does not make blocks or data timestamps equal across chains. Preserve source block, timestamp, epoch and price availability when comparing opportunities. [Multichain emissions](https://www.topazdex.com/docs/multichain/emissions) · [Security & Audits](https://www.topazdex.com/docs/security). --- Source: https://www.topazdex.com/docs/liquidity/zaps # Single-token liquidity zaps A concentrated liquidity zap starts with one funding token, swaps the required portion and creates a new Topaz Concentrated position in an existing pool. You still choose the pool and price range; the zap handles the token split. **Live on five networks.** CL Zap is enabled on BNB Chain, Robinhood Chain, Base, Ethereum and Arc. Native and ERC-20 zero-swap deposits were signed on the three spoke forks on September 12, 2026\. On Arc, use the six-decimal USDC ERC-20 or another supported ERC-20 funding token; native input and native refunds are unavailable. Swap availability depends on the selected pair. [Contract addresses](https://www.topazdex.com/docs/contracts). ## Using the concentrated liquidity zap 1. Open a Concentrated pool from [Explore](https://www.topazdex.com/explore/pools), then start a new position and choose the Zap one token tab in the deposit step; a pool page’s zap card opens the same tab. 2. Select the funding token and amount on the pool's network. Native BNB and one-sided funding are supported where the route can be quoted. 3. Choose the range in the create flow’s range step (Custom range or Full range; on a Topaz Auto pool, Auto uses the vault’s own single-token zap). Review both bounds and the current price, especially after inverting the price display. 4. Review the estimated token split, fees, minimum amounts, minimum liquidity and leftover tokens. 5. Approve the exact funding amount to CL Zap if needed. The app refreshes firm swap quotes and simulates the full call before submission; adverse changes return to review. 6. After a successful receipt identifies the new NFT, open the position. Staking uses a separate review and is available only for a live gauge. Changing amount, token or range invalidates the previous quote and review. The output starts unstaked and earns fees only while in range, subject to the pool's fee rules. It does not start earning emissions automatically. ## Scope This flow creates a new NFT in an existing initialized pool. It does not increase an existing NFT, initialize a pool or bridge assets. The new position belongs to the connected wallet, including when using Topaz ID. [Concentrated Positions](https://www.topazdex.com/docs/liquidity/concentrated) explains the regular two-token alternative. ## Three different uses of “zap” | Path | Output | Interface scope | | -------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------ | | Concentrated liquidity zap | New LP position NFT | Five networks; separate staking review | | V2 router zap | V2 LP tokens, or a single-token exit | Contract capability; the regular interface guide uses two-token deposits | | xTOPAZ zap | Shares in permanent TOPAZ backing, optionally bridged | Separate multichain contract capability; outside the initial interface release | An xTOPAZ deposit or wrap is not an LP position. Read [Get xTOPAZ](https://www.topazdex.com/docs/xtopaz/get) for that journey, and [Pool Fees](https://www.topazdex.com/docs/liquidity/fees) before comparing Fee APR with Emissions APR. --- Source: https://www.topazdex.com/docs/auto Topaz Auto # Topaz Auto Topaz Auto puts concentrated liquidity on autopilot. Each vault holds one concentrated position in a Topaz pool and keeps its price range around the market. You deposit both tokens or zap one, receive vault shares, and can withdraw both tokens at any time. Gauge emissions are passed through as a separate claimable balance; they are never added to your principal. ## Where it is live Topaz Auto is live on BNB Chain, Robinhood Chain, Base and Arc, with Ethereum planned next. Each vault belongs to one pool on one network; the [Topaz Auto overview](https://www.topazdex.com/alm) lists every vault with its managed value, Auto APR, time in range and last rebalance. To find pools with a vault, open [Explore with the Auto filter](https://www.topazdex.com/explore/pools?auto=1): the Emissions APR column becomes Auto APR and every row carries an Auto badge. Pool pages show the vault beside the pool’s own figures. ## How it works ### One managed range per pool Each vault owns a concentrated position in one Topaz pool. Its range is chosen by the strategy around the current price, so the liquidity is dense where trading happens instead of spread across every possible price. ### Rebalancing When the market moves outside the range and the pool is calm (its spot price agrees with its recent time-weighted price), the keeper withdraws the position, swaps part of one token for the other and opens a new range around the new price. During a fast move it waits rather than chasing the price. ### Shares track your slice of the vault A deposit adds both tokens in the vault’s current ratio and mints shares for exactly that slice of the vault. Shares are ERC-20 tokens; your position is whatever fraction of the vault’s principal they represent at the moment you look. ### Emissions stay separate The vault stakes its position in the pool’s gauge, so it earns gauge emissions rather than trading fees. Emissions accrue to each holder in proportion to shares held over time, as TOPAZ on BNB Chain and xTOPAZ on Robinhood Chain, Base and Arc. Nothing is sold or compounded: claiming leaves your deposit unchanged, and withdrawing never requires claiming first. ## Auto, custom range or full range When you create a concentrated position in a pool that has a vault, the range control offers **Auto**, **Custom range** and **Full range**, with Auto selected unless your link or saved state names a range. * ✓Auto: the vault sets and resets the range. You hold vault shares, earn emissions and never manage ticks. * ✓Custom range: you pick the ticks and hold a position NFT. You earn trading fees while unstaked, or emissions once staked in the gauge, and you reset the range yourself. * ✓Full range: the widest range, never out of range, with the least capital efficiency. See [Concentrated Positions](https://www.topazdex.com/docs/liquidity/concentrated) for managing your own range and [Staking in Gauges](https://www.topazdex.com/docs/liquidity/staking) for emissions on a position you hold. ℹTopaz Auto is not Topaz Vaults Topaz Vaults autocompound rewards into the position. Topaz Auto manages only the range and passes emissions through unsold. ## Auto APR Auto APR estimates the vault’s share of the current gauge rewards over its principal at market prices, after the vault’s reward fee. It excludes trading fees and compounding, and reads zero while the range is out of the market or the vault is paused. Each vault’s reward fee is shown on its overview page; a scheduled change appears there as a pending fee before it applies. Auto APR is a live estimate from the current gauge rate and prices. See [Risks and numbers](https://www.topazdex.com/docs/auto/risks). ## Continue reading [Deposit, withdraw and claim →Pair deposits, single-token zaps, pauses, withdrawals and reward claims.](https://www.topazdex.com/docs/auto/using)[Risks and numbers →What automation does not remove, and how managed value and Auto APR are computed.](https://www.topazdex.com/docs/auto/risks)[Topaz Auto overview →Every vault with its live status, managed value and history.](https://www.topazdex.com/alm)[Concentrated Liquidity →Ticks, ranges and capital efficiency.](https://www.topazdex.com/docs/concepts/concentrated-liquidity) --- Source: https://www.topazdex.com/docs/auto/using Topaz Auto # Deposit, withdraw and claim How to enter a Topaz Auto vault with both tokens or one, how withdrawals and reward claims work, and when deposits pause. ## Deposit Start from a pool with an Auto badge in [Explore](https://www.topazdex.com/explore/pools?auto=1), the vault’s card on the [Topaz Auto overview](https://www.topazdex.com/alm), or [New position](https://www.topazdex.com/positions/create). With Auto selected as the range, the deposit section offers two tabs. ### Deposit both 1. 1Type an amount for either token. The other side is derived from the vault’s live ratio of the two tokens. 2. 2Review the shares you will receive and the amounts the vault may take. The vault pulls both tokens in its own ratio and refunds anything it does not use. 3. 3Approve each token for the vault if needed, then confirm the deposit. Where a side is the network’s wrapped native token, a toggle under the input lets you deposit the native coin (BNB on BNB Chain, ETH on Robinhood Chain and Base). It is wrapped first, because the vault takes ERC-20 tokens only, and any part the vault does not use stays in your wallet as the wrapped token. ### Zap one token Choose one funding token and an amount. The amount is split by the vault’s current mix, the side that needs buying is swapped through 0x, and the vault mints your shares in the same transaction, returning any leftover to your wallet. The native coin can fund a zap on networks with a wrapped native token; Arc has none, so Arc vaults take ERC-20 tokens only, with USDC paying gas. Swap legs use a 0.5% tolerance by default; a slippage you set in the page’s settings menu applies to them instead. ### Price protection A vault’s token mix moves much faster than its pool price, so a minimum based on the preview alone would fail on ordinary price ticks. Each deposit and zap instead carries a minimum set for a 2% band around the reviewed pool price. Right before you sign, the plan is rebuilt from fresh reads; if the price has left that band, the review shows the updated figures and asks you to accept them. ### When deposits pause New deposits close, with the reason shown, while a vault is paused, while the market is not calm, when the pool’s gauge has been retired, or when the vault is no longer listed. Withdrawals and reward claims stay open in every one of these states. ## Your Auto positions Auto holdings appear in [Positions](https://www.topazdex.com/positions), in Portfolio Pools and on the pool page, each with its range status, value and claimable rewards. Opening one shows the vault, its managed range and three actions: Deposit more, Withdraw and Claim. ## Withdraw Choose how many shares to redeem, or a percentage. You receive your slice of both tokens at the vault’s current mix, with minimum amounts set for the same 2% price band. Withdrawals are never paused, gated or delayed by the strategy, and you do not need to claim rewards first. ## Claim rewards Emissions accrue separately from your shares: TOPAZ on BNB Chain, xTOPAZ on Robinhood Chain, Base and Arc. Claim them from the position page, or with your other rewards in Portfolio, where Claim all signs one network at a time. Claiming never changes your shares or principal. ℹApprovals Deposits approve each token for the vault once, as other Topaz liquidity actions do. A zap approves the exact funding amount for the Auto zap contract. ## Continue reading [Topaz Auto →What a managed vault does and where it is live.](https://www.topazdex.com/docs/auto)[Risks and numbers →What automation does not remove, and how the figures are computed.](https://www.topazdex.com/docs/auto/risks)[Single-token liquidity zaps →Zapping into a concentrated position whose range you choose.](https://www.topazdex.com/docs/liquidity/zaps)[xTOPAZ explained →The reward token on Robinhood Chain, Base and Arc.](https://www.topazdex.com/docs/xtopaz) --- Source: https://www.topazdex.com/docs/auto/risks Topaz Auto # Risks and numbers Topaz Auto takes range management off your hands, so your capital stays concentrated where trading happens. It is still concentrated liquidity, with the market and contract risks that come with it. This page sets those out briefly and explains how the figures on Topaz Auto pages are computed. ## Risks ### Concentration magnifies impermanent loss A narrow range holds more of the token that is falling and less of the one that is rising. Compared with holding the two tokens, a concentrated position can lose value faster than a full-range one when prices move. ### Rebalancing realizes losses and pays fees A rebalance sells part of one token for the other at the new price, locking in the move, and pays swap fees and price impact to do it. Repeated moves in a choppy market can cost more than the emissions earned in between. ### Out of range means no emissions While the price sits outside the managed range the position is one-sided and its gauge emissions stop. The strategy waits for a calm market before re-ranging, which avoids chasing a fast move. ### You rely on the keeper and its policy Range choices, calm thresholds and rebalance timing are set by the strategy, not by you. A keeper outage, a paused vault or a deliberate hold changes what your position holds without any action on your side. ### Smart-contract risk Your funds sit in the vault, its strategy, the pool, the gauge and, for zaps, the zap contract and 0x’s settlement contracts. A defect in any of them can lose funds. ### Entry and exit prices move The amounts shown before you sign are estimates. Each transaction carries a minimum set for a 2% price band and a 0.5% swap tolerance, and the vault refunds what it does not use, so the outcome can differ from the preview within those bounds. ### Reward value is not principal Emissions are paid in TOPAZ or xTOPAZ, whose prices move independently of the pool, and Auto APR is an estimate from the current gauge rate and prices. ### No performance guarantee Returns depend on prices and trading activity, so a managed position can outperform or underperform holding the tokens, a full-range position or a range you set yourself. ## How the numbers are computed * ✓Managed value is a vault’s principal: the tokens in its concentrated position plus any idle balance, valued at market prices. It excludes the rest of the pool and unclaimed emissions. A vault that cannot be priced shows a dash, and a total that omits it is marked with a plus sign; it is never rounded to zero. * ✓Auto APR is the vault’s share of the current gauge rewards over its principal at market prices, after the reward fee. It excludes trading fees and compounding and reads zero out of range or while paused. * ✓Time in range is the share of the last seven days the managed range contained the pool price. Last rebalance is the age of the most recent range reset. * ✓Your position value is your shares’ pro-rata slice of the vault’s principal. Claimable rewards are shown separately and never counted as principal. Figures come from the Topaz API, which reads each vault’s contract and indexes its events. A vault whose live read failed shows its last indexed state, marked as such. Transactions always use fresh on-chain reads. ## Continue reading [Topaz Auto →What a managed vault does and where it is live.](https://www.topazdex.com/docs/auto)[Deposit, withdraw and claim →Entering and leaving a vault, and claiming rewards.](https://www.topazdex.com/docs/auto/using)[Impermanent Loss →Why range and price movement shape LP returns.](https://www.topazdex.com/docs/concepts/impermanent-loss)[Topaz Auto overview →Every vault with its status and history.](https://www.topazdex.com/alm)