taker, while nonceAndMeta embeds the actual user address. That lets Velora execute through its router without letting another user steal the quote.
What you sign
The EIP-712 hash covers the eight order fields below: who gives which token, who may fill, the amounts, expiry, andnonceAndMeta. The signature is returned alongside those fields after signing. Velora may store extra metadata after the order is posted, but that metadata is not part of the EIP-712 hash.
On-chain order
maker— the order’s owner: the account swappingmakerAssetfortakerAsset. This account must hold enoughmakerAssetand approve AugustusRFQ, not Augustus v6.2, before the order can settle.taker— who may fill the order on-chain. With the zero address, anybody can fill; with any other address, the contract requiresmsg.sender == taker. In market-maker flows this is a Velora execution contract, and the real user is enforced throughnonceAndMetainstead.nonceAndMeta— auint256combining a nonce (which makes the order unique) with metadata; see below.expiry— Unix timestamp in seconds after which the order is unfillable.0means the order never expires.makerAsset— address of the ERC-20 token the maker sells.takerAsset— address of the ERC-20 token the maker buys.makerAmount— amount ofmakerAssetthe maker gives.takerAmount— amount oftakerAssetthe maker receives in exchange.signature— the maker’s EIP-712 signature over the eight order fields above, excludingsignatureitself.
EIP-712 signing
The order is hashed as EIP-712 typed data. Use this domain:
The contract accepts two signature types at settlement:
- An EOA signature: the maker signs the typed data with its private key (
eth_signTypedData). - An EIP-1271 signature: the maker is a smart contract, and AugustusRFQ calls its
isValidSignatureto verify the bytes. How those bytes are produced depends entirely on your contract.
The nonceAndMeta field
On-chain,nonceAndMeta only has to make the order hash unique. In Velora’s market-maker flow, it also binds the firm quote to the actual user.
The lower 160 bits carry the user address. The upper bits carry random or unpredictable data, which makes the order unique:
Off-chain representation
When an order is posted to Velora’s API, Velora stores the signed order plus tracking data: the maker’s live balance and allowance, the decoded counterparty, and the order’s lifecycle state.orderHash— the EIP-712 hash of the on-chain order; the order’s unique ID, used to fetch, fill, and cancel it.takerFromMeta— the counterparty address decoded fromnonceAndMeta. The zero address means the order wasn’t restricted to a counterparty.fillableBalance— the amount still unfilled. When it differs frommakerAmount, the order has been partially filled.swappableBalance— the amount that can actually be filled right now.makerBalance— the maximum the maker can currently cover after considering balance and allowance.permitMakerAsset— alwaysnullfor now; reserved for a future permit flow.type—P2PwhentakerFromMetanames a counterparty,LIMITwhen it’s the zero address and anyone can fill. Despite the legacy value name, these are AugustusRFQ orders; on Velora today, Limit Orders are a Delta product.state— the order’s lifecycle state. The states and their meaning are documented in the OTC API overview.
signature are needed for settlement. The additional fields help clients decide whether an order is still usable before they try to fill it.
Related pages
- Market making on Velora — how the firm-quote flow uses these orders.
- Market maker API specification — the
POST /firmendpoint that returns a signed order. - OTC API overview — posting, filling, and cancelling orders as a taker or maker.
- Chains & contracts — AugustusRFQ addresses per chain.