Portal
Get Started with LiquidMesh Portal
Your First API Call in 5 Minutes
The LiquidMesh Portal is a self-service developer console that lets you register, verify your identity, obtain API credentials, and start making DEX aggregation API calls — all without contacting our team.
This guide walks you through the complete onboarding flow, from account creation to your first successful Quote API request.
Prerequisites
Before you begin, ensure you have:
- A GitHub account — Used for OAuth authentication
- Binance Wallet App (mobile) — Required for identity verification (Keyless MPC wallet mode only)
- A development environment — Node.js 18+ recommended for code examples
Step 1 — Create Your Account
Navigate to https://portal.liquidmesh.io and click Sign in with GitHub.
- You will be redirected to GitHub's OAuth authorization page
- Authorize LiquidMesh to access your email address
- Upon successful authorization, your account is automatically created
Your account defaults to the Individual Tier with the following quotas:
| Resource | Limit |
|---|---|
| API Keys | 1 |
| Whitelist Addresses | 5 |
| Rate Limit (Quote / Swap / Order) | 1 RPS each |
Note: If your GitHub email is already associated with an existing LiquidMesh account, you will be logged in directly.
Step 2 — Accept Terms of Use
On your first login, the Portal will present the Terms of Use for your review and acceptance. You must accept the Terms before proceeding to any other Portal features.
Step 3 — Complete Identity Verification
LiquidMesh is currently in a whitelist beta phase. Individual users must complete identity verification to unlock API Key creation.
Requirements:
- Binance Wallet App installed on your mobile device
- Your wallet must be in Keyless (MPC) mode — seed-phrase wallets are not supported
Verification Flow:
- In the Portal, navigate to the verification section and click Verify with Binance Wallet
- A QR code will appear on screen (valid for 120 seconds)
- Open the Binance Wallet App on your mobile device
- Scan the QR code and confirm the verification request
- Upon success, your account status transitions to Verified
Important: The wallet address used during verification is automatically added to your whitelist as the first entry, consuming one address quota.
If verification fails or times out, you may retry immediately by generating a new QR code.
Step 4 — Create Your API Key
Once verified, you can create your API Key:
- Navigate to API Keys in the Portal sidebar
- Click Create API Key
- Wait for key generation to complete
- Your Public Key and Secret Key will be displayed
Critical: Your Secret Key is shown only once. Copy it immediately and store it securely in a secrets manager or vault. If lost, you must rotate the key to obtain a new pair.
After acknowledging receipt, the Secret Key is permanently hidden. Your API Key page will display:
| Field | Visibility |
|---|---|
| Public Key | Always visible, copyable |
| Secret Key | One-time display only |
| Status | Active / Disabled |
| Rate Limits | Per-endpoint RPS |
Step 5 — Configure Whitelist Addresses
Individual users must register wallet addresses before calling the Quote or Swap API with a userAddress parameter.
- Navigate to Whitelist in the Portal sidebar
- Click Add Address
- Enter a valid address and chain type
- The address undergoes automated security screening
- If the address passes, it is added to your whitelist
You may register up to 5 addresses total (including the address automatically added during verification).
Security Notice: If an address is flagged on a security blacklist, the addition will fail and your account will be immediately suspended. Contact [email protected] to appeal.
Step 6 — Make Your First API Call
With your API Key and a whitelisted address, you are ready to call the LiquidMesh API.
Authentication
All API requests require two headers:
| Header | Value |
|---|---|
LM-API-KEY | Your Public Key |
Authorization | Bearer <jwt> — Ed25519-signed JWT (see below) |
Signing Your Request
LiquidMesh uses Ed25519-signed JWTs for request authentication. Each request must include a short-lived token (recommended TTL ≤ 2 seconds) that proves request integrity.
Signing workflow:
- Capture
timestampMs = Date.now() - Concatenate:
preimage = ${timestampMs}${METHOD}${PATH}${BODY} - Compute
message = sha256(preimage)as lowercase hex - Build JWT payload:
{ tim: timestampMs, message, iss: API_KEY } - Sign with your Ed25519 private key using the
EdDSAalgorithm
For full setup instructions including key pair generation, see API Access and Usage.
Example: Get a Quote (Node.js)
import { SignJWT, importJWK } from 'jose';
import { createHash } from 'crypto';
const apiKey = process.env.API_KEY; // Your Public Key
const privateKeySeed = process.env.PRIVATE_KEY_BASE64_SEED;
const publicKeyBase64 = process.env.PUBLIC_KEY_BASE64;
// Import Ed25519 private key
const privateKey = await importJWK({
kty: 'OKP',
crv: 'Ed25519',
d: privateKeySeed,
x: publicKeyBase64
}, 'EdDSA');
// Build the request
const baseUrl = 'https://api.liquidmesh.io';
const path = '/v1/bsc/quote';
const query = new URLSearchParams({
amount: '1000000000000000000', // 1 BNB in wei
chainId: '56',
inputToken: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', // Native BNB
outputToken: '0x55d398326f99059fF775485246999027B3197955', // USDT on BSC
userAddress: '0xYourWhitelistedAddress'
}).toString();
const fullPath = `${path}?${query}`;
const timestamp = Date.now();
const preimage = `${timestamp}GET${fullPath}`;
const message = createHash('sha256').update(preimage).digest('hex');
// Sign JWT
const token = await new SignJWT({ tim: timestamp, message, iss: apiKey })
.setProtectedHeader({ typ: 'JWT', alg: 'EdDSA' })
.setIssuedAt()
.setExpirationTime('2s')
.sign(privateKey);
// Make the request
const response = await fetch(`${baseUrl}${fullPath}`, {
method: 'GET',
headers: {
'LM-API-KEY': apiKey,
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log('Quote response:', JSON.stringify(data, null, 2));Account Status Reference
| Status | Meaning | Can Create API Key? | API Keys Active? |
|---|---|---|---|
| Unverified | Registered, verification pending | No | — |
| Verified | Verification complete | Yes | Yes |
| Verification Expired | Periodic check detected expiry | No | Suspended |
| Suspended | Security violation detected | No | Disabled |
If your verification expires, return to the Portal and complete re-verification using the same Binance Wallet (same wallet address or same Binance Wallet User ID).
What's Next
- Supported Chains — View all supported chains and DEX integrations
- Smart Contracts — Router addresses and on-chain execution examples
- Quote API — Full Quote API reference
- Flash API — Single-call quote + swap execution
- Security Overview — Pre-trade risk checks and address screening
Need Help?
- General Support: [email protected]
- Enterprise Inquiries: Contact us to learn about custom rate limits, dedicated support, and team management features
Updated: May 2026
Updated about 7 hours ago