aggr
aggr copied to clipboard
Serum (Solana) exchange support
Hi @Tucsky,
I've added Serum exchange in this PR.
A couple of things need to be done to get this to work:
// This will generate a valid market.json to use with serum-vial
const axios = require('axios')
const solana_token_list_url = 'https://raw.githubusercontent.com/solana-labs/token-list/main/src/tokens/solana.tokenlist.json';
const { Connection, PublicKey, clusterApiUrl } = require('@solana/web3.js');
const { Market } = require('@project-serum/serum');
const fs = require('fs');
let connection = new Connection(clusterApiUrl('mainnet-beta'));
const programAddress = new PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"); // Serum v3 market program id
const serum_vial_market_template = {
"name": "",
"baseMintAddress": "",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"version": 3,
"address": "",
"programId": "",
"baseCurrency": "",
"quoteCurrency": "USDC",
"tickSize": "",
"minOrderSize": "",
"deprecated": ""
}
if (!fs.existsSync('./markets.json')) {
fs.writeFileSync('./markets.json', JSON.stringify([], null, 4))
}
function getSerumVialMarkets() {
return new Promise(function(resolve, reject) {
axios.get(solana_token_list_url).then(response => response.data).then(token_list => {
token_list.tokens.filter(t => t.chainId === 101 && t.extensions !== undefined && t.extensions.serumV3Usdc !== undefined).forEach((token, index, tokens) => {
setTimeout(() => {
connection.getAccountInfo(new PublicKey(token.extensions.serumV3Usdc)).then((accountInfo) => {
if (accountInfo.owner.toBase58() !== programAddress.toBase58()) {
console.error(new Error('invalid serumV3Usdc'), token)
} else {
Market.load(connection, new PublicKey(token.extensions.serumV3Usdc), {}, programAddress).then(market => {
const tokenMarket = JSON.parse(JSON.stringify(serum_vial_market_template))
tokenMarket.name = token.symbol + "/USDC"
tokenMarket.baseMintAddress = token.address;
tokenMarket.address = token.extensions.serumV3Usdc;
tokenMarket.programId = programAddress.toBase58()
tokenMarket.baseCurrency = token.symbol
tokenMarket.minOrderSize = market.minOrderSize;
tokenMarket.tickSize = market.tickSize;
tokenMarket.deprecated = false;
const markets = JSON.parse(fs.readFileSync('./markets.json'))
if (markets.filter(m => m.baseMintAddress === token.address).length === 0) {
markets.push(tokenMarket)
} else {
let existingMarket = markets[markets.indexOf(markets.filter(m => m.address === token.extensions.serumV3Usdc)[0])];
existingMarket = { ...existingMarket, ...tokenMarket }
markets[markets.indexOf(markets.filter(m => m.address === token.extensions.serumV3Usdc)[0])] = existingMarket;
}
fs.writeFileSync('./markets.json', JSON.stringify(markets, null, 4))
console.log('loaded market - ' + tokenMarket.name)
if (index === tokens.length - 1) {
resolve(JSON.parse(fs.readFileSync('./markets.json')))
}
}).catch(error => {
console.error(error);
console.error(index + " - failed to load", token)
if (index === tokens.length - 1) {
resolve(JSON.parse(fs.readFileSync('./markets.json')))
}
})
}
})
}, 1100 * index)
})
})
})
}
npm install -g serum-vial
serum-vial --markets-json market.json
serum-vial by default uses the serumproject solana rpc node https://github.com/tardis-dev/serum-vial
if you want to use your own solana rpc node https://docs.solana.com/running-validator
add the endpoint of serum-vial instance to the cors.aggr.trade
Thank you for the work, why not query the github directly from the serum.ts ?
export default class extends Exchange {
id = 'SERUM'
protected endpoints = {
PRODUCTS: 'https://raw.githubusercontent.com/solana-labs/token-list/main/src/tokens/solana.tokenlist.json'
}
getUrl() {
return 'wss://api.serum-vial.dev/v1/ws'
}
formatProducts(data) {
return data.tokens
.filter(t => t.chainId === 101 && t.extensions !== undefined && t.extensions.serumV3Usdc !== undefined)
.map(token => token.symbol + '/USDC')
.filter((v, i, a) => a.indexOf(v) === i)
}
...
Just need to ignore proxy configuration when target is raw.githubusercontent.com I only tested on my local but I was able to get it to work :)
Thank you for the work, why not query the github directly from the serum.ts ?
export default class extends Exchange { id = 'SERUM' protected endpoints = { PRODUCTS: 'https://raw.githubusercontent.com/solana-labs/token-list/main/src/tokens/solana.tokenlist.json' } getUrl() { return 'wss://api.serum-vial.dev/v1/ws' } formatProducts(data) { return data.tokens .filter(t => t.chainId === 101 && t.extensions !== undefined && t.extensions.serumV3Usdc !== undefined) .map(token => token.symbol + '/USDC') .filter((v, i, a) => a.indexOf(v) === i) } ...
Just need to ignore proxy configuration when target is raw.githubusercontent.com I only tested on my local but I was able to get it to work :)
So there are a lot of coins excluded from the market.json if you use just the serum-vial provided dev url The serum-vial needs all the markets from the raw.githubusercontent.com
https://api.serum-vial.dev/v1/markets - 82 entries my markets.json script - 156 entries
https://api.serum-vial.dev/v1/markets - 82 entries my markets.json script - 156 entries
This is what I get from the github url... 157 pairs
["ECHO/USDC","KITTY/USDC","OTR/USDC","TBK/USDC","BIP/USDC","INU/USDC","WIPE/USDC","SNJ/USDC","ALM/USDC","SWOLE/USDC","BOKU/USDC","OOGI/USDC","SPKL/USDC","TRTLS/USDC","SLX/USDC","SLB/USDC","SOLA/USDC","SOL/USDC","IVN/USDC","BTC/USDC","ETH/USDC","YFI/USDC","LINK/USDC","SUSHI/USDC","ALEPH/USDC","SXP/USDC","HGET/USDC","CREAM/USDC","UBXT/USDC","HNT/USDC","FRONT/USDC","AKRO/USDC","HXRO/USDC","UNI/USDC","SRM/USDC","FTT/USDC","MSRM/USDC","TOMO/USDC","LUA/USDC","MATH/USDC","KEEP/USDC","FIDA/USDC","KIN/USDC","MAPS/USDC","OXY/USDC","USDT/USDC","RAY/USDC","EOSBEAR/USDC","MIDBULL/USDC","METARARITY/USDC","XCOPE/USDC","COPE/USDC","INO/USDC","ROPE/USDC","MEDIA/USDC","STEP/USDC","SAMO/USDC","ATLAS/USDC","POLIS/USDC","DOI/USDC","HOSA/USDC","TCW/USDC","LOST/USDC","LOVE/USDC","MRDR/USDC","PFP/USDC","AVE/USDC","ASF/USDC","TLS/USDC","SPT/USDC","PBA/USDC","UWB/USDC","OMPH/USDC","SATM/USDC","SDOGE/USDC","HOLD/USDC","FROG/USDC","CRT/USDC","SKEM/USDC","SOLAPE/USDC","WOOF/USDC","MER/USDC","LOTTO/USDC","BOLE/USDC","MIT/USDC","AUSS/USDC","TULIP/USDC","KEKW/USDC","DWT/USDC","DOGA/USDC","CHEEMS/USDC","CATO/USDC","NINJA/USDC","LLAMA/USDC","BOP/USDC","DXL/USDC","PIPANA/USDC","KLB/USDC","ORCA/USDC","renBTC/USDC","renBCH/USDC","renDOGE/USDC","renLUNA/USDC","renZEC/USDC","SAIL/USDC","RIN/USDC","POTATO/USDC","STVA/USDC","LIQ/USDC","CRP/USDC","SLRS/USDC","SODA/USDC","SOLBERRY/USDC","CRYN/USDC","SBR/USDC","mSOL/USDC","BET/USDC","PORT/USDC","MNGO/USDC","UPS/USDC","gSAIL/USDC","SUNNY/USDC","CYS/USDC","UPFI/USDC","HOTTO/USDC","CRY/USDC","ASH/USDC","BST/USDC","AGTE/USDC","HIMA/USDC","GOATS/USDC","HP/USDC","FRIES/USDC","CUBE/USDC","SMBT/USDC","FLOOF/USDC","DOGETH/USDC","OOAH/USDC","PUSSY/USDC","JESUS/USDC","CATOMIAOU/USDC","BITCH/USDC","SHIBETOSHI/USDC","KissMe/USDC","DoggyStyle/USDC","LEONIDAS/USDC","WAGMI/USDC","SLT/USDC","CRAT/USDC","GAMESHIB/USDC","SAFE/USDC","DEEZ/USDC","NinjaDoge/USDC","SHIBMOON/USDC","GALAXY/USDC","UNISOL/USDC","POLE/USDC"]
look good
Right, but the serum-vial link I posted in my previous comment is where the data of trades comes from. If serum vial isn't listening for all 156 markets then your list from raw GitHub will have pairs which won't be able to subscribe to serum vial for data
That script I wrote maps the raw GitHub data to the correct market format for serum vial
https://api.serum-vial.dev/v1/markets looks like the site is down here is the list from the site I had loaded in memory
{
"name": "ALEPH/USDC",
"baseCurrency": "ALEPH",
"quoteCurrency": "USDC",
"version": 3,
"address": "GcoKtAmTy5QyuijXSmJKBtFdt99e6Buza18Js7j9AJ6e",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "CsZ5LZkDS7h9TDKjrbL7VAwQZ9nsRu8vJLhRYfmGaN8K",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "BTC/USDC",
"baseCurrency": "BTC",
"quoteCurrency": "USDC",
"version": 3,
"address": "A8YFbxQYFVqKZaoYJLLUVcQiWP7G2MeEgW5wsAQgMvFw",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.1,
"minOrderSize": 0.0001,
"deprecated": false
},
{
"name": "ETH/USDC",
"baseCurrency": "ETH",
"quoteCurrency": "USDC",
"version": 3,
"address": "4tSvZvnbyzHXLMTiFonMyxZoHmFqau1XArcRCVHLZ5gX",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.01,
"minOrderSize": 0.001,
"deprecated": false
},
{
"name": "SRM/USDC",
"baseCurrency": "SRM",
"quoteCurrency": "USDC",
"version": 3,
"address": "ByRys5tuUWDgL73G8JBAEfkdFf8JWBzPBDHsBVQ5vbQA",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "SUSHI/USDC",
"baseCurrency": "SUSHI",
"quoteCurrency": "USDC",
"version": 3,
"address": "A1Q9iJDVVS8Wsswr9ajeZugmj64bQVCYLZQLra2TMBMo",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "AR1Mtgh7zAtxuxGd2XPovXPVjcSdY3i4rQYisNadjfKy",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "SXP/USDC",
"baseCurrency": "SXP",
"quoteCurrency": "USDC",
"version": 3,
"address": "4LUro5jaPaTurXK737QAxgJywdhABnFAMQkXX4ZyqqaZ",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "SF3oTvfWzEP3DTwGSvUXRrGTvr75pdZNnBLAH9bzMuX",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "MSRM/USDC",
"baseCurrency": "MSRM",
"quoteCurrency": "USDC",
"version": 3,
"address": "4VKLSYdvrQ5ngQrt1d2VS8o4ewvb2MMUZLiejbnGPV33",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MSRMcoVyrFxnSgo5uXwone5SKcGhT1KEJMFEkMEWf9L",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.000001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "FTT/USDC",
"baseCurrency": "FTT",
"quoteCurrency": "USDC",
"version": 3,
"address": "2Pbh1CvRVku1TgewMfycemghf6sU9EyuFDcNXqvRmSxc",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "AGFEad2et2ZJif9jaGpdMixQqvW5i81aBdvKe7PHNfz3",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "YFI/USDC",
"baseCurrency": "YFI",
"quoteCurrency": "USDC",
"version": 3,
"address": "7qcCo8jqepnjjvB5swP4Afsr3keVBs6gNpBTNubd1Kr2",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "3JSf5tPeuscJGtaCp5giEiDhv51gQ4v3zWg8DGgyLfAB",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 1,
"minOrderSize": 0.0001,
"deprecated": false
},
{
"name": "LINK/USDC",
"baseCurrency": "LINK",
"quoteCurrency": "USDC",
"version": 3,
"address": "3hwH1txjJVS8qv588tWrjHfRxdqNjBykM1kMcit484up",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "CWE8jPTUYhdCTZYWPTe1o5DFqfdjzWKc9WKz6rSjQUdG",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "HGET/USDC",
"baseCurrency": "HGET",
"quoteCurrency": "USDC",
"version": 3,
"address": "88vztw7RTN6yJQchVvxrs6oXUDryvpv9iJaFa1EEmg87",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "BtZQfWqDGbk9Wf2rXEiWyQBdBY1etnUUn6zEphvVS7yN",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "CREAM/USDC",
"baseCurrency": "CREAM",
"quoteCurrency": "USDC",
"version": 3,
"address": "7nZP6feE94eAz9jmfakNJWPwEKaeezuKKC5D1vrnqyo2",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "5Fu5UUgbjpUvdBveb3a1JTNirL8rXtiYeSMWvKjtUNQv",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.01,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "UBXT/USDC",
"baseCurrency": "UBXT",
"quoteCurrency": "USDC",
"version": 3,
"address": "2wr3Ab29KNwGhtzr5HaPCyfU1qGJzTUAN4amCLZWaD1H",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "873KLxCbz7s9Kc4ZzgYRtNmhfkQrhfyWGZJBmyCbC3ei",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.000001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "HNT/USDC",
"baseCurrency": "HNT",
"quoteCurrency": "USDC",
"version": 3,
"address": "CnUV42ZykoKUnMDdyefv5kP6nDSJf7jFd7WXAecC6LYr",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "HqB7uswoVg4suaQiDP3wjxob1G5WdZ144zhdStwMCq7e",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "FRONT/USDC",
"baseCurrency": "FRONT",
"quoteCurrency": "USDC",
"version": 3,
"address": "9Zx1CvxSVdroKMMWf2z8RwrnrLiQZ9VkQ7Ex3syQqdSH",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "9S4t2NEAiJVMvPdRYKVrfJpBafPBLtvbvyS3DecojQHw",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "AKRO/USDC",
"baseCurrency": "AKRO",
"quoteCurrency": "USDC",
"version": 3,
"address": "5CZXTTgVZKSzgSA3AFMN5a2f3hmwmmJ6hU8BHTEJ3PX8",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "6WNVCuxCGJzNjmMZoKyhZJwvJ5tYpsLyAtagzYASqBoF",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.000001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "HXRO/USDC",
"baseCurrency": "HXRO",
"quoteCurrency": "USDC",
"version": 3,
"address": "6Pn1cSiRos3qhBf54uBP9ZQg8x3JTardm1dL3n4p29tA",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "DJafV9qemGp7mLMEn5wrfqaFwxsbLgUsGVS16zKRk9kc",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "UNI/USDC",
"baseCurrency": "UNI",
"quoteCurrency": "USDC",
"version": 3,
"address": "6JYHjaQBx6AtKSSsizDMwozAEDEZ5KBsSUzH7kRjGJon",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "DEhAasscXF4kEGxFgJ3bq4PpVGp5wyUxMRvn6TzGVHaw",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "MATH/USDC",
"baseCurrency": "MATH",
"quoteCurrency": "USDC",
"version": 3,
"address": "J7cPYBrXVy8Qeki2crZkZavcojf2sMRyQU7nx438Mf8t",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GeDS162t9yGJuLEHPWXXGrb1zwkzinCgRwnT8vHYjKza",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.00001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "TOMO/USDC",
"baseCurrency": "TOMO",
"quoteCurrency": "USDC",
"version": 3,
"address": "8BdpjpSD5n3nk8DQLqPUyTZvVqFu6kcff5bzUX5dqDpy",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GXMvfY2jpQctDqZ9RoU3oWPhufKiCcFEfchvYumtX7jd",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "LUA/USDC",
"baseCurrency": "LUA",
"quoteCurrency": "USDC",
"version": 3,
"address": "4xyWjQ74Eifq17vbue5Ut9xfFNfuVB116tZLEpiZuAn8",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "EqWCKXfs3x47uVosDpTRgFniThL9Y8iCztJaapxbEaVX",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.00001,
"minOrderSize": 10,
"deprecated": false
},
{
"name": "SRM/SOL",
"baseCurrency": "SRM",
"quoteCurrency": "SOL",
"version": 3,
"address": "jyei9Fpj2GtHLDDGgcuhDacxYLLiSyxU4TY7KxB2xai",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt",
"quoteMintAddress": "So11111111111111111111111111111111111111112",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "SOL/USDC",
"baseCurrency": "SOL",
"quoteCurrency": "USDC",
"version": 3,
"address": "9wFFyRfZBsuAha4YcuxcXLKwMxJR43S7fPfQLusDBzvT",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "So11111111111111111111111111111111111111112",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "FIDA/USDC",
"baseCurrency": "FIDA",
"quoteCurrency": "USDC",
"version": 3,
"address": "E14BKBhDWD4EuTkWj1ooZezesGxMW8LPCps4W5PuzZJo",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "KIN/USDC",
"baseCurrency": "KIN",
"quoteCurrency": "USDC",
"version": 3,
"address": "Bn6NPyr6UzrFAwC4WmvPvDr2Vm8XSUnFykM2aQroedgn",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 1e-7,
"minOrderSize": 1000,
"deprecated": false
},
{
"name": "MAPS/USDC",
"baseCurrency": "MAPS",
"quoteCurrency": "USDC",
"version": 3,
"address": "3A8XQRWXC7BjLpgLDDBhQJLT5yPCzS16cGYRKHkKxvYo",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MAPS41MDahZ9QdKXhVa4dWB9RuyfV4XqhyAZ8XcYepb",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "KEEP/USDC",
"baseCurrency": "KEEP",
"quoteCurrency": "USDC",
"version": 3,
"address": "3rgacody9SvM88QR83GHaNdEEx4Fe2V2ed5GJp2oeKDr",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GUohe4DJUA5FKPWo3joiPgsB7yzer7LpDmt1Vhzy3Zht",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "MSRM/USDT",
"baseCurrency": "MSRM",
"quoteCurrency": "USDT",
"version": 3,
"address": "5nLJ22h1DUfeCfwbFxPYK8zbfbri7nA9bXoDcR8AcJjs",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MSRMcoVyrFxnSgo5uXwone5SKcGhT1KEJMFEkMEWf9L",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.000001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "ETH/USDT",
"baseCurrency": "ETH",
"quoteCurrency": "USDT",
"version": 3,
"address": "7dLVkUfBVfCGkFhSXDCq1ukM9usathSgS716t643iFGF",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.01,
"minOrderSize": 0.001,
"deprecated": false
},
{
"name": "SXP/USDT",
"baseCurrency": "SXP",
"quoteCurrency": "USDT",
"version": 3,
"address": "8afKwzHR3wJE7W7Y5hvQkngXh6iTepSZuutRMMy96MjR",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "SF3oTvfWzEP3DTwGSvUXRrGTvr75pdZNnBLAH9bzMuX",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "CEL/USDT",
"baseCurrency": "CEL",
"quoteCurrency": "USDT",
"version": 3,
"address": "cgani53cMZgYfRMgSrNekJTMaLmccRfspsfTbXWRg7u",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "DgHK9mfhMtUwwv54GChRrU54T2Em5cuszq2uMuen1ZVE",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "ALEPH/USDT",
"baseCurrency": "ALEPH",
"quoteCurrency": "USDT",
"version": 3,
"address": "Gyp1UGRgbrb6z8t7fpssxEKQgEmcJ4pVnWW3ds2p6ZPY",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "CsZ5LZkDS7h9TDKjrbL7VAwQZ9nsRu8vJLhRYfmGaN8K",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "CREAM/USDT",
"baseCurrency": "CREAM",
"quoteCurrency": "USDT",
"version": 3,
"address": "4ztJEvQyryoYagj2uieep3dyPwG2pyEwb2dKXTwmXe82",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "5Fu5UUgbjpUvdBveb3a1JTNirL8rXtiYeSMWvKjtUNQv",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.01,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "KEEP/USDT",
"baseCurrency": "KEEP",
"quoteCurrency": "USDT",
"version": 3,
"address": "HEGnaVL5i48ubPBqWAhodnZo8VsSLzEM3Gfc451DnFj9",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GUohe4DJUA5FKPWo3joiPgsB7yzer7LpDmt1Vhzy3Zht",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "HNT/USDT",
"baseCurrency": "HNT",
"quoteCurrency": "USDT",
"version": 3,
"address": "8FpuMGLtMZ7Wt9ZvyTGuTVwTwwzLYfS5NZWcHxbP1Wuh",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "HqB7uswoVg4suaQiDP3wjxob1G5WdZ144zhdStwMCq7e",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "MAPS/USDT",
"baseCurrency": "MAPS",
"quoteCurrency": "USDT",
"version": 3,
"address": "5GAPymgnnWieGcRrcghZdA3aanefqa4cZx1ZSE8UTyMV",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MAPS41MDahZ9QdKXhVa4dWB9RuyfV4XqhyAZ8XcYepb",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "TRYB/USDT",
"baseCurrency": "TRYB",
"quoteCurrency": "USDT",
"version": 3,
"address": "AADohBGxvf7bvixs2HKC3dG2RuU3xpZDwaTzYFJThM8U",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "6ry4WBDvAwAnrYJVv6MCog4J8zx6S3cPgSqnTsDZ73AR",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.00001,
"minOrderSize": 10,
"deprecated": false
},
{
"name": "FIDA/USDT",
"baseCurrency": "FIDA",
"quoteCurrency": "USDT",
"version": 3,
"address": "EbV7pPpEvheLizuYX3gUCvWM8iySbSRAhu2mQ5Vz2Mxf",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "RSR/USDT",
"baseCurrency": "RSR",
"quoteCurrency": "USDT",
"version": 3,
"address": "FcPet5fz9NLdbXwVM6kw2WTHzRAD7mT78UjwTpawd7hJ",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "7ncCLJpP3MNww17LW8bRvx8odQQnubNtfNZBL5BgAEHW",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.00001,
"minOrderSize": 10,
"deprecated": false
},
{
"name": "SRM/USDT",
"baseCurrency": "SRM",
"quoteCurrency": "USDT",
"version": 3,
"address": "AtNnsY1AyRERWJ8xCskfz38YdvruWVJQUVXgScC1iPb",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "RAY/USDT",
"baseCurrency": "RAY",
"quoteCurrency": "USDT",
"version": 3,
"address": "teE55QrL4a4QSfydR9dnHF97jgCfptpuigbb53Lo95g",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "BTC/USDT",
"baseCurrency": "BTC",
"quoteCurrency": "USDT",
"version": 3,
"address": "C1EuT9VokAKLiW7i2ASnZUvxDoKuKkCpDDeNxAptuNe4",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.1,
"minOrderSize": 0.0001,
"deprecated": false
},
{
"name": "FTT/USDT",
"baseCurrency": "FTT",
"quoteCurrency": "USDT",
"version": 3,
"address": "Hr3wzG8mZXNHV7TuL6YqtgfVUesCqMxGYCEyP3otywZE",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "AGFEad2et2ZJif9jaGpdMixQqvW5i81aBdvKe7PHNfz3",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "AKRO/USDT",
"baseCurrency": "AKRO",
"quoteCurrency": "USDT",
"version": 3,
"address": "HLvRdctRB48F9yLnu9E24LUTRt89D48Z35yi1HcxayDf",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "6WNVCuxCGJzNjmMZoKyhZJwvJ5tYpsLyAtagzYASqBoF",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.000001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "UNI/USDT",
"baseCurrency": "UNI",
"quoteCurrency": "USDT",
"version": 3,
"address": "2SSnWNrc83otLpfRo792P6P3PESZpdr8cu2r8zCE6bMD",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "DEhAasscXF4kEGxFgJ3bq4PpVGp5wyUxMRvn6TzGVHaw",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "UBXT/USDT",
"baseCurrency": "UBXT",
"quoteCurrency": "USDT",
"version": 3,
"address": "F1T7b6pnR8Pge3qmfNUfW6ZipRDiGpMww6TKTrRU4NiL",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "873KLxCbz7s9Kc4ZzgYRtNmhfkQrhfyWGZJBmyCbC3ei",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.000001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "SOL/USDT",
"baseCurrency": "SOL",
"quoteCurrency": "USDT",
"version": 3,
"address": "HWHvQhFmJB3NUcu1aihKmrKegfVxBEHzwVX6yZCKEsi1",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "So11111111111111111111111111111111111111112",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "LUA/USDT",
"baseCurrency": "LUA",
"quoteCurrency": "USDT",
"version": 3,
"address": "35tV8UsHH8FnSAi3YFRrgCu4K9tb883wKnAXpnihot5r",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "EqWCKXfs3x47uVosDpTRgFniThL9Y8iCztJaapxbEaVX",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.00001,
"minOrderSize": 10,
"deprecated": false
},
{
"name": "SUSHI/USDT",
"baseCurrency": "SUSHI",
"quoteCurrency": "USDT",
"version": 3,
"address": "6DgQRTpJTnAYBSShngAVZZDq7j9ogRN1GfSQ3cq9tubW",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "AR1Mtgh7zAtxuxGd2XPovXPVjcSdY3i4rQYisNadjfKy",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "MATH/USDT",
"baseCurrency": "MATH",
"quoteCurrency": "USDT",
"version": 3,
"address": "2WghiBkDL2yRhHdvm8CpprrkmfguuQGJTCDfPSudKBAZ",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GeDS162t9yGJuLEHPWXXGrb1zwkzinCgRwnT8vHYjKza",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.00001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "HGET/USDT",
"baseCurrency": "HGET",
"quoteCurrency": "USDT",
"version": 3,
"address": "ErQXxiNfJgd4fqQ58PuEw5xY35TZG84tHT6FXf5s4UxY",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "BtZQfWqDGbk9Wf2rXEiWyQBdBY1etnUUn6zEphvVS7yN",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "FRONT/USDT",
"baseCurrency": "FRONT",
"quoteCurrency": "USDT",
"version": 3,
"address": "CGC4UgWwqA9PET6Tfx6o6dLv94EK2coVkPtxgNHuBtxj",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "9S4t2NEAiJVMvPdRYKVrfJpBafPBLtvbvyS3DecojQHw",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "TOMO/USDT",
"baseCurrency": "TOMO",
"quoteCurrency": "USDT",
"version": 3,
"address": "GnKPri4thaGipzTbp8hhSGSrHgG4F8MFiZVrbRn16iG2",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GXMvfY2jpQctDqZ9RoU3oWPhufKiCcFEfchvYumtX7jd",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "AAVE/USDT",
"baseCurrency": "AAVE",
"quoteCurrency": "USDT",
"version": 3,
"address": "6bxuB5N3bt3qW8UnPNLgMMzDq5sEH8pFmYJYGgzvE11V",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "dK83wTVypEpa1pqiBbHY3MNuUnT3ADUZM4wk9VZXZEc",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.01,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "HXRO/USDT",
"baseCurrency": "HXRO",
"quoteCurrency": "USDT",
"version": 3,
"address": "4absuMsgemvdjfkgdLQq1zKEjw3dHBoCWkzKoctndyqd",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "DJafV9qemGp7mLMEn5wrfqaFwxsbLgUsGVS16zKRk9kc",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "KIN/USDT",
"baseCurrency": "KIN",
"quoteCurrency": "USDT",
"version": 3,
"address": "4nCFQr8sahhhL4XJ7kngGFBmpkmyf3xLzemuMhn6mWTm",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 1e-7,
"minOrderSize": 1000,
"deprecated": false
},
{
"name": "YFI/USDT",
"baseCurrency": "YFI",
"quoteCurrency": "USDT",
"version": 3,
"address": "3Xg9Q4VtZhD4bVYJbTfgGWFV5zjE3U7ztSHa938zizte",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "3JSf5tPeuscJGtaCp5giEiDhv51gQ4v3zWg8DGgyLfAB",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 1,
"minOrderSize": 0.0001,
"deprecated": false
},
{
"name": "LINK/USDT",
"baseCurrency": "LINK",
"quoteCurrency": "USDT",
"version": 3,
"address": "3yEZ9ZpXSQapmKjLAGKZEzUNA1rcupJtsDp5mPBWmGZR",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "CWE8jPTUYhdCTZYWPTe1o5DFqfdjzWKc9WKz6rSjQUdG",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "SWAG/USDT",
"baseCurrency": "SWAG",
"quoteCurrency": "USDT",
"version": 3,
"address": "J2XSt77XWim5HwtUM8RUwQvmRXNZsbMKpp5GTKpHafvf",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "9F9fNTT6qwjsu4X4yWYKZpsbw5qT7o6yR2i57JF2jagy",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.01,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "USDT/USDC",
"baseCurrency": "USDT",
"quoteCurrency": "USDC",
"version": 3,
"address": "77quYg4MGneUdjgXCunt9GgM1usmrxKY31twEy3WHwcS",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "OXY/USDT",
"baseCurrency": "OXY",
"quoteCurrency": "USDT",
"version": 3,
"address": "GKLev6UHeX1KSDCyo2bzyG6wqhByEzDBkmYTxEdmYJgB",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "z3dn17yLaGMKffVogeFHQ9zWVcXgqgf3PQnDsNs2g6M",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "OXY/WUSDT",
"baseCurrency": "OXY",
"quoteCurrency": "WUSDT",
"version": 3,
"address": "HdBhZrnrxpje39ggXnTb6WuTWVvj5YKcSHwYGQCRsVj",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "z3dn17yLaGMKffVogeFHQ9zWVcXgqgf3PQnDsNs2g6M",
"quoteMintAddress": "BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "OXY/USDC",
"baseCurrency": "OXY",
"quoteCurrency": "USDC",
"version": 3,
"address": "GZ3WBFsqntmERPwumFEYgrX2B7J7G11MzNZAy7Hje27X",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "z3dn17yLaGMKffVogeFHQ9zWVcXgqgf3PQnDsNs2g6M",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "xCOPE/USDC",
"baseCurrency": "xCOPE",
"quoteCurrency": "USDC",
"version": 3,
"address": "7MpMwArporUHEGW7quUpkPZp5L5cHPs9eKUfKCdaPHq2",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "3K6rftdAaQYMPunrtNRHgnK2UAtjm2JwyT2oCiTDouYE",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.01,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "COPE/USDC",
"baseCurrency": "COPE",
"quoteCurrency": "USDC",
"version": 3,
"address": "6fc7v3PmjZG9Lk2XTot6BywGyYLkBQuzuFKd4FpCsPxk",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "8HGyAAB1yoM1ttS7pXjHMa3dukTFGQggnFFH3hJZgzQh",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.001,
"deprecated": false
},
{
"name": "MER/USDT",
"baseCurrency": "MER",
"quoteCurrency": "USDT",
"version": 3,
"address": "6HwcY27nbeb933UkEcxqJejtjWLfNQFWkGCjAVNes6g7",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MERt85fc5boKw3BW1eYdxonEuJNvXbiMbs6hvheau5K",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.00001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "MER/USDC",
"baseCurrency": "MER",
"quoteCurrency": "USDC",
"version": 3,
"address": "G4LcexdCzzJUKZfqyVDQFzpkjhB1JoCNL8Kooxi9nJz5",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MERt85fc5boKw3BW1eYdxonEuJNvXbiMbs6hvheau5K",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "SNY/USDC",
"baseCurrency": "SNY",
"quoteCurrency": "USDC",
"version": 3,
"address": "DPfj2jYwPaezkCmUNm5SSYfkrkz8WFqwGLcxDDUsN3gA",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "4dmKkXNHdgYsXqBHCuMikNQWwVomZURhYvkkX5c4pQ7y",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "SLRS/USDC",
"baseCurrency": "SLRS",
"quoteCurrency": "USDC",
"version": 3,
"address": "2Gx3UfV831BAh8uQv1FKSPKS9yajfeeD8GJ4ZNb2o2YP",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "SLRSSpSLUTP7okbCUBYStWCo1vUgyt775faPqz8HUMr",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "ETHV/USDT",
"baseCurrency": "ETHV",
"quoteCurrency": "USDT",
"version": 3,
"address": "HrgkuJryyKRserkoz7LBFYkASzhXHWp9XA6fRYCA6PHb",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "EL3yFeyHezeNugdKgNWmtSXGgRyCLhczcndm8HR8NCK2",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.01,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "IETHV/USDT",
"baseCurrency": "IETHV",
"quoteCurrency": "USDT",
"version": 3,
"address": "5aoLj1bySDhhWjo7cLfT3pF2gqNGd63uEJ9HMSfASESL",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "HZzCWPqGNmDoyL5Q2SxTVTMWgv2LsCaogvzkXa5Lhyi",
"quoteMintAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tickSize": 0.01,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "SBR/USDC",
"baseCurrency": "SBR",
"quoteCurrency": "USDC",
"version": 3,
"address": "HXBi8YBwbh4TXF6PjVw81m8Z3Cc4WBofvauj5SBFdgUs",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "renBTC/USDC",
"baseCurrency": "renBTC",
"quoteCurrency": "USDC",
"version": 3,
"address": "74Ciu5yRzhe8TFTHvQuEVbFZJrbnCMRoohBK33NNiPtv",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.01,
"minOrderSize": 0.0001,
"deprecated": false
},
{
"name": "renDOGE/USDC",
"baseCurrency": "renDOGE",
"quoteCurrency": "USDC",
"version": 3,
"address": "5FpKCWYXgHWZ9CdDMHjwxAfqxJLdw2PRXuAmtECkzADk",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "ArUkYE2XDKzqy77PRRGjo4wREWwqk6RXTfM9NeqzPvjU",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.00001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "DXL/USDC",
"baseCurrency": "DXL",
"quoteCurrency": "USDC",
"version": 3,
"address": "DYfigimKWc5VhavR4moPBibx9sMcWYVSjVdWvPztBPTa",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "GsNzxJfFn6zQdJGeYsupJWzUAm57Ba7335mfhWvFiE9Z",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.01,
"deprecated": false
},
{
"name": "MNGO/USDC",
"baseCurrency": "MNGO",
"quoteCurrency": "USDC",
"version": 3,
"address": "3d4rzwpy9iGdCZvgxcu7B1YocYffVLsQXPXkBZKt2zLc",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "CYS/USDC",
"baseCurrency": "CYS",
"quoteCurrency": "USDC",
"version": 3,
"address": "6V6y6QFi17QZC9qNRpVp7SaPiHpCTp2skbRQkUyZZXPW",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "BRLsMczKuaR5w9vSubF4j8HwEGGprVAyyVgS4EX7DKEg",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.001,
"deprecated": false
},
{
"name": "POLIS/USDC",
"baseCurrency": "POLIS",
"quoteCurrency": "USDC",
"version": 3,
"address": "HxFLKUAmAMLz1jtT3hbvCMELwH5H9tpM2QugP8sKyfhW",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "poLisWXnNRwC6oBu1vHiuKQzFjGL4XDSu4g9qjz9qVk",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.0001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "ATLAS/USDC",
"baseCurrency": "ATLAS",
"quoteCurrency": "USDC",
"version": 3,
"address": "Di66GTLsV64JgCCYGVcY21RZ173BHkjJVgPyezNN7P1K",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.00001,
"minOrderSize": 0.1,
"deprecated": false
},
{
"name": "LIKE/USDC",
"baseCurrency": "LIKE",
"quoteCurrency": "USDC",
"version": 3,
"address": "3WptgZZu34aiDrLMUiPntTYZGNZ72yT1yxHYxSdbTArX",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "3bRTivrVsitbmCTGtqwp7hxXPsybkjn4XLNtPsHqa3zR",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.00001,
"minOrderSize": 1,
"deprecated": false
},
{
"name": "MSOL/USDC",
"baseCurrency": "MSOL",
"quoteCurrency": "USDC",
"version": 3,
"address": "6oGsL2puUgySccKzn9XA9afqF217LfxP5ocq4B3LWsjy",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
"quoteMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tickSize": 0.001,
"minOrderSize": 0.001,
"deprecated": false
},
{
"name": "MSOL/SOL",
"baseCurrency": "MSOL",
"quoteCurrency": "SOL",
"version": 3,
"address": "5cLrMai1DsLRYc1Nio9qMTicsWtvzjzZfJPXyAoF4t1Z",
"programId": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"baseMintAddress": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
"quoteMintAddress": "So11111111111111111111111111111111111111112",
"tickSize": 1e-7,
"minOrderSize": 0.01,
"deprecated": false
}
]```
Found this RPC: https://free.rpcpool.com serum-vial --endpoint https://free.rpcpool.com