AXIS docs
v1.0.0
Live demo Get help
● Set up · Inside the app

Operator console
every section, in order.

AXIS has no separate admin app. Its controls live inside the terminal of your passcode build: Account → Operator console. This page walks through each section from top to bottom, and explains what the console can and cannot reach.

01Open it, and know what it reaches

The console is for whoever runs the build, so it is not in a build until you put it there. Build with your own passcode:

flutter build apk --release --dart-define=AXIS_OPERATOR_PASSCODE=your-own-passcode

Then open the Account tab → section TERMINAL → Operator console, and enter that passcode (lib/features/admin/operator_console_screen.dart, gate in lib/core/config/operator_access.dart).

Account tab: Key, Security and Terminal sections, with Networks, Price alerts and Operator console under Terminal
Account → Terminal → Operator console · demo build
Operator console: network switch with endpoints, and the surface switches
Operator console, top · demo build
Read this first

Values saved here are stored on this device only and outrank your published config on that device. They do not reach your users. To configure every copy of your build, publish the same keys in config.json or Firebase (how).

Only your build has it

A build without AXIS_OPERATOR_PASSCODE has no operator console: the Operator console entry is not listed and no screen reaches it. That is the build you publish to end users — they cannot change the network, the open surfaces or your builder fee. Build your own copy with the passcode when you want the console on your own device, and keep that passcode to yourself (at least six characters; a shorter one is treated as none). The unlock lasts for that run of the app only and is never stored, so closing the app locks it again. It is a gate on a local screen, not a key to funds — the signing key stays behind the vault and the app lock. The passcode is compiled into that build and can be read out of it, which is one more reason to keep the passcode build on your own devices. Values the console stores are read only by a passcode build: a build without one ignores anything stored on the device and runs on your published configuration.

02What you can change without code

Everything in this table is a setting: try it in the console on your device, then publish the same key in your config.json (or Firebase) so every user gets it. No rebuild, no programming. Changes reach users at their next app start.

You want to changeConsole fieldConfig key
Allow or stop new tradesSurfaces → HYPERLIQUID PERPShyperliquid_perps_enabled
Show or hide stock / commodity marketsSurfaces → STOCK / COMMODITY DEXstocks_enabled
Your builder fee: on/off, address, ratesEarning — builder feebuilder_fee_enabled, builder_address, builder_fee_tenths_bps, builder_fee_stock_tenths_bps
App name in the window title and About screenBranding → APP NAMEapp_name
Accent colourBranding → ACCENT COLOURprimary_color
Tagline on the About screenBranding → TAGLINEtagline
Support email, support page, websiteSupportsupport_email, support_url, website
WalletConnect on/off and project IDSurfaces → WALLETCONNECT, Integrationswalletconnect_enabled, walletconnect_project_id
Maintenance screen and its messageAvailabilitymaintenance_mode, maintenance_message
Force older installs to updateAvailability → MINIMUM APP VERSIONmin_app_version
Mainnet or testnet, on one deviceNetworknone: a published config cannot change it; the build's starting network is HYPERLIQUID_NETWORK

What needs a rebuild

These are compiled into the app. Change them in the files named, then build and publish a new version (Deployment). Users get them when they update.

ChangeWhere
Product name in the header mark, store name, home-screen namelib/core/config/axis_identity.dart (kAxisAppName), lib/screens/axis_chrome.dart, platform files (list)
App ID / bundle IDandroid/app/build.gradle.kts, the Xcode project, kAxisApplicationId (list)
App icon, favicon, header logoassets/images/ and dart run flutter_launcher_icons (how)
Full colour palette and fonts (beyond the accent)lib/ui_kit/axis_tokens.dart, assets/fonts/
Website, icon URL, support email fallback, privacy / terms / risk links, the config file addresslib/core/config/axis_identity.dart
Firebase projectflutterfire configure (how)
Network a build starts on, Reown ID as a build setting, store links--dart-define values (list)
Default Arbitrum RPC endpoints for everyonelib/core/chains.dart

03Network

MAINNET / TESTNET. Switching asks for confirmation, then changes every endpoint the terminal talks to, and discards the other network's markets, prices and positions. The rows underneath show the live values: info endpoint, exchange endpoint, WebSocket, deposit bridge and signing chain.

The choice is stored on this device only. The build's starting network comes from HYPERLIQUID_NETWORK (default mainnet).

04Surfaces

Switches take effect immediately.

SwitchKeyEffect
HYPERLIQUID PERPShyperliquid_perps_enabledOff (the default) refuses new positions and transfers to the stock dex. Closing positions and withdrawing always stay available, so users are never trapped.
STOCK / COMMODITY DEXstocks_enabledThe builder-deployed xyz markets (for example TSLA, GOLD).
WALLETCONNECTwalletconnect_enabledOff shows a disabled message on the WalletConnect screen.

05Earning — builder fee

Operator console: builder fee switch, builder address, perps fee and stock dex fee fields, then branding
Earning and Branding · demo build, sample address
FieldRule
BUILDER FEEMaster switch. Off attaches no builder code to any order.
BUILDER ADDRESS0x + 40 hex characters, not the zero address. Must hold at least 100 USDC of Hyperliquid perps collateral before the venue pays it.
PERPS FEE (TENTHS OF A BASIS POINT)1 to 100. 10 = 1 bp = 0.01 %. 100 = 0.1 %, the protocol cap.
STOCK DEX FEE (TENTHS OF A BASIS POINT)Same units, xyz markets only. 0 = charge the perps fee there too.

Out-of-range values are rejected at the field with the reason. Full setup: Setting up earnings.

06Branding

  • APP NAME (app_name): window title and About screen. The header mark text is set in code (Rebranding).
  • ACCENT COLOUR (primary_color): #RRGGBB; repaints the accent on the next frame.
  • TAGLINE (tagline): About screen.

07Support

SUPPORT EMAIL, SUPPORT URL and WEBSITE. Used by the Support and About screens. The email must be a valid address and the URLs valid links, or the field refuses them.

08Integrations

WALLETCONNECT PROJECT ID (walletconnect_project_id) from cloud.reown.com. Without one, dApp connections are unavailable and the WalletConnect screen says so. You can also compile it in with REOWN_PROJECT_ID.

09Availability

  • MAINTENANCE MODE: replaces the whole app with the maintenance screen at the next config apply. Check the message first.
  • MAINTENANCE MESSAGE: the text on that screen.
  • MINIMUM APP VERSION: for example 1.2.0. Installed versions below it are asked to update, using APP_STORE_URL / PLAY_STORE_URL. Empty disables the check.
Careful

Setting maintenance mode in the console on your own device locks your device into the maintenance screen. Use it through your published config, and keep a way to publish the change back.

10Effective configuration

The merged result the app is running on, key by key, each tagged OPERATOR, REMOTE CONFIG or BUILT-IN DEFAULT. It lists only the keys AXIS acts on (Configuration, runtime settings); keys the config model still parses from the wallet engine AXIS grew from are left out. COPY AS JSON copies exactly that list to the clipboard: a quick way to produce your config.json.

CLEAR next to a field returns it to the remote value, or to the built-in default. RESET ALL (top right) clears every operator value on this device, including the builder address and fee.

11The Earnings tab (status)

The status page of your setup, and read-only: routing, this wallet's on-chain approval, your rate against the cap, the builder address balance, orders that went out without the fee, and the protocol prerequisites. Press RECHECK to read everything again from Hyperliquid.

Earnings tab: builder code attached, routing, on-chain approval, rate, builder address balance, revenue missed and prerequisites
Earnings · demo build, sample address and balances

It is described line by line in Earnings → The Earnings screen.