Download, configure, connect
One box runs cross-chain solving and symmetric market making. You choose which networks and assets it serves — the shape, isolation and egress come from the hosting class, so a box cannot widen its own reach.
Download
Installs the CLI and clones the box. Requires Docker with Compose v2.
curl -fsSL https://get.taifoon.dev/t3rn-box | bashYour signing key lives in ~/.t3rn-box/keychain (mode 0700) and never leaves the host — it is mounted read-only into the box and is never copied into an image, a registry, or this site.
Configure
Choose what this box serves. Everything else — CPU, memory, kernel isolation and the egress fence — is fixed by the t3rn-solver hosting class.
# ~/.t3rn-box/box.yaml — written by `t3rn-box init`
class: t3rn-solver
serve:
networks: [base, arbitrum]
assets: [TRN, USDC]
limits:
max_notional_usd: 25
venues:
kraken: false
ib: false
polymarket: falseConnect
The box registers as a hosting tenant, pulls the on-chain adapters and off-chain venue connectors, and starts in dry-run — computing fills and quotes without broadcasting anything.
t3rn-box init # the choices above
t3rn-box plan # the acceptance contract you'll be judged against
t3rn-box pull # on-chain adapters + off-chain venue connectors
t3rn-box up # starts in DRY_RUN
t3rn-box register # proves healthy, measured and secureregister exits non-zero unless the box is actually visible in the observability plane. A box that cannot be measured is not registered.
Go live
t3rn-box go-live refuses while a safety gate is open.Dry-run first and watch a full session. When the box broadcasts, every outbound transaction passes a destination allowlist: your own address, the liquidity wells, Across, Mayan, Uniswap routers, WETH, or an ERC-20 approve. Anything else is a hard block — a legitimate transaction stopped by a missing allowlist entry is the preferred failure.