Skip to main content
TrueCurrent uses the Injective RFQ smart contract as the onchain enforcement point for maker quotes and signed taker intents. TrueCurrent services can route messages to the contract, but the contract verifies signatures, authz, expiries, price constraints, and settlement permissions before positions change. The contract is maintained by Injective. TrueCurrent integrates with that contract for RFQ execution and exposes product-specific SDK, routing, and execution flows around it.

Contract address

Mainnet EIP-712 chain ID is 1776 and Cosmos chain ID is injective-1. Testnet EIP-712 chain ID is 1439 and Cosmos chain ID is injective-888.

Entrypoints

AcceptSignedIntent validates the taker intent, pairs it with maker liquidity for the same taker plus rfq_id, and then runs the same settlement machinery as AcceptQuote.

AcceptQuote

Example execute shape:

Validation model

The contract validates each submitted quote against the taker’s request. Quote-level failures are skipped where the settlement path permits; settlement succeeds only if the remaining valid quotes satisfy the taker’s fill constraints. This means a multi-quote settlement can still fill if some quotes fail and enough valid quotes remain.

Settlement through authz

The RFQ contract settles by using pre-granted Injective authz permissions. On successful settlement, both parties’ derivative positions and margin transfers are updated atomically through the Injective exchange module. There is no partial state where only one side receives the position.

AcceptSignedIntent

Signed intents support TP/SL exits:
  1. Taker signs a SignedTakerIntent with EIP-712 v2.
  2. Taker submits it through TakerStream with v2 conditional-order signing fields.
  3. Executor monitors the trigger condition.
  4. Executor requests standard RFQ liquidity and pairs the intent with a quote bound to the same taker plus rfq_id.
  5. Contract verifies the taker signature, trigger, deadline, cancellation counters, maker quote, and authz before settlement.
The contract re-checks trigger state at execution time. If mark price moves back before the transaction lands, settlement can fail with trigger_not_satisfied; the executor should retry according to its trigger-order policy while the intent remains valid.

Queries

List approved makers:
Check one maker:
list_makers is paginated. A first-page query can miss a registered address; page through results or use the reference client’s ContractClient.is_maker_registered() helper.
Last modified on June 29, 2026