skills/injective-rfq-integrations/SKILL.md
Integrate Injective RFQ taker flows into browser apps and operational quote monitors. Use this skill when building, reviewing, or debugging RFQ gateway autosign settlement, Web3Gateway AuthZ setup, manual TakerStream quote collection, RFQ open/close flows, conditional TP/SL intents, quote uptime probes, market-readiness checks, or mainnet RFQ frontend integrations. Covers mainnet parameters, canonical decimals, quote windows, signer slots, market discovery, quote-hit diagnostics, and production RFQ gotchas.
npx skillsauth add injectivelabs/agent-skills injective-rfq-integrationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when adding Injective RFQ to a frontend or when building an RFQ quote monitoring tool. Keep the main flow simple: prefer the RFQ gateway for trade settlement, and use manual TakerStream only when you need raw quote diagnostics.
The canonical mainnet RFQ contract address is:
export const RFQ_CONTRACT_ADDRESS = 'inj12stwq95jet57edcu4a65r48r46s9rzrs938n8k'
export const RFQ_WS_URL = 'wss://rfq.ws.injective.network'
export const RFQ_GATEWAY_URL = 'https://rfq.gateway.grpc-web.injective.network/'
export const RFQ_CHAIN_ID = 'injective-1'
export const RFQ_EVM_CHAIN_ID = 1776
export const RFQ_COLLECT_QUOTES_MS = 500
RFQ_CHAIN_ID is the Cosmos chain ID used in RFQ quote payloads and Cosmos
sign docs. Do not set it to 1776. RFQ_EVM_CHAIN_ID is the numeric Injective
EVM chain ID used in EIP-712 domains, Web3Gateway signatures, and
quote.evmChainId.
Use the gateway autosign path for production browser trading:
IndexerGrpcRfqGwApi.fetchPrepareAutoSign.TxRaw exactly as received.Use manual TakerStream only for diagnostics, special routing, or quote uptime checks. It exposes ACK/quote timing but does not return a prepared settlement transaction.
bodyBytes and
authInfoBytes exactly.0. Decode AuthInfo.signerInfos,
normalize pubkeys, and fill signatures in decoded signer order.AuthInfo.signerInfos[].publicKey.value
can be 0a21...raw-key while SDK public keys are raw 33-byte compressed
keys."110.0" and "110" are different values.minPriceTickSize is often
quote-decimal scaled.margin: "0".500 ms.For open requests, derive quantity from stake, leverage, and mark price:
quantity = floor((margin * leverage) / mark, minQuantityTickSize)mark + slippage, rounded up to price tickmark - slippage, rounded down to price tickFor closes:
"0"Worst price is a guardrail, not an expected execution price. Seeing better
quotes than mark +/- slippage is normal.
Use Web3Gateway fee payer for wallet-signed setup transactions so users do not need an INJ balance just to authorize RFQ.
Grant two groups:
/injective.wasmx.v1.MsgExecuteContractCompat/injective.exchange.v2.MsgPrivilegedExecuteContract,
/injective.exchange.v2.MsgBatchUpdateOrders, and
/cosmos.bank.v1beta1.MsgSendIf setup asks users to pay gas, the integration is bypassing Web3Gateway.
For tools that only test whether market makers are quoting, read references/quote-probe-uptime.md. A probe can send RFQ requests and collect quotes without accepting them on-chain. The taker key must sign RFQ requests, but the wallet does not need funds unless a quote is accepted.
Measure bid/short and ask/long separately:
RFQs sent: RFQ requests opened for that sideRequests quoted: RFQs that received at least one MM quoteMM quotes: total raw maker quote responsesBest bid / best ask: best sorted price for the sideMM quotes can exceed RFQs sent because one RFQ can receive multiple maker
responses. For example, 100 RFQs, 69/100 requests quoted, and 140 MM quotes means 69 requests got at least one response and those requests received
140 total maker quotes.
TP/SL is a signed RFQ close intent, not an orderbook reduce-only limit:
mark_price_gte, direction short, margin "0"mark_price_lte, direction short, margin "0"mark_price_lte, direction long, margin "0"mark_price_gte, direction long, margin "0"Fetch epoch and lane_version from the RFQ contract before signing. After
editing or canceling a lane, re-query before signing fresh intents.
development
Detect breaking changes in Injective core between two tagged releases. For use in developer documentation and release notes.
tools
Enables management of Linear issues, teams, projects, comments, or configuration via the `linear` CLI
tools
Mass create, derive, and manage Injective wallets. Generate wallets from mnemonics (BIP-44 HD derivation), create random wallets, convert between ETH/INJ addresses, and batch fund wallets with INJ or USDT. Supports bulk wallet generation and batch funding.
tools
Look up metadata for any Injective token or denom. Resolves native tokens (INJ), Peggy ERC-20 bridged tokens (USDT, USDC, WETH), IBC assets (ATOM, OSMO), TokenFactory tokens, and EVM ERC-20s to their human-readable symbol, decimals, and type. Also supports sending tokens between addresses and depositing/withdrawing from trading subaccounts. Requires the Injective MCP server to be connected.