List tradable tokens and your terms
const url = 'https://api.hyperstream.dev/v2/params';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.hyperstream.dev/v2/params \ --header 'X-API-Key: <X-API-Key>'Every token you can trade, each with its two fixed fees, and your commercial terms. Any listed token trades against any other, so pairs are not enumerated.
Not rate limited and not paused during maintenance, so it doubles as a readiness check for your key. The minimum trade
size is not here: /v2/quote returns it when a size is too small.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Tokens and terms.
The tokens you can trade, each with its fixed fees, and your commercial terms.
object
Every token you can trade. Any listed token can be traded against any other. A token with no configured fee is omitted.
object
Spoke chain id.
Address in the chain’s native display form: EVM 0x hex, TRON base58.
Decimals of this token on this chain. They vary per chain.
Fixed fee when this token is the source, in its own base units. Charged even if the order never fills.
Fixed fee when this token is the destination, in its own base units.
Your terms. The bps and the commission wallet come from the on-chain integrator registry the hub reads at publish; orderTtl is an API setting.
object
Khalani’s fee, in basis points of the amount left after the flat fee.
Your commission, in basis points of the same amount.
Hub address your commission is paid to on settlement. The zero address if none is set.
Seconds from /v2/build until the order’s deadline. The clock starts at build, not at deposit. An API setting each build signs into its order.
Example
{ "tokens": [ { "chainId": 42161, "token": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "symbol": "USDC", "decimals": 6, "depositFee": "150000", "withdrawFee": "150000" }, { "chainId": 8453, "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "symbol": "USDC", "decimals": 6, "depositFee": "150000", "withdrawFee": "150000" } ], "terms": { "operatorBps": 3, "commissionBps": 2, "commissionWallet": "0x1c0ce7f3a2d4ab69a33e4a8f5b9a3c4d2e1f0a9b", "orderTtl": 3600 }}The X-API-Key header is missing.
An error raised by the route itself.
object
object
Smallest deposit that would quote, in source base units.
Largest deposit that would quote, in source base units.
Largest output that would quote, in destination base units.
The deployment setting this direction needs.
Example
{ "error": "X-API-Key required"}The key is unknown or past its rotation window, or your integrator registry row is disabled or invalid. A 403 is always about your account: do not retry.
An error raised by the route itself.
object
object
Smallest deposit that would quote, in source base units.
Largest deposit that would quote, in source base units.
Largest output that would quote, in destination base units.
The deployment setting this direction needs.
Example
{ "error": "Unknown or inactive integrator"}Unhandled failure. Retry once, then escalate with the x-request-id response header.
Maintenance, a malformed JSON body, or an unhandled failure. Carries message, not error.
object
MaintenanceException (503), BadRequestException (malformed JSON) or InternalErrorException (500).
Example
{ "message": "Internal Error", "name": "InternalErrorException"}Your terms could not be read from the hub. Never about your key or account. Retryable.
An error raised by the route itself.
object
object
Smallest deposit that would quote, in source base units.
Largest deposit that would quote, in source base units.
Largest output that would quote, in destination base units.
The deployment setting this direction needs.
Example
{ "error": "Integrator terms are temporarily unreadable"}