AXIS docs
v1.0.0
Live demo Get help
● Start · Architecture

How it works
one app, no backend.

A one-page picture of what talks to what: the app on the user's device, Hyperliquid for trading, Arbitrum for deposits, and the optional services you add. Read it before you install, so the rest of the docs make sense.

01The data flow

AXIS architecture and data flow The AXIS app on the user's device holds encrypted keys and signs orders locally. Signed actions go to the Hyperliquid API; market and account data come back over HTTPS and WebSocket. Deposits are native USDC transfers on Arbitrum One to Hyperliquid's Bridge2 contract. Optional: operator settings are read from a hosted config.json or Firebase, and dApps connect through the WalletConnect relay. Hyperliquid pays the builder fee to the operator's builder address. USER'S DEVICE · AXIS APP Vault keys encrypted, secure storage Local signer EIP-712 signatures, on device Terminal Markets · Trade · Earnings Account · Operator console HYPERLIQUID /exchange · signed orders, approvals /info · markets, account, approvals WebSocket · live prices and book builder fee → operator's builder address ARBITRUM ONE public RPC endpoints by default Bridge2 contract · native USDC only OPERATOR SETTINGS · OPTIONAL config.json on your static host, or Firebase public, read-only for the app · no secrets WALLETCONNECT RELAY · OPTIONAL Reown project ID · connects dApps requests are signed on the device signed actions USDC deposit (gas in ETH) data, prices credits deposit read by the app
Solid: always used · dashed: optional services you add · nothing passes through an operator server

02The parts, one by one

PartWhat it doesCode
VaultKeeps the recovery phrase and private key encrypted on the device (Keys and secrets).lib/core/vault_service.dart
Local signerSigns every order, cancel, leverage change, fee approval and withdrawal with the user's key. Nothing is signed on a server.lib/core/hyperliquid/hyperliquid_signer.dart
Hyperliquid clientSends signed actions to /exchange, reads markets and accounts from /info, streams prices over the WebSocket. Endpoints per network in one file.lib/core/hyperliquid/, lib/state/hyperliquid_provider.dart
DepositsA USDC transfer on Arbitrum One to Hyperliquid's Bridge2 contract; Hyperliquid credits the sender's account. Withdrawals are a signed action on Hyperliquid that pays out on Arbitrum.lib/core/hyperliquid/hyperliquid_funding_service.dart, lib/features/perps/perps_wallet_config.dart
Builder feeYour builder address and rate ride on each order from wallets that approved them; Hyperliquid charges the fee and pays it to your address (Earnings).lib/state/hyperliquid_provider.dart
Operator settingsPerps switch, builder fee, branding, support links, maintenance. Read from your hosted config.json or Firebase, layered under per-device console values (Configuration).lib/core/config/
WalletConnectOptional dApp sessions through Reown's relay. Off without a project ID.lib/features/wallet_connect/

03What is not there

  • No backend. No API server, database or admin server ships with AXIS, and none is needed.
  • No custody. The operator never holds user funds or keys, and cannot move them.
  • No order routing. Orders go from the device straight to Hyperliquid; there is no matching or execution in AXIS.
  • No user accounts. A user is a wallet on a device. There is no sign-up, email or password reset.

What this means for you in money terms is on Costs and third-party services; in risk terms, on Keys and secrets.