OVERVIEW

WHAT IS A SOLVER

Solvers are the institutional supply side of the VynX OFA. A Solver is a market maker that competes in sealed-bid auctions to fill agent intents. The Solver with the highest OutputAmount wins each auction and earns the spread between their bid and the agent’s minimum.

Participation requires locking USDC collateral above the SHF threshold (≥ 1.20×), maintaining exposure limits, and operating WebSocket infrastructure capable of responding within the 200ms auction window.

BROADCASTBIDLOCKCLAIM
SETTLEMENT TIMELINE · SOLVER OBLIGATIONS
Auction opens
intent_announced
200 ms
sealed-bid window
Winner
max OutputAmount
10 s
SLA · lockIntent()
Locked
escrow on Base
15 min
deadline · settle
Settled
claimFunds()

Not to scale. Miss the 200 ms window and your bid is simply discarded — no penalty. If the origin lock does not land within the 10 s SLA, Jail Time applies; miss the 15 min deadline and the position is slashed 10%.

PREREQUISITES

ENTRY REQUIREMENTS

USDC COLLATERAL
Deposited in the VynX DirectVaultAdapter (USDC, Ethereum L1)
SHF ≥ 1.20×
Maintained at all times
MAX_SOLVER_EXPOSURE ≤ 80%
Maximum in-flight exposure at all times
200MS WEBSOCKET INFRASTRUCTURE
Capable of responding within the auction window
ECONOMICS

SOLVER ECONOMICS

PARAMETER
VALUE
DESCRIPTION
Take Rate
10 bps
Per successful intent. Atomically deducted.
Bytecode Cap
20 bps
Hard cap in bytecode. Immutable. Governance-proof.
SlashAmount
10%
InputAmount × 10%. 5% to agent, 5% to treasury.
Unbonding Period
7 days
Capital quarantined post-slash.
MAX_EXPOSURE
80%
Maximum in-flight exposure vs. locked collateral.
AMNESTY_EPOCH
90 days
N1–N4 Jail Time counters reset. N5 is permanent.

“The agent prioritizes sub-second settlement over marginal cost. The Solver has already internalized the take rate in the bid spread. The bytecode hard cap cryptographically guarantees governance cannot be predatory.”

ELIGIBILITY MATH · SOLVER HEALTH FACTOR
COLLATERAL HEALTH · SHF ≥ 1.20× · EXPOSURE ≤ 80%
In-flight exposure ≤ 80%
Reserve ≥ 20%
0%80% · MAX_EXPOSURE
100%
FreeCollateral = Total − InFlight
Required       = InputAmount × 1.20      // SHF_THRESHOLD = 120
eligible IFF     Free ≥ Required  AND  InFlight / Total < 0.80

To bid on a 100 USDC intent a solver must hold at least 120 USDC of free collateral, and total in-flight exposure may never reach 80% of locked collateral. The check is a pure integer comparison — no oracle, no price conversion.

RISK FRAMEWORK

PENALTY MECHANICS

JAIL TIME · SLA BREACH · T = 10s

If the origin lock — lockIntent() — does not land within 10 seconds of adjudication, the winning Solver receives a Jail Time penalty. The counter escalates with each breach and resets after 90 days (N1–N4 only).

JAIL TIME · ESCALATION LADDER
60 s
N1
10 min
N2
1 h
N3
24 h
N4
PERMANENT
N5

90-DAY AMNESTY

After 90 days of clean operation the N1–N4 counters reset. N5 is amnesty-immune and permanent. Triggered only by an SLA breach — the origin lock (lockIntent()) not landing within 10 s of winning.

Timeouts within 30 seconds of a prior timeout for the same Solver count as a single incident — one network blip does not climb the ladder five times. A missed Deadline is never grouped: it is always a clean, standalone fault.

N
JAIL TIME
TRIGGER
N1
60s
First SLA breach
N2
10 min
Second breach (no amnesty reset)
N3
1 hour
Third breach
N4
24 hours
Fourth breach
N5
Permanent
Fifth breach — amnesty-immune
SLASH · DEADLINE BREACH · T = 15 MIN

If settlement is not completed within the agent’s 15-minute deadline, a deterministic slash is applied. No oracle. No human discretion. The arithmetic is enforced by VynxRegistry.sol on Ethereum L1.

SlashAmount = InputAmount × 10%
→ 5% to Agent (compensation)
→ 5% to VynX Treasury

Slashing executes through the DirectVaultAdapter on Ethereum L1 — direct USDC custody, no yield protocol. The 7-day unbonding period quarantines capital during resolution.

INTEGRATION

INTEGRATION GUIDE

01
DEPOSIT COLLATERAL

Deposit USDC into the VynX DirectVaultAdapter on Ethereum L1 — direct custody, no yield protocol. Minimum: SHF ≥ 1.20× your expected in-flight exposure.

02
REGISTER IN VYNXREGISTRY

Call registerSolver() on VynxRegistry.sol on Ethereum L1. Your address is mapped to your Vault Adapter and collateral position.

03
CONNECT TO RELAYER WEBSOCKET

Establish a persistent WebSocket connection to the VynX Relayer. You will receive sealed intents via broadcast at auction open.

04
IMPLEMENT BID LOGIC

Respond with max(OutputAmount) within 200ms of broadcast. Tie-break: max(SHF). Last resort: FIFO timestamp.

05
PAY ON THE DESTINATION CHAIN

On winning: auction_won carries the agent, output token, and minimum output. Deliver the output to the agent on the destination chain once the origin lock lands. The witness validates token, recipient, and amount after finality.

06
CLAIM FUNDS

Once the witness confirms your payment: redeem the relayer-signed voucher via claimFunds() on VynxSettlement.sol. The contract cross-references intentId. Math irrefutable → funds move.

WEBSOCKET PUSH PROTOCOL

Polling cannot meet the 200ms window — by the time a poll returns, the auction has closed. Connect to /v1/ws and identify with ?solver=0x…. The Relayer broadcasts intent_announced to every connected Solver the moment an intent is accepted — before the window opens — and unicasts auction_won to the winner once the auction concludes.

PUSH FRAMES
// broadcast to all solvers, before the 200ms window
{
  "type":              "intent_announced",
  "intentId":          "0x…",
  "inputAmount":       "100000000",
  "inputToken":        "0x…",
  "originChainId":     8453,
  "targetToken":       "0x…",
  "targetChainId":     1,
  "auctionDeadlineMs": 1700000000000
}

// unicast to the winning solver, after adjudication
{
  "type":          "auction_won",
  "intentId":      "0x…",
  "winningAmount": "102000000",
  "slaExpiry":     1700000500
}
SDK REFERENCE

@VYNX/SDK

@vynx/sdk↗ npm
INSTALL
npm install @vynx/sdk

The SDK submits approve() and lockIntent() from the agent wallet; intent signing is the Relayer’s (EIP-712, verified on-chain by lockIntent()). Solvers do not need the SDK — it is the agent-side integration layer. Solver integration is at the WebSocket and contract level only.

FAQ

FREQUENTLY ASKED QUESTIONS

FOUNDING COHORT · LIMITED POSITIONS

APPLY AS FOUNDING SOLVER