Skip to main content
TrueCurrent uses an approved maker whitelist. Only registered maker addresses receive MakerStream RFQ broadcasts and only registered makers can settle quotes.

Why there is a whitelist

Makers take the opposite side of user trades, so every active maker must be able to quote reliably and settle safely. The whitelist keeps the maker set limited to systems that have demonstrated:
  • Stable MakerStream connectivity
  • Correct MakerChallenge auth handling
  • EIP-712 v2 quote signing
  • Sufficient USDC margin
  • Reasonable pricing and expiry controls
  • Settlement reconciliation
  • A tested operational runbook

What to send TrueCurrent

Before registration, provide:
ItemNotes
Maker inj1... addressThe address your quoting system will use on MakerStream and quote signatures
MarketsSymbols or market IDs you plan to support
Subaccount nonceOmit or use 0 unless your system intentionally isolates maker collateral in another nonce
Testnet statusWhether you have completed the E2E runbook
Contact pathWhere TrueCurrent can reach your operator during incidents
Quoting summaryShort description of price feeds, risk limits, and inventory controls
Use one maker wallet per operational maker identity. If you rotate keys, the new address must be registered.

Verification flow

After TrueCurrent registers you, confirm the address appears in list_makers.
curl -s \
  "https://testnet.sentry.lcd.injective.network/cosmwasm/wasm/v1/contract/inj1qw7jk82hjvf79tnjykux6zacuh9gl0z0wl3ruk/smart/$(echo -n '{\"list_makers\":{}}' | base64)" \
  | python3 -m json.tool
The raw list_makers query can be paginated. If your address sorts beyond the first page, a one-line query can look like a false negative. Use the contract helper below when available.
import asyncio
import os

os.environ["RFQ_ENV"] = "testnet"

from rfq_test.config import get_environment_config
from rfq_test.clients.contract import ContractClient

async def main():
    env = get_environment_config()
    client = ContractClient(env.contract, env.chain)
    registered = await client.is_maker_registered("<YOUR_MM_ADDR>")
    print("whitelisted" if registered else "not whitelisted")

asyncio.run(main())
When you find your maker record, also record its subaccount_nonce. That nonce must match the maker_subaccount_nonce you sign and the subaccount you fund.

Readiness checklist

Before asking to move beyond testnet, confirm:
  • list_makers returns your maker address.
  • Maker and taker authz grants are present.
  • Maker subaccount has enough USDC for quoted margin.
  • MakerStream receives request events after answering MakerChallenge.
  • The maker returns quotes with sign_mode: "v2" and the correct evm_chain_id.
  • Decimal strings are canonical and tick-quantized.
  • The E2E settlement script lands a transaction.
  • You can stop quoting quickly if price feeds, balances, or hedging fail.
See Runbook for the command sequence.
Last modified on May 27, 2026