Plans
Get a firm price for one asset
POST /api/quote races the live venues for one asset in USDG and returns the winning executable quote, plus the intent to sign.
POST /api/quote quotes every live venue (LI.FI, Uniswap V4 and KyberSwap) in parallel for buying or selling one asset in USDG, returns the biggest fill, and includes the typed data the taker signs plus the settlement calls to submit.
POST /api/quote· requires a Privy bearer token. Base URL, rate limits, and error shapes: conventions.
Buy means USDG to the asset token; sell means the asset token to USDG. Quotes are short-lived — fetch one right before you settle, because the typed data in toSign carries its own deadline.
Parameters
Section titled “Parameters”JSON body.
| Name | Type | Required | Description |
|---|---|---|---|
mode |
"price" | "quote" |
yes | "price" for an indicative amount only; "quote" for a firm quote with the signable Permit2 intent and settlement call. |
side |
"buy" | "sell" |
yes | "buy" sells USDG for the asset; "sell" sells the asset for USDG. |
symbol |
string, 1–12 chars | yes | The asset ticker, e.g. AAPL. Unknown tickers return 400. |
sellAmount |
string (decimal digits) | yes | Raw base units of the sell token. On a buy that is USDG (6 decimals), so $25 is "25000000". On a sell it is the 18-decimal asset token. |
taker |
string (address) | yes | The smart account that will sign and settle. |
Returns
Section titled “Returns”For mode: "quote" with liquidity available:
| Field | Type | Description |
|---|---|---|
liquidityAvailable |
boolean | true when a firm quote was found. false returns an object with only this field. |
buyAmount |
string | Raw base units received (18-decimal asset token on a buy, 6-decimal USDG on a sell). |
minBuyAmount |
string | Minimum received after slippage (default 100 bps). |
needsAllowance |
boolean | true if the taker must approve the sell token to Permit2 before settling. |
permit2 |
string | The Permit2 spender, 0x000000000022D473030F116dDEE9F6B43aC78BA3. |
sellToken |
string | The sell token address the quote is priced against. |
sellAmount |
string | Echo of the raw sell amount. |
toSign |
object | The Permit2 PermitWitnessTransferFrom EIP-712 typed data. Pass it straight to signTypedData. |
tx |
object | The settlement call, { to, data, value, signatureOffset }. Splice the taker’s signature into data at signatureOffset, then submit. |
mode: "price" responds with { liquidityAvailable, buyAmount } only.
Request
Section titled “Request”Buy $25 of AAPL:
curl -X POST https://monvera.best/api/quote \ -H "Authorization: Bearer $MONVERA_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "mode": "quote", "side": "buy", "symbol": "AAPL", "sellAmount": "25000000", "taker": "0x4D2b1c3A5e6F7089aB0cD1e2F3a4B5c6D7e8F901" }'Example response
Section titled “Example response”{ "liquidityAvailable": true, "buyAmount": "97640000000000000", "minBuyAmount": "96663600000000000", "needsAllowance": false, "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "sellToken": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168", "sellAmount": "25000000", "toSign": { "domain": { "name": "Permit2", "chainId": 4663, "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" }, "types": { "PermitWitnessTransferFrom": [] }, "message": { "deadline": "1751990400" } }, "tx": { "to": "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C", "data": "0x...", "value": "0", "signatureOffset": 456 }}buyAmount is the AAPL token amount (18 decimals); sellToken is USDG.
Errors
Section titled “Errors”| Status | Body | When |
|---|---|---|
400 |
{"error":"Invalid request body."} |
Schema validation failed: missing field, bad mode/side, non-numeric sellAmount, malformed taker. |
400 |
{"error":"Unknown symbol: XYZ"} |
The symbol is not in the catalog. Valid tickers: GET /api/market. |
{"liquidityAvailable": false} is a 200, not an error: the asset is known but has no firm executable quote right now. Treat it as “cannot trade this leg at the moment” and sign nothing.
© 2026 Aibora · Documentation interface. Original Monvera materials retain their upstream attribution andMIT license.