jupiter-config.toml
Last updated
Last updated
The jupiter-config.toml
file manages the Jupiter Management Server settings.
Below is the default config file that will run Jupiter with the bare minimum.
# This program is essentially just a "manager" for the jupiter-swap-api process.
[manager]
jupiter_path="" # leave empty to auto install
startup_cmd=["bash", "./jupiter-startup-script.sh"] # optional, used to run a command before every start/restart.
auto_restart_minutes=10 # set to 0 or remove this line to disable auto restarts (restarts on failure will still happen)
# These environmental variables are specific to Jupiter.
# For a complete list of available variables, use the jupiter-swap-api --help command.
# Env's available as of Sep 23, 2024: (v6.0.27)
# - `MARKET_CACHE`: Jupiter europa URL, file path or remote file path, check production Jupiter cache for format https://cache.jup.ag/markets?v=4. Will default to the associated market mode default when not specified Note: the params field is required for some AMMs and is AMM type specific
# - `MARKET_MODE`: Switch between market modes, file and remote will not receive new markets from Europa [default: europa] [possible values: europa, remote, file]
# - `RPC_URL`: RPC URL for polling and fetching user accounts
# - `YELLOWSTONE_GRPC_ENDPOINT`: Yellowstone gRPC endpoint e.g. https://jupiter.rpcpool.com
# - `YELLOWSTONE_GRPC_X_TOKEN`: Yellowstone gRPC x token, the token after the hostname
# - `YELLOWSTONE_GRPC_ENABLE_PING`: Enable pinging the grpc server, useful for a load balanced Yellowstone GRPC endpoint https://github.com/rpcpool/yellowstone-grpc/issues/225
# - `SNAPSHOT_POLL_INTERVAL_MS`: Interval after which AMMs related account should be fetched, in yellowstone grpc mode, there will be a periodic poll to snapshot the confirmed state of AMM accounts Default to 200 ms for poll mode and 30000 ms for yellowstone grpc mode
# - `ENABLE_EXTERNAL_AMM_LOADING`: Enable loading external AMMs from keyedUiAccounts in swap related endpoints
# - `DISABLE_SWAP_CACHE_LOADING`: Disable loading caches necessary for swap related features to function properly, such as address lookup tables... This is useful for quote only APIs
# - `ALLOW_CIRCULAR_ARBITRAGE`: Allow arbitrage quote and swap, where input mint is equal to output mint
# - `JUPITER_EUROPA_URL`: Jupiter europa URL, for getting new markets at runtime
# - `SENTRY_DSN`: Sentry DSN to send error to
# - `DEX_PROGRAM_IDS`: List of DEX program ids to include, other program ids won't be loaded, you can get program ids from https://quote-api.jup.ag/v6/program-id-to-label
# - `FILTER_MARKETS_WITH_MINTS`: List of mints to filter markets to include, markets which do not have at least 2 mints from this set will be excluded
# - `HOST`: The host [default: 0.0.0.0]
# - `PORT`: A port number on which to start the application [default: 8080]
# - `METRICS_PORT`: Port for Prometheus metrics endpoint `/metrics`
# - `EXPOSE_QUOTE_AND_SIMULATE`: ?
# - `ENABLE_DEPRECATED_INDEXED_ROUTE_MAPS`: Enable computating and serving the /indexed-route-map Deprecated and not recommended to be enabled due to the high overhead [env: ENABLE_DEPRECATED_INDEXED_ROUTE_MAPS=]
# - `ENABLE_NEW_DEXES`: Enable new dexes that have been recently integrated
# - `ENABLE_DIAGNOSTIC`: Enable the /diagnostic endpoint to quote
# - `ENABLE_ADD_MARKET`: Enable the /add-market endpoint to hot load a new market
[env]
RUST_LOG="info"
RUST_BACKTRACE="full"
HOST="0.0.0.0"
PORT="8080"
RPC_URL="your.url"
#YELLOWSTONE_GRPC_ENDPOINT=""
#YELLOWSTONE_GRPC_X_TOKEN=""
#YELLOWSTONE_GRPC_ENABLE_PING="true"
ALLOW_CIRCULAR_ARBITRAGE="true"
MARKET_MODE="remote"
ENABLE_NEW_DEXES="false"
EXCLUDE_DEX_PROGRAM_IDS=[
"MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG", # Moonshot
"6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", # Pump.fun
]
FILTER_MARKETS_WITH_MINTS="" # This will be ovewritten by mint filters defined below.
# The dynamic mint filter fetches tradable tokens from Jupiter's Token API during startup.
# By default, tokens are filtered out if they have no daily volume, are freezable, or are mintable.
# Optionally, tokens can also be filtered by "required_tags". These tags are organized into groups,
# and a token only needs to match at least one group to be accepted.
# Find all of Jupiter's token tags here: https://station.jup.ag/docs/token-list/token-list-api
[dynamic_mint_filter] # removing in the future in favor of url mint filters
enabled=true
skip_freezable=true # freezable tokens are generally rugs and won't be tradable long
skip_mintable=false # a handful of stable coins are mintable, so defaulting to false
skip_no_volume=true # some tokens don't have any daily volume data on jupiter, optionally skip them (not skipping them will give you WAY more mints, which isn't always good)
required_tags=[
["verified", "pump"],
["birdeye-trending"],
]
# Static mint filters are predefined lists of mints that you want to include.
# Multiple filters can be defined to suit different needs.
[[static_mint_filter]]
enabled=true
mints=[
"So11111111111111111111111111111111111111112", # sol
"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", # usdt
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", # usdc
"4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R", # ray
"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn", # jitosol
"mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So", # msol
"7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj", # stsol
"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs", # weth
"3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh", # wbtc
"JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN", # jup
"HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3", # pyth
"jucy5XJ76pHVvtPZb5TKRcGQExkwit2P5s4vY8UzmpC", # jucysol
"bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1", # bsol
"jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v", # jupsol
"5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm", # inf
]
# Load mints from a url. Must be txt or json format.
# - txt should be a mint address per line with # used for comments
# - json should be a single json list [ mint1, mint2, mint3 ]
[[url_mint_filter]]
enabled=false
url="http://yourmints.com/mints.txt OR http://yourmints.com/mints.json"
# Load mints from a file. Must be txt or json format.
# - txt should be a mint address per line with # used for comments
# - json should be a single json list [ mint1, mint2, mint3 ]
[[file_mint_filter]]
enabled=false
path="/path/to/mints.json OR /path/to/mints.txt"