TIDE docs
v1.0.0
Live demo Get help
● Set up · Every section

Operator panel
set up everything.

TIDE's admin is a screen inside your own operator build: Settings → Operator panel, behind a passcode you compile in. The build you give users has no panel. This page walks through each section in screen order, with what to set on day one and the limits the code enforces.

01Opening the panel

Everything on this page changes without code and without a new build: names, links, messages, the fee, feature switches and endpoints. Only the three --dart-define values (domain, configuration URL, operator passcode) and the app ID, icon and colours need a rebuild (Rebranding).

The TIDE operator panel inside the app: website and legal links, announcement banner, minimum app version and the swap fee section with the fee off
The panel as it ships (demo build): the swap fee is off, the rate is 0 and the cap is 200 bps.

The panel sets the fee, the fee wallet and the feature switches, so it is never part of the app your users install. It exists only in a build you make for yourself with an operator passcode (6 characters or more):

# your operator build (macOS / Linux shell; on Windows the same line works in PowerShell)
flutter run -d chrome --dart-define=TIDE_OPERATOR_PASSCODE=choose-your-own
  1. Open SettingsThe gear icon in the top bar (wide screens) or the Settings entry on phones.
  2. Tap Operator panelType the passcode you compiled in. After every third wrong attempt entry pauses (3 s, 6 s, 12 s …). The unlock is kept in memory only; leaving the panel locks it again.
  3. Set your values, then Copy as JSONHost that file and build the app for your users with TIDE_CONFIG_URL and without TIDE_OPERATOR_PASSCODE (how).
The build you give users has no panel

Without TIDE_OPERATOR_PASSCODE there is no Operator entry in Settings, no route to the panel, and no panel values stored on a device are read. Your hosted configuration always outranks anything stored on a device, so nobody can change the fee or the fee wallet on their own phone. The passcode is a lock on a local screen, not a server password, and it does not protect funds: the user's own wallet signs every transaction (lib/core/config/operator_access.dart).

Operator panel: Save and apply, Copy as JSON and the In force right now list with the layer behind every value
The end of the panel: Save and apply, Copy as JSON for your hosted file, and In force right now with the layer that supplied every value.

02Day-one order

  1. Identity: name, support address, terms and privacy.
  2. Endpoints and credentials: your Solana RPC URL.
  3. Swap fee: your Solana wallet and a rate.
  4. Save and apply, then check In force right now.
  5. Copy as JSON and host it for every install (how).

03Identity

App name, Tagline, Support email, Website, Terms URL, Privacy URL. Links must be HTTPS; each field says what is wrong. Empty website, terms and privacy fields fall back to addresses built from TIDE_HOST (Configuration). The name under the app icon is set at build time (Rebranding).

04Messages

  • Announcement: a banner shown to every user. Users can dismiss it; a new text shows again.
  • Minimum app version: older builds are asked to update. Empty turns it off. This notice cannot be dismissed.

05Swap fee — what you earn

  • Charge a swap fee: the switch. Off in the shipped build.
  • Fee rate (bps): 100 bps = 1.00 %. Maximum 200.
  • Fee minimum (USD): leave it empty. Jupiter only takes a percentage, so a minimum cannot be collected (why).
  • Solana fee wallet: a Solana address you control. It receives the fee.
  • EVM fee wallet: Not active in this version No EVM quote source is wired.

The full walkthrough is on Setting up earnings.

06Trading

  • Default slippage: what the swap screen starts at. Maximum 5 %.
  • Extra restricted regions: two-letter country codes where copy execution is refused, on top of the six built-in ones (Compliance).

07Features

One switch per feature flag, listed by key. A switch the build cannot honour (evm_chain_enabled) shows the reason and has no effect. The table of flags is in Configuration.

08Endpoints and credentials

  • Solana RPC URL: your endpoint. The shipped public node refuses token-balance calls; your own endpoint lifts that.
  • Helius API key: Not active in this version Stored, but no network call reads it. Put a full Helius URL in Solana RPC URL instead.
  • 0x API key: Not active in this version No EVM quote source is wired.
Settings screen showing the Solana endpoint in use, how many endpoints are configured and the token-balance status
Settings → Network tells you which endpoint is in use and whether token balances are working.

09Save, copy, reset

  • Save and apply: validates every field, saves to this device and applies at once. If a field is wrong, nothing is saved and the field says why.
  • Copy as JSON: copies the document with only the values you changed, ready to host.
  • Reset this device: forgets this device's panel values after a confirmation. The app falls back to the hosted document or the defaults.

10In force right now, and warnings

In force right now lists every value the app is running on and the layer it came from: default, cached, remote or this device. If a change did not take, this list shows why. Warnings from the last load lists fee problems and switches the build cannot deliver. The same warnings appear under Settings → About.

11Limits the code enforces

A hosted document cannot raise a value past its cap; values are clamped when they are read.

FieldCapWhere
fee.fee_bps200 (2.00 %)SwapFeeConfig.maxFeeBps
fee.min_fee_usd$2.00SwapFeeConfig.maxMinimumFeeUsd
default_slippage_pct5.0AdminConfigModel.fromJson
Copy execution per trade / per 24 h$1,000 / $5,000CopyRule
Followed wallets25WatchlistService.maxWallets

Not configurable on purpose: the six baseline restricted regions, every ceiling above, ranking in the Realised tab, and anything that maps a user to a wallet address.