Dart Exchange Docs
Current System Guide
Reference for the router-backed spot exchange, gated futures and automation surfaces, bot access, liquidity, and safety boundaries.
Access And Wallets
The app opens with wallet sign-in and invite access checks. If your wallet is not admitted for a feature, use the access request screen from that feature page.
Common wallets include Phantom, Solflare, Backpack, Coinbase Wallet, and compatible WalletConnect flows. Futures and bot-key management require a wallet that can sign messages and versioned transactions.
Gated products: Futures, Auto, and Lending can be enabled per wallet. Their pages may render an access request gate before the product UI.
Feature Access Matrix
| Feature | Public Or Gated | Wallet Required | Access Request | Main Risk Or Cost |
|---|---|---|---|---|
| Swap | Wallet-gated spot access | Yes | Only if the wallet is not admitted | Token price movement, slippage, network fees, and possible priority or Jito fees. |
| Pro | Public workspace with wallet actions | Only for trading actions | No for viewing; gated actions can still require wallet access | Local staged orders are not live until submitted and signed. |
| Auto | Gated | Yes | Yes | Automation can act within approved limits; review guardrails before activation. |
| Liquidity | Public view, gated LP actions | Yes for deposits and withdrawals | LP permission may be required | LP inventory, price movement, rent, and account creation costs. |
| Futures | Gated | Yes | Yes | Isolated-margin loss risk, liquidation risk, fees, funding, and account rent. |
| Lending | Gated coming-soon surface | Yes | Yes | Do not assume funds can be supplied or borrowed until the product is live. |
| Bot API | Gated by wallet-owned API keys | Yes | Yes for the wallet features the bot uses | API secrets are shown once; leaked keys can request quotes or build/relay within granted scopes. |
Fees + SOL Costs
Every landed transaction pays the normal Solana network fee in SOL. Keep a small SOL buffer even when the trade itself uses other tokens.
Some routes can include priority fees. These are paid only by the transaction that lands and are shown as part of the wallet or transaction flow when applicable.
Protected can ask the wallet to sign a Jito primary transaction and an RPC fallback. If the Jito variant lands, it can include a Jito tip. If the RPC fallback lands, the Jito tip is not paid. Private required requires Jito and fails instead of falling back to public RPC.
First-time actions can also require rent or account creation costs. Common examples include token accounts, futures isolated-margin accounts, collateral accounts, LP permission or position accounts, and other product-specific on-chain records.
Route Modes
/exchange is router-backed. The UI does not call legacy AMM pool bindings directly. The router quotes, builds a transaction plan, your wallet signs, and the signed plan is submitted through Jito, RPC, or both.
| Mode | What It Does | Fallback Behavior |
|---|---|---|
| Smart | Normal routing. The router can choose the best supported route for the selected pair and preferences. | Can use any allowed route that satisfies the quote and safety checks. |
| Atomic | Atomic routing through Dart liquidity for supported pairs. | Fails closed when no supported atomic route is available. |
| Cheapest | RPC-only transport for lower SOL overhead. | No Jito fallback because it intentionally uses RPC. |
| Protected | Jito-preferred transport with RPC fallback. | Can fall back to RPC if the Jito path is unavailable. |
| Private required | Jito-only transport. | Fails closed instead of using public RPC. |
Settings can show route preferences such as Dart, RFQ, and External. The route label before review tells you whether the quote is using a Dart route, External routing, or RFQ. Review route, fee, price impact, slippage, and minimum received before signing.
If router pricing is degraded, the swap card shows fallback pricing status and can tighten spreads or maximum size. Connected wallets can also view private spot trade history and receipts from the exchange UI.
Futures Risk Basics
/futures is a gated perps terminal. The first-time flow initializes an isolated-margin account, deposits collateral, then requests and accepts exact-fill quotes.
Production perps execution uses signed exact-fill quotes accepted by the on-chain Percolator fork through AcceptFirmQuote. A valid accept fills the full quoted size at the full quoted price or the instruction fails atomically.
Risk checks, account state, collateral accounting, fees, funding snapshots, quote nonce updates, and settlement effects are enforced on-chain when the signed transaction lands. Quote generation, routing, keeper cranks, schedulers, hedgers, and trigger monitoring are off-chain services.
| Topic | What To Know |
|---|---|
| Isolated margin | Futures uses a separate margin account. Losses, fees, and funding can consume deposited collateral. |
| Collateral | Deposits increase available margin. Withdrawals can be blocked or reduced by open positions, risk requirements, and unsettled PnL timing. |
| Liquidation estimate | The estimate is a guide, not a guarantee. It can move with price, funding, fees, position size, and account state. |
| Quote expiry | Quotes show slots remaining. If the quote expires, request a fresh quote before signing. |
| Exact-fill acceptance | A valid accepted quote fills the full quoted size at the full quoted price or the instruction fails atomically. |
The quote panel shows price, size, fee, inventory charge, funding, estimated liquidation, request id, and slots remaining. The action button can block while the keeper is syncing, quotes are paused, or the connected wallet cannot complete the required signatures.
Futures supports take-profit and stop-loss triggers when trigger support and the trigger delegate are available for the selected market.
Enabling automation configures the delegate used by the trigger worker. Triggers can close the full position, reduce by percent, or reduce by base size. They move through armed, fired, failed, and cancelled states.
Trigger execution still uses the exact-fill perps flow. Trigger failures can happen when the market is paused, the keeper is stale, a quote expires, the position changes, or the delegate is no longer configured.
Pro Trading
/pro is an advanced trading workspace with chart styles, drawing tools, price alerts, webhook URLs, local alert history, staged chart orders, and ticket handoff.
Chart drawings, alerts, webhook URLs, and staged orders are stored locally in the browser unless synced by the specific feature. A staged chart order is planning state until you send it to a ticket and complete the wallet-signing flow.
Auto
/auto is gated automation for bounded cross-venue strategies. It supports templates such as Accumulate + Earn, Protected Long, and Cash Manager.
Strategies have explicit objectives, venues, guardrails, permissions, control modes, simulations, action logs, and webhook destinations. A strategy should be simulated before activation, and changes that require reapproval must be reviewed before going live again.
Advisory mode records recommended actions. Guarded Auto is bounded by wallet-scoped permission caps such as max notional per order, daily notional, max leverage, and allowed markets.
Liquidity
/liquidity exposes the current router-backed liquidity surfaces. Public spot swaps currently route through Dart liquidity where the relevant market is live.
LP deposit and withdraw drafts can require an on-chain lp_permission record for the wallet. RFQ routes quote against managed market-maker inventory and do not expose public LP shares.
The legacy strongtower LP surface remains hidden unless its configured pool is explicitly enabled, deployed, and verified on mainnet.
Referral + Invite Flow
Invite codes admit wallets into early access. If your wallet is not admitted, the access screen can ask you to redeem a code or submit an access request.
Signed-in wallets can create a public referral username from settings when the username is available. The referral link uses that username, not a wallet address.
If someone opens a referral link before signing in, the app can remember that referral locally. When the referred user later signs in, the referral can be bound to that wallet.
Users can copy and share their referral link from settings. If a referral link is disabled or a username is unavailable, the UI shows that state before saving or sharing.
Bot API Safe Start
Invited users can create per-wallet bot API keys at /settings/api-keys. The default scopes are quotes:read and swap:build; relay requires relay:send and Auto access.
Bot auth headers are x-dex-key-id, x-dex-timestamp, x-dex-nonce, and x-dex-signature. The HMAC message includes method, path with query, timestamp, nonce, and SHA-256 body hash.
The secret is shown once when the key is created. Store it in a password manager or bot secret store, and revoke the key if the secret may have been copied or exposed.
Scope meanings: quotes:read can request quotes, swap:build can build swap plans, and relay:send can relay signed transactions for wallets with the required feature access.
Public bot endpoints include POST /api/bot/quotes, POST /api/bot/swap, POST /api/bot/relay, GET /api/bot/ready. Bot requests are bound to the wallet that created the key.
Perps integrations should use the router-backed perps proxy family for account init, collateral, quote, accept, submit, receipts, funding, triggers, and delegate setup. The retired futures cosign path is not the current integration path.
For deeper request signing and integration details, use the repo API reference and integration quick start.
Troubleshooting By Error
| Message Or State | Likely Meaning | What To Do |
|---|---|---|
| Wallet session required | The app needs a signed wallet session for this action. | Connect the wallet, complete sign-in, and retry. |
| Access not enabled | The connected wallet is not admitted for that product. | Submit an access request from the product gate or redeem an invite code if you have one. |
| No route | The router cannot find an executable route for the selected pair, amount, or preferences. | Try a smaller amount, switch route preference, use Smart mode, or choose another pair. |
| Atomic route unavailable | Atomic mode only supports available Dart liquidity routes. | Switch to Smart mode or choose a supported pair. |
| Quote expired | The quote was not accepted before its expiry window. | Request a fresh quote and sign the current transaction plan. |
| Keeper syncing | The futures market is waiting for required keeper updates. | Wait for the market to recover, then request a new quote. |
| Private required failed | The Jito-only path was unavailable or did not land. | Retry later or use Protected if RPC fallback is acceptable. |
| Insufficient SOL | The wallet needs more SOL for network fees, rent, priority fees, or Jito tips. | Add SOL, keep a fee buffer, then request a fresh quote or transaction plan. |