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 |
https://dex-api.orderly.network |
| 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 |
/api/auth/nonce, /api/auth/verify, /api/auth/validate |
| 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 |
brokerName |
string |
3-30 chars, alphanumeric/space/dot/hyphen |
Optional Fields
Chains:
| Field |
Type |
Notes |
chainIds |
number[] (JSON) |
e.g. [42161, 10, 8453] |
defaultChain |
number |
Default chain ID |
Branding (files):
| Field |
Type |
Max Size |
primaryLogo |
File |
250KB |
secondaryLogo |
File |
100KB |
favicon |
File |
50KB |
pnlPoster0..N |
File |
250KB ea |
Theming:
| Field |
Type |
Notes |
themeCSS |
string |
CSS variables to override default theme |
tradingViewColorConfig |
string |
JSON for chart colors |
Social:
| Field |
Type |
Notes |
telegramLink |
string |
URL |
discordLink |
string |
URL |
xLink |
string |
URL |
Auth/Wallet:
| Field |
Type |
Notes |
walletConnectProjectId |
string |
WalletConnect project ID |
privyAppId |
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 |
disableMainnet |
boolean |
Disable mainnet |
disableTestnet |
boolean |
Disable testnet |
Trading:
| Field |
Type |
Notes |
swapFeeBps |
number (0-100) |
Swap fee in basis points (requires "Swap" in enabledMenus) |
symbolList |
string |
Comma-separated (PERP_ETH_USDC) |
Menus:
| Field |
Type |
Notes |
enabledMenus |
string |
Comma-separated. Options: Trading, Portfolio, Markets, Leaderboard (defaults), Swap, Rewards, Vaults, Points |
customMenus |
string |
Format: "Name,URL;Name2,URL2" |
SEO:
| Field |
Type |
Constraints |
seoSiteName |
string |
max 100 chars |
seoSiteDescription |
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 |
availableLanguages |
string |
JSON array. Options: en, zh, tc, ja, es, ko, vi, de, fr, ru, id, tr, it, pt, uk, pl, nl |
analyticsScript |
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): { id, brokerId, brokerName, repoUrl, userId, createdAt }
Update (200): Full DEX object with all fields
Key Workflows
Authentication
POST /api/auth/nonce with { address } → get message to sign
- Sign:
"Sign this message to authenticate with Orderly One: {nonce}"
POST /api/auth/verify with { address, signature } → get JWT
- Use
Authorization: Bearer {token} for all requests
Create DEX Flow
- Build
multipart/form-data with fields above
POST /api/dex → returns { id, brokerId, repoUrl }
- Poll
GET /api/dex/{id}/workflow-status until conclusion: "success"
Graduation (Fee Sharing)
GET /api/graduation/fee-options → USDC/ORDER amounts + receiverAddress
- Transfer tokens on Ethereum, Arbitrum, or Base to
receiverAddress
POST /api/graduation/verify-tx 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:
GET https://api.orderly.org/v1/registration_nonce
- Sign EIP-712 typed data:
{ brokerId, chainId, timestamp, registrationNonce }
POST https://api.orderly.org/v1/register_account with { message, signature, userAddress, chainType: "EVM" }
POST /api/graduation/finalize-admin-wallet (empty body)
Solana Wallet: 4. Register with Orderly Network API:
GET https://api.orderly.org/v1/registration_nonce
- Sign message with Solana wallet:
{ brokerId, chainId: 900900900, timestamp, registrationNonce }
POST https://api.orderly.org/v1/register_account with { message, signature, userAddress, chainType: "SOL" }
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:
delegateSigner
- Data:
[keccak256(brokerId), userAddress]
- Execute on Safe with required signer approvals
POST /api/graduation/finalize-admin-wallet with { multisigAddress, multisigChainId }
Orderly MCP
This skill references the Orderly MCP server. If not installed, see orderly-onboarding skill for setup.
Tool: get_orderly_one_api_info
{ endpoint: "/api/dex" } - Specific endpoint details
{ category: "graduation" } - All endpoints in a category
{} - 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
1---2name: orderly-one-dex3description: Create and manage a custom DEX using Orderly One API - deployment, custom domains, graduation, and theming4---56# Orderly Network: Orderly One DEX78**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.910## When to Use1112- Creating a custom perpetuals DEX13- Managing DEX deployment, domains, or themes14- Handling graduation for fee sharing1516## API Base URLs1718| Environment | Base URL |19| ----------- | ----------------------------------------- |20| Mainnet | `https://dex-api.orderly.network` |21| Testnet | `https://testnet-dex-api.orderly.network` |2223## API Categories2425Use `get_orderly_one_api_info` MCP tool for full endpoint details.2627| Category | Description | Key Endpoints |28| --------------- | -------------------------------- | ------------------------------------------------------------------------------------------- |29| **auth** | Wallet signature authentication | `/api/auth/nonce`, `/api/auth/verify`, `/api/auth/validate` |30| **dex** | DEX CRUD, domains, deployment | `/api/dex`, `/api/dex/{id}`, `/api/dex/{id}/custom-domain`, `/api/dex/{id}/workflow-status` |31| **theme** | AI theme generation | `/api/theme/modify`, `/api/theme/fine-tune` |32| **graduation** | Demo → full DEX with fee sharing | `/api/graduation/status`, `/api/graduation/fee-options`, `/api/graduation/verify-tx` |33| **leaderboard** | Cross-DEX rankings | `/api/leaderboard`, `/api/leaderboard/broker/{brokerId}` |34| **stats** | Platform statistics | `/api/stats`, `/api/stats/swap-fee-config` |3536---3738## Create/Update DEX3940Both `POST /api/dex` (create) and `PUT /api/dex/{id}` (update) use `multipart/form-data`.4142### Required Fields4344| Field | Type | Constraints |45| ------------ | ------ | ----------------------------------------- |46| `brokerName` | string | 3-30 chars, alphanumeric/space/dot/hyphen |4748### Optional Fields4950**Chains:**51| Field | Type | Notes |52| -------------- | ---------------- | ------------------------ |53| `chainIds` | number[] (JSON) | e.g. `[42161, 10, 8453]` |54| `defaultChain` | number | Default chain ID |5556**Branding (files):**57| Field | Type | Max Size |58| --------------- | ---- | -------- |59| `primaryLogo` | File | 250KB |60| `secondaryLogo` | File | 100KB |61| `favicon` | File | 50KB |62| `pnlPoster0..N` | File | 250KB ea |6364**Theming:**65| Field | Type | Notes |66| --------------- | ------ | -------------------------------- |67| `themeCSS` | string | CSS variables to override [default theme](https://raw.githubusercontent.com/OrderlyNetworkDexCreator/dex-creator-template/refs/heads/main/app/styles/theme.css) |68| `tradingViewColorConfig` | string | JSON for chart colors |6970**Social:**71| Field | Type | Notes |72| -------------- | ------ | ------------------ |73| `telegramLink` | string | URL |74| `discordLink` | string | URL |75| `xLink` | string | URL |7677**Auth/Wallet:**78| Field | Type | Notes |79| ------------------------ | -------- | -------------------------- |80| `walletConnectProjectId` | string | WalletConnect project ID |81| `privyAppId` | string | Privy app ID |82| `privyTermsOfUse` | string | URL to terms |83| `privyLoginMethods` | string | Comma-separated |84| `enableAbstractWallet` | boolean | Enable Abstract wallet |85| `disableEvmWallets` | boolean | Disable EVM wallets |86| `disableSolanaWallets` | boolean | Disable Solana wallets |8788**Network:**89| Field | Type | Notes |90| ------------------ | ------- | -------------------- |91| `disableMainnet` | boolean | Disable mainnet |92| `disableTestnet` | boolean | Disable testnet |9394**Trading:**95| Field | Type | Notes |96| ------------ | -------------- | ------------------------------- |97| `swapFeeBps` | number (0-100) | Swap fee in basis points (requires "Swap" in enabledMenus) |98| `symbolList` | string | Comma-separated (PERP_ETH_USDC) |99100**Menus:**101| Field | Type | Notes |102| -------------- | ------ | ----------------------------- |103| `enabledMenus` | string | Comma-separated. Options: Trading, Portfolio, Markets, Leaderboard (defaults), Swap, Rewards, Vaults, Points |104| `customMenus` | string | Format: "Name,URL;Name2,URL2" |105106**SEO:**107| Field | Type | Constraints |108| ------------------- | ------ | --------------------- |109| `seoSiteName` | string | max 100 chars |110| `seoSiteDescription`| string | max 300 chars |111| `seoSiteLanguage` | string | "en" or "en-US" |112| `seoSiteLocale` | string | "en_US" |113| `seoTwitterHandle` | string | "@handle" |114| `seoThemeColor` | string | "#1a1b23" |115| `seoKeywords` | string | max 500 chars |116117**Other:**118| Field | Type | Notes |119| -------------------------- | ------- | ------------------------ |120| `availableLanguages` | string | JSON array. Options: en, zh, tc, ja, es, ko, vi, de, fr, ru, id, tr, it, pt, uk, pl, nl |121| `analyticsScript` | string | Base64 encoded |122| `enableServiceDisclaimerDialog` | boolean | Show disclaimer |123| `enableCampaigns` | boolean | Enable ORDER token campaigns and Points menu |124| `restrictedRegions` | string | Comma-separated country names (e.g., "United States,China") |125| `whitelistedIps` | string | IP whitelist |126127### Response128129**Create (201):** `{ id, brokerId, brokerName, repoUrl, userId, createdAt }`130131**Update (200):** Full DEX object with all fields132133---134135## Key Workflows136137### Authentication1381391. `POST /api/auth/nonce` with `{ address }` → get message to sign1402. Sign: `"Sign this message to authenticate with Orderly One: {nonce}"`1413. `POST /api/auth/verify` with `{ address, signature }` → get JWT1424. Use `Authorization: Bearer {token}` for all requests143144### Create DEX Flow1451461. Build `multipart/form-data` with fields above1472. `POST /api/dex` → returns `{ id, brokerId, repoUrl }`1483. Poll `GET /api/dex/{id}/workflow-status` until `conclusion: "success"`149150### Graduation (Fee Sharing)1511521. `GET /api/graduation/fee-options` → USDC/ORDER amounts + `receiverAddress`1532. Transfer tokens on **Ethereum, Arbitrum, or Base** to `receiverAddress`1543. `POST /api/graduation/verify-tx` with `{ txHash, chain, chainId, chainType: "EVM", brokerId, makerFee, takerFee, rwaMakerFee, rwaTakerFee, paymentType }` → creates broker ID155156**After broker ID created, finalize admin wallet:**157158**EVM Wallet:** 4. Register with Orderly Network API:159160- `GET https://api.orderly.org/v1/registration_nonce`161- Sign EIP-712 typed data: `{ brokerId, chainId, timestamp, registrationNonce }`162- `POST https://api.orderly.org/v1/register_account` with `{ message, signature, userAddress, chainType: "EVM" }`1631645. `POST /api/graduation/finalize-admin-wallet` (empty body)165166**Solana Wallet:** 4. Register with Orderly Network API:167168- `GET https://api.orderly.org/v1/registration_nonce`169- Sign message with Solana wallet: `{ brokerId, chainId: 900900900, timestamp, registrationNonce }`170- `POST https://api.orderly.org/v1/register_account` with `{ message, signature, userAddress, chainType: "SOL" }`1711725. `POST /api/graduation/finalize-admin-wallet` (empty body)173174**EVM Multisig/Gnosis Safe:** 4. In Safe Wallet → Transaction Builder → create batch:175176- **To:** Orderly Vault contract (chain-specific)177- **Method:** `delegateSigner`178- **Data:** `[keccak256(brokerId), userAddress]`1791805. Execute on Safe with required signer approvals1816. `POST /api/graduation/finalize-admin-wallet` with `{ multisigAddress, multisigChainId }`182183---184185## Orderly MCP186187This skill references the Orderly MCP server. If not installed, see **orderly-onboarding** skill for setup.188189**Tool:** `get_orderly_one_api_info`190191- `{ endpoint: "/api/dex" }` - Specific endpoint details192- `{ category: "graduation" }` - All endpoints in a category193- `{}` - Full API overview194195---196197## Common Issues198199| Issue | Solution |200| ----------------------- | ------------------------------------------------------------ |201| DEX stuck deploying | Check `/api/dex/{id}/workflow-runs/{runId}` for job failures |202| Domain not working | CNAME to `{org}.github.io`, wait for DNS propagation |203| Graduation verify fails | Confirm tx to `receiverAddress`, wait for confirmations |204| Logo upload fails | Check file size limits (250KB primary, 100KB secondary) |205| Invalid CSS | Validate `themeCSS` syntax before submitting |206207---208209## Related Skills210211- **orderly-onboarding** - Account setup212- **orderly-trading-orders** - Trading functionality