Get Is Whitelisted
Check if a wallet address is whitelisted to place orders on the platform. This is a public endpoint that returns whether a specific wallet address has trading permissions.
Endpoint
POST https://papi.synthetix.io/v1/infoRequest
Request Format
{
"params": {
"action": "getIsWhitelisted",
"walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0"
}
}Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
params.action | string | Yes | Must be "getIsWhitelisted" |
params.walletAddress | string | Yes | Ethereum wallet address to check (hex format, e.g., "0x742d35...") |
Example Request
cURL
curl -X POST https://papi.synthetix.io/v1/info \
-H "Content-Type: application/json" \
-d '{
"params": {
"action": "getIsWhitelisted",
"walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0"
}
}'JavaScript
const response = await fetch('https://papi.synthetix.io/v1/info', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
params: {
action: 'getIsWhitelisted',
walletAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0'
}
})
});
const data = await response.json();
console.log(data);Python
import requests
response = requests.post('https://papi.synthetix.io/v1/info',
json={
"params": {
"action": "getIsWhitelisted",
"walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0"
}
}
)
data = response.json()
print(data)Response
Success Response
{
"status": "ok",
"response": true,
"request_id": "5ccf215d37e3ae6d"
}Response Format
The response contains a boolean value:
true- Wallet is whitelisted and can place ordersfalse- Wallet is not whitelisted and cannot place orders
Response Object
| Field | Type | Description |
|---|---|---|
response | boolean | true if wallet is whitelisted, false otherwise |
Validation Rules
walletAddressmust be provided and not emptywalletAddressmust be a valid Ethereum hex address format (0x followed by 40 hexadecimal characters)- Address format is case-insensitive (normalized to lowercase internally)
- No authentication required
Error Handling
Common error scenarios:
| Error | Description |
|---|---|
| Invalid signature | EIP-712 signature validation failed |
| Invalid market symbol | Market symbol not recognized |
| Nonce already used | Nonce must be greater than previous value |
| Rate limit exceeded | Too many requests in time window |
| Request expired | expiresAfter timestamp has passed |
Endpoint-Specific Errors
| Error | Description |
|---|---|
| Invalid request body | Missing or empty walletAddress parameter |
| Invalid wallet address format | Address is not a valid Ethereum hex address |
| Whitelist arbitrator unavailable | Internal service error, retry request |
| Failed to obtain whitelist arbitration | Temporary service issue, retry request |
Error Response Examples
Invalid Wallet Address
{
"status": "error",
"error": {
"message": "Invalid wallet address format",
"code": "VALIDATION_ERROR"
},
"request_id": "5ccf215d37e3ae6d"
}Missing Parameter
{
"status": "error",
"error": {
"message": "Invalid request body",
"code": "INVALID_FORMAT"
},
"request_id": "5ccf215d37e3ae6d"
}Use Cases
Pre-Trading Validation
// Check if user is whitelisted before allowing trading UI access
async function checkTradingAccess(walletAddress) {
const response = await fetch('https://papi.synthetix.io/v1/info', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
params: {
action: 'getIsWhitelisted',
walletAddress: walletAddress
}
})
});
const data = await response.json();
if (data.status === 'ok' && data.response === true) {
console.log('User has trading access');
return true;
} else {
console.log('User needs to complete whitelist process');
return false;
}
}Bulk Whitelist Check
// Check multiple wallets at once
async function checkMultipleWallets(walletAddresses) {
const results = await Promise.all(
walletAddresses.map(async (address) => {
const response = await getIsWhitelisted(address);
return {
address,
isWhitelisted: response.response
};
})
);
return results;
}Access Control
// Gate trading features based on whitelist status
if (await isWhitelisted(userWallet)) {
// Show trading interface
enableTradingFeatures();
} else {
// Show whitelist application flow
showWhitelistApplication();
}Understanding Whitelisting
What is Whitelisting?
Whitelisting is an access control mechanism that determines which wallet addresses are permitted to place orders on the platform. This helps ensure:
- Regulatory compliance
- Risk management
- Platform security
- User verification requirements
Getting Whitelisted
If a wallet is not whitelisted, users typically need to:
- Complete KYC/verification requirements
- Meet platform criteria
- Apply through the official whitelist process
- Wait for approval
Contact platform support or check the main website for whitelist application procedures.
:::info Rate Limits The Synthetix API enforces rate limits to ensure fair usage and system stability:
- Order Placement: 100 orders per second per subaccount
- WebSocket Connections: 100 connections per IP address
- WebSocket Subscriptions: 1000 subscriptions per IP address
See Rate Limits for detailed information and best practices. :::
Related Endpoints
- Get Markets - Available trading pairs
- Place Orders - Place trading orders (requires whitelisted wallet)
- Get Sub Account IDs - Get sub-accounts for a wallet