Back to documentation home

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:

  1. Indicative quotes from POST /quote
  2. 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 /quote or /quote/eip712 endpoint 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 USD equivalent initially)
  • short TTL (5-20s)
  • strict replay protection on-chain
  • daily stop: -$10 loss or +$1 profit 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