diff --git a/api-reference/rfq/overview.mdx b/api-reference/rfq/overview.mdx index ff08a54..c2911cc 100644 --- a/api-reference/rfq/overview.mdx +++ b/api-reference/rfq/overview.mdx @@ -47,7 +47,7 @@ An OTC trade on Velora is a deal between two parties who already know each other | `GET` | [`/ft/p2p/{chainId}/taker/{address}`](/api-reference/rfq/orders-list-taker) | List orders addressed to a taker | | `GET` | [`/ft/fillablebalance/{chainId}/{address}`](/api-reference/rfq/fillable-balance) | Maker's fillable balance for order sizing, optionally scoped to a token | -Everything lives under `https://api.velora.xyz`. Filling and cancelling are on-chain calls to AugustusRFQ, not REST endpoints (see [Filling an order](#filling-an-order) and [Cancelling an order](#cancelling-an-order)). AugustusRFQ is deployed on Ethereum, Arbitrum, Avalanche, Base, BSC, Gnosis, Optimism, and Polygon; see [Chains & contracts](/resources/chains-and-contracts) for per-chain addresses and availability. +Everything lives under `https://api.velora.xyz`. Filling and cancelling are on-chain calls to AugustusRFQ, not REST endpoints (see [Filling an order](#filling-an-order) and [Cancelling an order](#cancelling-an-order)). AugustusRFQ is deployed on Ethereum, Arbitrum, Avalanche, Base, BSC, Gnosis, Optimism, Polygon, and Unichain; see [Chains & contracts](/resources/chains-and-contracts) for per-chain addresses and availability. ## Filling an order diff --git a/api-reference/specs/delta-v2.json b/api-reference/specs/delta-v2.json index 263a764..513cb8d 100644 --- a/api-reference/specs/delta-v2.json +++ b/api-reference/specs/delta-v2.json @@ -23,7 +23,7 @@ "type": "integer", "example": 1 }, - "description": "Source chain ID. Supported: 1, 10, 56, 100, 130, 137, 8453, 42161, 43114." + "description": "Source chain ID. Supported: 1, 10, 56, 100, 130, 137, 4663, 8453, 42161, 43114." }, { "name": "srcToken", @@ -271,7 +271,7 @@ "description": "Returns a recommended `route` plus `alternatives` (up to a few bridge options for crosschain). Pass the returned `route` and `side` verbatim to `POST /v2/delta/orders/build`.", "operationId": "deltaV2Prices", "parameters": [ - { "name": "chainId", "in": "query", "required": true, "schema": { "type": "integer", "example": 1 }, "description": "Source chain ID. Supported: 1, 10, 56, 100, 130, 137, 8453, 42161, 43114." }, + { "name": "chainId", "in": "query", "required": true, "schema": { "type": "integer", "example": 1 }, "description": "Source chain ID. Supported: 1, 10, 56, 100, 130, 137, 4663, 8453, 42161, 43114." }, { "name": "srcToken", "in": "query", "required": true, "schema": { "type": "string", "example": "0x6B175474E89094C44Da98b954EedeAC495271d0F" } }, { "name": "destToken", "in": "query", "required": true, "schema": { "type": "string", "example": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" }, "description": "Destination token. For crosschain quotes, the destination token on `destChainId`." }, { "name": "amount", "in": "query", "required": true, "schema": { "type": "string", "example": "1000000000000000000" }, "description": "Source amount (SELL) or destination amount (BUY), in raw token units." }, diff --git a/api-reference/specs/rfq.json b/api-reference/specs/rfq.json index ffb469f..c48d2ba 100644 --- a/api-reference/specs/rfq.json +++ b/api-reference/specs/rfq.json @@ -169,7 +169,7 @@ }, "ChainId": { "type": "integer", - "description": "EVM chain ID. AugustusRFQ is deployed on 1 (Mainnet), 10 (Optimism), 56 (BSC), 137 (Polygon), 8453 (Base), 42161 (Arbitrum), 43114 (Avalanche), and 100 (Gnosis). See /resources/chains-and-contracts for per-chain addresses.", + "description": "EVM chain ID. AugustusRFQ is deployed on 1 (Mainnet), 10 (Optimism), 56 (BSC), 100 (Gnosis), 130 (Unichain), 137 (Polygon), 8453 (Base), 42161 (Arbitrum), and 43114 (Avalanche). See /resources/chains-and-contracts for per-chain addresses.", "example": 1 }, "TokenAmount": { diff --git a/delta/how-it-works.mdx b/delta/how-it-works.mdx index 7f51f30..4772653 100644 --- a/delta/how-it-works.mdx +++ b/delta/how-it-works.mdx @@ -74,7 +74,7 @@ You `POST /v2/delta/orders` with `order` (the `toSign.value`), the `signature`, ### 5. Settle -The protocol settlement layer calls `settle(...)` on the Delta contract (`0x0000000000bbF5c5Fd284e657F01Bd000933C96D`, same address on every supported chain) with the signed order and the winning solver's fill calldata. The contract verifies the signature, pulls `srcToken` from the user via the approved spender (the Delta contract itself), runs the fill, and delivers `destToken` to the user. If settlement fails, nothing is pulled from the user. You track progress via `GET /v2/delta/orders/{orderId}` until the order reaches a terminal status (`COMPLETED`, `EXPIRED`, `FAILED`, `CANCELLED`, or `REFUNDED`). Crosschain orders can report `REFUNDING` before `REFUNDED` while Velora verifies the bridge refund transaction. +The protocol settlement layer calls `settle(...)` on the Delta contract (`0x0000000000bbF5c5Fd284e657F01Bd000933C96D`, same address on every Delta-enabled chain) with the signed order and the winning solver's fill calldata. The contract verifies the signature, pulls `srcToken` from the user via the approved spender (the Delta contract itself), runs the fill, and delivers `destToken` to the user. If settlement fails, nothing is pulled from the user. You track progress via `GET /v2/delta/orders/{orderId}` until the order reaches a terminal status (`COMPLETED`, `EXPIRED`, `FAILED`, `CANCELLED`, or `REFUNDED`). Crosschain orders can report `REFUNDING` before `REFUNDED` while Velora verifies the bridge refund transaction. ## Why this design diff --git a/for-agents/mcp-server/available-tools.mdx b/for-agents/mcp-server/available-tools.mdx index 15d4aa1..b504578 100644 --- a/for-agents/mcp-server/available-tools.mdx +++ b/for-agents/mcp-server/available-tools.mdx @@ -251,7 +251,7 @@ Checks include: a `network` key anywhere in the plan (must be `chainId`), MEV in List the EVM chains Velora supports. No parameters. -Returns `result.raw.chains` as `{ chainId, name }` pairs with `source: "server-known"`: Ethereum (1), Optimism (10), BNB Chain (56), Gnosis (100), Unichain (130), Polygon (137), Sonic (146), Base (8453), Arbitrum (42161), Avalanche (43114). +Returns `result.raw.chains` as `{ chainId, name }` pairs with `source: "server-known"`: Ethereum (1), Optimism (10), BNB Chain (56), Gnosis (100), Unichain (130), Polygon (137), Robinhood Chain (4663), Base (8453), Arbitrum (42161), Avalanche (43114). This is a server-known list, not a live API response, and may lag actual support. Confirm a specific chain with `velora_get_tokens`; do not assume every EVM chain is supported. diff --git a/for-agents/token-approvals.mdx b/for-agents/token-approvals.mdx index 10cbbc9..0b8c196 100644 --- a/for-agents/token-approvals.mdx +++ b/for-agents/token-approvals.mdx @@ -23,7 +23,7 @@ If the user's source token is the chain's native asset, there is no approval ste | Market Swap | **Augustus v6.2** | | AugustusRFQ (OTC/RFQ) | **AugustusRFQ** contract on the target chain | -Deployed addresses for each spender, per chain: [Chains & contracts → Addresses by chain](/resources/chains-and-contracts#addresses-by-chain). Delta and AugustusRFQ are not deployed everywhere; code should read availability at runtime via [`/resources/contracts.json`](/resources/contracts.json) keyed by `chainId`. +Deployed addresses for each spender, per chain: [Chains & contracts → Addresses by chain](/resources/chains-and-contracts#addresses-by-chain). Delta, Augustus v6.2, and AugustusRFQ are each missing on some chains; code should read availability at runtime via [`/resources/contracts.json`](/resources/contracts.json) keyed by `chainId`. Spenders are mode-specific and **never interchangeable**. An approval to Augustus does not authorize a Delta order. An approval to the Delta contract does not authorize a Market swap. Re-quoting under a different mode changes the spender; re-check the allowance before signing. diff --git a/resources/chains-and-contracts.mdx b/resources/chains-and-contracts.mdx index 4bb7d6d..3a42d76 100644 --- a/resources/chains-and-contracts.mdx +++ b/resources/chains-and-contracts.mdx @@ -13,7 +13,7 @@ This page is the single source of truth for contract addresses across Velora's s ## Supported chains -Velora supports the following EVM networks. Each chain has Augustus v6.2 (Market routing) deployed; Delta availability is a subset. +Velora supports the following EVM networks. Most chains run both Delta and Augustus v6.2 (Market routing); the [table below](#addresses-by-chain) shows which modes each chain supports. - Ethereum (1) - Optimism (10) @@ -21,6 +21,7 @@ Velora supports the following EVM networks. Each chain has Augustus v6.2 (Market - Gnosis (100) - Unichain (130) - Polygon (137) +- Robinhood Chain (4663) - Base (8453) - Arbitrum One (42161) - Avalanche (43114) @@ -31,25 +32,26 @@ The authoritative supported-chain list is queryable at runtime via `GET /chains` Each contract is also the ERC-20 spender for its execution mode — approve Augustus v6.2 for Market swaps, the Delta contract for Delta orders (Swap, Limit, TWAP), and AugustusRFQ for OTC/RFQ fills. A `—` means the contract isn't deployed on that chain and the corresponding mode is unavailable there. See [Token approvals for agents](/for-agents/token-approvals) for the spender-by-mode decision rules. -**Augustus v6.2** is deployed at `0x6a000f20005980200259b80c5102003040001068` on every supported chain. **Delta** is deployed at `0x0000000000bbf5c5fd284e657f01bd000933c96d` and **Delta Wrapped Native (dETH)** at `0x0a0d53b6684c7b32b4cbef5fe8483bfcc8406742`, both at the same address on every Delta-enabled chain. **Fee Claimer** is deployed at `0x00700052c0608F670705380a4900e0a8080010CC` on every supported chain. AugustusRFQ addresses vary per chain and are listed below. - -| Chain (ID) | Delta | AugustusRFQ | -|---|---|---| -| Ethereum (1) | ✓ | `0xe92b586627ccA7a83dC919cc7127196d70f55a06` | -| Optimism (10) | ✓ | `0x0927FD43a7a87E3E8b81Df2c44B03C4756849F6D` | -| BNB Chain (56) | ✓ | `0x8DcDfe88EF0351f27437284D0710cD65b20288bb` | -| Gnosis (100) | — | `0x92EaD5bACf6F0E995FA46Ad8215A9b11f67ca241` | -| Unichain (130) | ✓ | `0x92EaD5bACf6F0E995FA46Ad8215A9b11f67ca241` | -| Polygon (137) | ✓ | `0xF3CD476C3C4D3Ac5cA2724767f269070CA09A043` | -| Base (8453) | ✓ | `0xa003dFBA51C9e1e56C67ae445b852bdEd7aC5EEd` | -| Arbitrum One (42161) | ✓ | `0x0927FD43a7a87E3E8b81Df2c44B03C4756849F6D` | -| Avalanche (43114) | — | `0x34302c4267d0dA0A8c65510282Cc22E9e39df51f` | +**Delta** is deployed at `0x0000000000bbf5c5fd284e657f01bd000933c96d` and **Delta Wrapped Native (dETH)** at `0x0a0d53b6684c7b32b4cbef5fe8483bfcc8406742`, both at the same address on every Delta-enabled chain. **Augustus v6.2** is deployed at `0x6a000f20005980200259b80c5102003040001068` on every Market-enabled chain. **Fee Claimer** is deployed at `0x00700052c0608F670705380a4900e0a8080010CC` on every Market-enabled chain. AugustusRFQ addresses vary per chain and are listed below. + +| Chain (ID) | Delta | Market (Augustus v6.2) | AugustusRFQ | +|---|---|---|---| +| Ethereum (1) | ✓ | ✓ | `0xe92b586627ccA7a83dC919cc7127196d70f55a06` | +| Optimism (10) | ✓ | ✓ | `0x0927FD43a7a87E3E8b81Df2c44B03C4756849F6D` | +| BNB Chain (56) | ✓ | ✓ | `0x8DcDfe88EF0351f27437284D0710cD65b20288bb` | +| Gnosis (100) | — | ✓ | `0x92EaD5bACf6F0E995FA46Ad8215A9b11f67ca241` | +| Unichain (130) | ✓ | ✓ | `0x92EaD5bACf6F0E995FA46Ad8215A9b11f67ca241` | +| Polygon (137) | ✓ | ✓ | `0xF3CD476C3C4D3Ac5cA2724767f269070CA09A043` | +| Robinhood Chain (4663) | ✓ | — | — | +| Base (8453) | ✓ | ✓ | `0xa003dFBA51C9e1e56C67ae445b852bdEd7aC5EEd` | +| Arbitrum One (42161) | ✓ | ✓ | `0x0927FD43a7a87E3E8b81Df2c44B03C4756849F6D` | +| Avalanche (43114) | — | ✓ | `0x34302c4267d0dA0A8c65510282Cc22E9e39df51f` | ## Contracts ### Augustus v6.2 -The Market router. All Market [`POST /transactions/:chainId`](/api-reference/market/transactions) calldata targets the Augustus v6.2 contract on the requested chain. Deployed at the same address across every supported chain. +The Market router. All Market [`POST /transactions/:chainId`](/api-reference/market/transactions) calldata targets the Augustus v6.2 contract on the requested chain. Deployed at the same address across every Market-enabled chain. ### Augustus v6.1, v5 @@ -73,7 +75,7 @@ On-chain OTC and RFQ settlement contract. Supports partial fills and bilateral s ### Fee Claimer -Holds partner fees accrued from Market swaps until the partner claims them. Fees taken via `partnerAddress` accumulate in this contract per chain, and partners withdraw them through the [Fee Claimer app](https://velora.xyz/fee_claimer). Delta fees never pass through it; they accrue in the Delta contract itself. Deployed at the same address on every supported chain. See [Monetization](/overview/monetization) for fee parameters and the claim flow. +Holds partner fees accrued from Market swaps until the partner claims them. Fees taken via `partnerAddress` accumulate in this contract per chain, and partners withdraw them through the [Fee Claimer app](https://velora.xyz/fee_claimer). Delta fees never pass through it; they accrue in the Delta contract itself. Deployed at the same address on every Market-enabled chain. See [Monetization](/overview/monetization) for fee parameters and the claim flow. ## Related diff --git a/resources/contracts.json b/resources/contracts.json index 88ce597..c29ab89 100644 --- a/resources/contracts.json +++ b/resources/contracts.json @@ -2,7 +2,7 @@ "_meta": { "description": "Canonical per-chain deployment addresses for Velora's contract stack. Keyed by EVM chainId. Roles not deployed on a given chain are omitted.", "source": "https://velora.xyz/docs/resources/chains-and-contracts", - "lastUpdated": "2026-06-10", + "lastUpdated": "2026-08-10", "runtimeSource": "GET /chains on the Market API is the runtime source of truth for the supported-chain list.", "unverifiedRoles": { "note": "The plan-specified roles below are not yet sourced from a canonical Velora developer-docs page. Backfill when an authoritative source is published.", @@ -50,6 +50,10 @@ "deltaWrappedNative": "0x0a0d53b6684c7b32b4cbef5fe8483bfcc8406742", "augustusRFQ": "0xF3CD476C3C4D3Ac5cA2724767f269070CA09A043", "feeClaimer": "0x00700052c0608F670705380a4900e0a8080010CC" }, + "4663": { + "name": "Robinhood Chain", + "delta": "0x0000000000bbf5c5fd284e657f01bd000933c96d", + "deltaWrappedNative": "0x0a0d53b6684c7b32b4cbef5fe8483bfcc8406742" }, "8453": { "name": "Base", "augustusV6_2": "0x6a000f20005980200259b80c5102003040001068", diff --git a/widget/overview.mdx b/widget/overview.mdx index 5a78353..71ab3d1 100644 --- a/widget/overview.mdx +++ b/widget/overview.mdx @@ -24,7 +24,7 @@ The Velora Widget is a React component that gives your users a complete trading Same-chain and crosschain across Ethereum, Polygon, BNB, Avalanche, - Arbitrum, Optimism, Base, Gnosis, and Unichain. + Arbitrum, Optimism, Base, Gnosis, Unichain, and Robinhood Chain. Powered by [Delta](/delta/overview). Gasless and MEV-protected.