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.
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%.
ENTRY REQUIREMENTS
SOLVER ECONOMICS
“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.”
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.
PENALTY MECHANICS
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).
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.
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 GUIDE
Deposit USDC into the VynX DirectVaultAdapter on Ethereum L1 — direct custody, no yield protocol. Minimum: SHF ≥ 1.20× your expected in-flight exposure.
Call registerSolver() on VynxRegistry.sol on Ethereum L1. Your address is mapped to your Vault Adapter and collateral position.
Establish a persistent WebSocket connection to the VynX Relayer. You will receive sealed intents via broadcast at auction open.
Respond with max(OutputAmount) within 200ms of broadcast. Tie-break: max(SHF). Last resort: FIFO timestamp.
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.
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.
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.
// 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
}@VYNX/SDK
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.
FREQUENTLY ASKED QUESTIONS
FOUNDING COHORT · LIMITED POSITIONS
APPLY AS FOUNDING SOLVER