Orderly Network: Orderly One DEX
Orderly One is a white-label DEX platform. Users configure a DEX (name, branding, chains), the API forks a GitHub template repo, and GitHub Actions deploys to GitHub Pages. Graduated DEXs earn fee splits.
When to Use
- - Creating a custom perpetuals DEX
- Managing DEX deployment, domains, or themes
- Handling graduation for fee sharing
API Base URLs
| Environment | Base URL |
|---|
| Mainnet | INLINECODE0 |
| Testnet |
https://testnet-dex-api.orderly.network |
API Categories
Use get_orderly_one_api_info MCP tool for full endpoint details.
| Category | Description | Key Endpoints |
|---|
| auth | Wallet signature authentication | INLINECODE3 , /api/auth/verify, INLINECODE5 |
| dex |
DEX CRUD, domains, deployment |
/api/dex,
/api/dex/{id},
/api/dex/{id}/custom-domain,
/api/dex/{id}/workflow-status |
|
theme | AI theme generation |
/api/theme/modify,
/api/theme/fine-tune |
|
graduation | Demo → full DEX with fee sharing |
/api/graduation/status,
/api/graduation/fee-options,
/api/graduation/verify-tx |
|
leaderboard | Cross-DEX rankings |
/api/leaderboard,
/api/leaderboard/broker/{brokerId} |
|
stats | Platform statistics |
/api/stats,
/api/stats/swap-fee-config |
Create/Update DEX
Both POST /api/dex (create) and PUT /api/dex/{id} (update) use multipart/form-data.
Required Fields
| Field | Type | Constraints |
|---|
| INLINECODE22 | string | 3-30 chars, alphanumeric/space/dot/hyphen |
Optional Fields
Chains:
| Field | Type | Notes |
|---|
| INLINECODE23 | number[] (JSON) | e.g. INLINECODE24 |
| INLINECODE25 |
number | Default chain ID |
Branding (files):
| Field | Type | Max Size |
|---|
| INLINECODE26 | File | 250KB |
| INLINECODE27 |
File | 100KB |
|
favicon | File | 50KB |
|
pnlPoster0..N | File | 250KB ea |
Theming:
| Field | Type | Notes |
|---|
| INLINECODE30 | string | CSS variables to override default theme |
| INLINECODE31 |
string | JSON for chart colors |
Social:
| Field | Type | Notes |
|---|
| INLINECODE32 | string | URL |
| INLINECODE33 |
string | URL |
|
xLink | string | URL |
Auth/Wallet:
| Field | Type | Notes |
|---|
| INLINECODE35 | string | WalletConnect project ID |
| INLINECODE36 |
string | Privy app ID |
|
privyTermsOfUse | string | URL to terms |
|
privyLoginMethods | string | Comma-separated |
|
enableAbstractWallet | boolean | Enable Abstract wallet |
|
disableEvmWallets | boolean | Disable EVM wallets |
|
disableSolanaWallets | boolean | Disable Solana wallets |
Network:
| Field | Type | Notes |
|---|
| INLINECODE42 | boolean | Disable mainnet |
| INLINECODE43 |
boolean | Disable testnet |
Trading:
| Field | Type | Notes |
|---|
| INLINECODE44 | number (0-100) | Swap fee in basis points (requires "Swap" in enabledMenus) |
| INLINECODE45 |
string | Comma-separated (PERP
ETHUSDC) |
Menus:
| Field | Type | Notes |
|---|
| INLINECODE46 | string | Comma-separated. Options: Trading, Portfolio, Markets, Leaderboard (defaults), Swap, Rewards, Vaults, Points |
| INLINECODE47 |
string | Format: "Name,URL;Name2,URL2" |
SEO:
| Field | Type | Constraints |
|---|
| INLINECODE48 | string | max 100 chars |
| INLINECODE49 |
string | max 300 chars |
|
seoSiteLanguage | string | "en" or "en-US" |
|
seoSiteLocale | string | "en_US" |
|
seoTwitterHandle | string | "@handle" |
|
seoThemeColor | string | "#1a1b23" |
|
seoKeywords | string | max 500 chars |
Other:
| Field | Type | Notes |
|---|
| INLINECODE55 | string | JSON array. Options: en, zh, tc, ja, es, ko, vi, de, fr, ru, id, tr, it, pt, uk, pl, nl |
| INLINECODE56 |
string | Base64 encoded |
|
enableServiceDisclaimerDialog | boolean | Show disclaimer |
|
enableCampaigns | boolean | Enable ORDER token campaigns and Points menu |
|
restrictedRegions | string | Comma-separated country names (e.g., "United States,China") |
|
whitelistedIps | string | IP whitelist |
Response
Create (201): INLINECODE61
Update (200): Full DEX object with all fields
Key Workflows
Authentication
- 1.
POST /api/auth/nonce with { address } → get message to sign - Sign: INLINECODE64
- INLINECODE65 with
{ address, signature } → get JWT - Use
Authorization: Bearer {token} for all requests
Create DEX Flow
- 1. Build
multipart/form-data with fields above - INLINECODE69 → returns INLINECODE70
- Poll
GET /api/dex/{id}/workflow-status until INLINECODE72
Graduation (Fee Sharing)
- 1.
GET /api/graduation/fee-options → USDC/ORDER amounts + INLINECODE74 - Transfer tokens on Ethereum, Arbitrum, or Base to INLINECODE75
- INLINECODE76 with
{ txHash, chain, chainId, chainType: "EVM", brokerId, makerFee, takerFee, rwaMakerFee, rwaTakerFee, paymentType } → creates broker ID
After broker ID created, finalize admin wallet:
EVM Wallet: 4. Register with Orderly Network API:
- - INLINECODE78
- Sign EIP-712 typed data: INLINECODE79
- INLINECODE80 with INLINECODE81
- 5.
POST /api/graduation/finalize-admin-wallet (empty body)
Solana Wallet: 4. Register with Orderly Network API:
- - INLINECODE83
- Sign message with Solana wallet: INLINECODE84
- INLINECODE85 with INLINECODE86
- 5.
POST /api/graduation/finalize-admin-wallet (empty body)
EVM Multisig/Gnosis Safe: 4. In Safe Wallet → Transaction Builder → create batch:
- - To: Orderly Vault contract (chain-specific)
- Method: INLINECODE88
- Data: INLINECODE89
- 5. Execute on Safe with required signer approvals
- INLINECODE90 with INLINECODE91
Orderly MCP
This skill references the Orderly MCP server. If not installed, see orderly-onboarding skill for setup.
Tool: INLINECODE92
- -
{ endpoint: "/api/dex" } - Specific endpoint details - INLINECODE94 - All endpoints in a category
- INLINECODE95 - Full API overview
Common Issues
| Issue | Solution |
|---|
| DEX stuck deploying | Check /api/dex/{id}/workflow-runs/{runId} for job failures |
| Domain not working |
CNAME to
{org}.github.io, wait for DNS propagation |
| Graduation verify fails | Confirm tx to
receiverAddress, wait for confirmations |
| Logo upload fails | Check file size limits (250KB primary, 100KB secondary) |
| Invalid CSS | Validate
themeCSS syntax before submitting |
Related Skills
- - orderly-onboarding - Account setup
- orderly-trading-orders - Trading functionality
Orderly Network: Orderly One DEX
Orderly One 是一个白标DEX平台。用户配置DEX(名称、品牌、链),API会复刻一个GitHub模板仓库,GitHub Actions将部署到GitHub Pages。毕业的DEX可获得费用分成。
使用场景
- - 创建自定义永续合约DEX
- 管理DEX部署、域名或主题
- 处理毕业以获取费用分成
API基础URL
| 环境 | 基础URL |
|---|
| 主网 | https://dex-api.orderly.network |
| 测试网 |
https://testnet-dex-api.orderly.network |
API分类
使用 getorderlyoneapiinfo MCP工具获取完整端点详情。
| 分类 | 描述 | 关键端点 |
|---|
| auth | 钱包签名认证 | /api/auth/nonce, /api/auth/verify, /api/auth/validate |
| dex |
DEX增删改查、域名、部署 | /api/dex, /api/dex/{id}, /api/dex/{id}/custom-domain, /api/dex/{id}/workflow-status |
|
theme | AI主题生成 | /api/theme/modify, /api/theme/fine-tune |
|
graduation | 演示版 → 带费用分成的完整DEX | /api/graduation/status, /api/graduation/fee-options, /api/graduation/verify-tx |
|
leaderboard | 跨DEX排名 | /api/leaderboard, /api/leaderboard/broker/{brokerId} |
|
stats | 平台统计 | /api/stats, /api/stats/swap-fee-config |
创建/更新DEX
POST /api/dex(创建)和 PUT /api/dex/{id}(更新)均使用 multipart/form-data。
必填字段
| 字段 | 类型 | 约束 |
|---|
| brokerName | 字符串 | 3-30个字符,字母数字/空格/点/连字符 |
可选字段
链:
| 字段 | 类型 | 备注 |
|---|
| chainIds | 数字数组 (JSON) | 例如 [42161, 10, 8453] |
| defaultChain |
数字 | 默认链ID |
品牌(文件):
| 字段 | 类型 | 最大大小 |
|---|
| primaryLogo | 文件 | 250KB |
| secondaryLogo |
文件 | 100KB |
| favicon | 文件 | 50KB |
| pnlPoster0..N | 文件 | 每个250KB |
主题:
| 字段 | 类型 | 备注 |
|---|
| themeCSS | 字符串 | 覆盖默认主题的CSS变量 |
| tradingViewColorConfig |
字符串 | 图表颜色的JSON |
社交:
| 字段 | 类型 | 备注 |
|---|
| telegramLink | 字符串 | URL |
| discordLink |
字符串 | URL |
| xLink | 字符串 | URL |
认证/钱包:
| 字段 | 类型 | 备注 |
|---|
| walletConnectProjectId | 字符串 | WalletConnect项目ID |
| privyAppId |
字符串 | Privy应用ID |
| privyTermsOfUse | 字符串 | 条款URL |
| privyLoginMethods | 字符串 | 逗号分隔 |
| enableAbstractWallet | 布尔值 | 启用Abstract钱包 |
| disableEvmWallets | 布尔值 | 禁用EVM钱包 |
| disableSolanaWallets | 布尔值 | 禁用Solana钱包 |
网络:
| 字段 | 类型 | 备注 |
|---|
| disableMainnet | 布尔值 | 禁用主网 |
| disableTestnet |
布尔值 | 禁用测试网 |
交易:
| 字段 | 类型 | 备注 |
|---|
| swapFeeBps | 数字 (0-100) | 兑换费用(基点),需在enabledMenus中包含Swap |
| symbolList |
字符串 | 逗号分隔 (PERP
ETHUSDC) |
菜单:
| 字段 | 类型 | 备注 |
|---|
| enabledMenus | 字符串 | 逗号分隔。选项:Trading, Portfolio, Markets, Leaderboard(默认), Swap, Rewards, Vaults, Points |
| customMenus |
字符串 | 格式:名称,URL;名称2,URL2 |
SEO:
| 字段 | 类型 | 约束 |
|---|
| seoSiteName | 字符串 | 最多100个字符 |
| seoSiteDescription |
字符串 | 最多300个字符 |
| seoSiteLanguage | 字符串 | en 或 en-US |
| seoSiteLocale | 字符串 | en_US |
| seoTwitterHandle | 字符串 | @handle |
| seoThemeColor | 字符串 | #1a1b23 |
| seoKeywords | 字符串 | 最多500个字符 |
其他:
| 字段 | 类型 | 备注 |
|---|
| availableLanguages | 字符串 | JSON数组。选项:en, zh, tc, ja, es, ko, vi, de, fr, ru, id, tr, it, pt, uk, pl, nl |
| analyticsScript |
字符串 | Base64编码 |
| enableServiceDisclaimerDialog | 布尔值 | 显示免责声明 |
| enableCampaigns | 布尔值 | 启用ORDER代币活动和Points菜单 |
| restrictedRegions | 字符串 | 逗号分隔的国家名称(例如:United States,China) |
| whitelistedIps | 字符串 | IP白名单 |
响应
创建 (201): { id, brokerId, brokerName, repoUrl, userId, createdAt }
更新 (200): 包含所有字段的完整DEX对象
关键工作流
认证
- 1. POST /api/auth/nonce 使用 { address } → 获取待签名消息
- 签名:Sign this message to authenticate with Orderly One: {nonce}
- POST /api/auth/verify 使用 { address, signature } → 获取JWT
- 所有请求使用 Authorization: Bearer {token}
创建DEX流程
- 1. 使用上述字段构建 multipart/form-data
- POST /api/dex → 返回 { id, brokerId, repoUrl }
- 轮询 GET /api/dex/{id}/workflow-status 直到 conclusion: success
毕业(费用分成)
- 1. GET /api/graduation/fee-options → USDC/ORDER金额 + receiverAddress
- 在 Ethereum、Arbitrum 或 Base 上将代币转账至 receiverAddress
- POST /api/graduation/verify-tx 使用 { txHash, chain, chainId, chainType: EVM, brokerId, makerFee, takerFee, rwaMakerFee, rwaTakerFee, paymentType } → 创建broker ID
创建broker ID后,完成管理员钱包设置:
EVM钱包: 4. 向Orderly Network API注册:
- - GET https://api.orderly.org/v1/registrationnonce
- 签名EIP-712类型化数据:{ brokerId, chainId, timestamp, registrationNonce }
- POST https://api.orderly.org/v1/registeraccount 使用 { message, signature, userAddress, chainType: EVM }
- 5. POST /api/graduation/finalize-admin-wallet(空请求体)
Solana钱包: 4. 向Orderly Network API注册:
- - GET https://api.orderly.org/v1/registration_nonce
- 使用Solana钱包签名消息:{ brokerId, chainId: 900900900