Solver integration notes for VVV/WETH RFQ
Status: design/documentation only. Do not treat this as a public integration commitment until the vault is deployed, funded, monitored, and explicitly approved for public exposure.
RFQ model
The service exposes an HTTP API that returns either:
- Indicative quotes from
POST /quote - Executable EIP-712 quote payloads from
POST /quote/eip712
Executable signatures remain disabled until the vault is deployed and signer setup is explicitly enabled.
Tycho
Tycho is useful for solver-side indexing/simulation of on-chain liquidity. It can help compare our private price against Base pools and opportunity cost.
Important limitation: private RFQ inventory is not automatically the same as Tycho-indexed pool liquidity. Our service should be integrated as a private quote source by solvers, while Tycho can still be used by them to find competing AMM paths.
Integration shape:
- Solver asks our
/quoteor/quote/eip712endpoint for VVV/WETH or WETH/VVV. - Solver compares our quote with Tycho-simulated AMM routes.
- If our quote is competitive and executable, solver uses the signed quote against our vault.
CoW-style solvers
CoW solvers can integrate direct private liquidity sources when building settlement solutions. We are not planning to become a bonded solver initially. Instead, we can serve existing solver companies as a private PMM endpoint.
Initial integration recommendation:
- private partner testing first, even if public API is reachable
- tiny max quotes (
5-10 USDequivalent initially) - short TTL (
5-20s) - strict replay protection on-chain
- daily stop:
-$10loss or+$1profit target reached
Rizzsolver-like counterparties
For solver companies that consume direct RFQ APIs, provide:
- HTTP endpoint:
https://hummingbot0xcentur1on.site/quote - supported chain: Base
8453 - supported pair: VVV/WETH both directions
- max size: initially tiny and configurable
- settlement: Base vault address after deployment
- hard-quote TTL: short and explicit
Near Intents-style integration
Near Intents-style consumers may need an adapter translating their quote schema into our internal schema. Keep this as a future adapter; start with our native JSON schema.
UniswapX
UniswapX RFQ quoter participation is vetted/permissioned. Public registration should wait until:
- API p95 latency is stable
- vault has inventory
- quotes are honored reliably
- monitoring and kill switches are live
- failures pause quoting automatically
Native RFQ API schema
GET /health
Response:
{
"status": "ok",
"service": "vvv-weth-rfq",
"chainId": 8453
}
GET /inventory
Response while local/simulated:
{
"inventory": {
"VVV": "10",
"WETH": "0.10",
"USDC": "0"
},
"mode": "simulated"
}
POST /quote
Request:
{
"taker": "0x0000000000000000000000000000000000000001",
"tokenIn": "WETH",
"tokenOut": "VVV",
"amountIn": "0.01",
"chainId": 8453,
"solverId": "optional-solver-id"
}
Response includes:
{
"quoteId": "0x...",
"tokenIn": "WETH",
"tokenOut": "VVV",
"amountIn": "0.004545...",
"amountOut": "0.75...",
"priceWethPerVvv": "0.006...",
"deadline": 1778870000,
"vault": null,
"signature": null
}
POST /quote/eip712
Same request as /quote, but response includes an EIP-712 typed-data object. Signature remains null until signing is explicitly enabled.
Production protections before public solver access
Even though the user selected public access once HTTPS is live, do not expose unlimited hard quotes. Required protections:
- NGINX rate limits
- max request body size
- strict token pair validation
- quote max notional cap
- daily PnL kill switch
- disable signing if price feeds are stale
- disable signing on RPC errors or vault inventory mismatch
- log fills and quote decisions without secrets
- Telegram/file alerts only on meaningful state changes