Solver box

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.

1

Download

Installs the CLI and clones the box. Requires Docker with Compose v2.

curl -fsSL https://get.taifoon.dev/t3rn-box | bash

Your 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.

2

Configure

Choose what this box serves. Everything else — CPU, memory, kernel isolation and the egress fence — is fixed by the t3rn-solver hosting class.

Networks
Assets
Venues (off-chain market making)
Per-fill cap (USD)
$25
Resulting configuration
# ~/.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: false
3

Connect

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 secure

register exits non-zero unless the box is actually visible in the observability plane. A box that cannot be measured is not registered.

4

Go live

Gatedt3rn-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.