How it works
Ark has three user states: liquid, boarded, and locked.
Liquid TEST can be traded or transferred. Boarded TEST earns base rewards and has an exit-fee timer. Locked TEST commits for a fixed period and earns the locked reward lane.
The Core Model
flowchart TD
Liquid[Liquid TEST] -->|Board| Boarded[Boarded position]
Liquid -->|Lock| Locked[Vault lock]
Boarded -->|Claim| Wallet[Wallet TEST]
Boarded -->|Compound| Boarded
Boarded -->|Exit| Liquid
Locked -->|Claim before maturity| Wallet
Locked -->|Compound before maturity| Locked
Locked -->|Unlock at maturity| Liquid
The protocol does not give rewards to every wallet that simply holds TEST. Rewards are connected to positions that the contracts can account for precisely.
Trade
Trade buys or sells through the official TEST/WETH Uniswap v4 pool. Buys use the dedicated buy executor. Sells use the dedicated sell executor. Both routes pass through the official hook, so the protocol can observe volume and collect the configured hook fee.
Buy TEST
ETH is wrapped as WETH, swapped through the official pool, and TEST is delivered to the receiver. Standard buys use the normal buy fee.
Sell TEST
TEST is swapped for WETH through the official pool. The sell executor unwraps WETH and pays native ETH to the receiver, falling back to WETH when native ETH cannot be delivered.
Board
Boarding deposits TEST into ArkBoarding. The position receives a non-transferable
bTEST receipt balance and a dTEST Pass NFT. The Pass identifies the position; bTEST mirrors
the boarded principal.
sequenceDiagram
participant U as User
participant B as ArkBoarding
participant V as ArkVault
U->>B: board(amount, receiver)
B->>V: sync base reward index
B->>B: create position
B->>U: mint bTEST + dTEST Pass
B->>V: set position reward debt
Board Example
If a user boards 100 TEST in the current accelerated TEST deployment, they receive 100 bTEST and one dTEST Pass. The current max exit fee is 40% and decays to zero over 40 minutes. At the start, exiting the full 100 TEST would cost 40 TEST. Around halfway through, the fee is about 20 TEST. After the timer reaches zero, the full principal can exit with no exit fee.
Pending rewards are separate from principal. A position can show 100 TEST boarded and 3 TEST pending; the exit action is about the boarded principal, while claim or compound handles pending rewards.
Lock
Locking deposits TEST into ArkVault. The user receives non-transferable lTEST
plus a dTEST Lock NFT. The lock has a fixed unlock timestamp and a maturity epoch. Rewards
stop at maturity.
sequenceDiagram
participant U as User
participant V as ArkVault
U->>V: lock(amount, receiver)
V->>V: calculate unlocksAt
V->>V: round maturity to next epoch
V->>U: mint lTEST + Lock NFT
V->>V: schedule activation and maturity
Lock Example
In the current accelerated TEST deployment, a 100 TEST lock lasts 40 minutes and uses 1-minute epochs. If the lock unlocks at 12:34:20, its maturity epoch is 12:35:00. The lock can earn only while it is active and before that maturity epoch.
In the standard ARK parameter set, the same idea uses a 40-day lock and 1-day maturity epochs. If the unlock time lands in the middle of a day, maturity is rounded up to the next day boundary.
Claim, Compound, Exit, Unlock
| Action | Applies to | What it does |
|---|---|---|
| Claim | Boarded positions and locks | Pays pending rewards to the wallet without changing principal. |
| Compound | Boarded positions | Adds pending TEST rewards back into the same boarded position. |
| Compound locked | Immature locks | Creates a new lock from pending TEST rewards. It reverts after maturity. |
| Exit | Boarded positions | Returns principal minus any active exit fee and claims pending base rewards. |
| Unlock | Mature locks | Returns lock principal plus remaining TEST and ETH/WETH rewards. |
Native Batch Actions
The core contracts include native batch functions. There is no broad third-party batcher approval layer. Batch calls still require the caller to own the relevant positions or locks.