Skip to content

Settlement

Textile introduces no new cryptography. A firm quote settles through Uniswap's audited contracts, vendored verbatim at pinned commits so they stay exactly as audited.

ContractWhat it does
UniswapX LimitOrderReactor (v2.1.0)Validates and executes the signed quote. The same reactor design that runs Uniswap's intent-based trading.
Permit2Uniswap's signature-based token transfer system, in production across the EVM ecosystem since 2022. The maker's commitment is an EIP-712 message. Nothing moves without it, and each nonce can execute only once.
solmateThe utility library UniswapX builds on.

Deployed addresses are in the address book. Textile's own contracts are Solidity 0.8.30 on OpenZeppelin v5.

What happens when you broadcast

One transaction does all of it:

  1. The reactor verifies the maker signatures on every order in the quote.
  2. Permit2 pulls the maker's funds.
  3. The fee controller takes the protocol fee, in the sell token. Never in the native gas token.
  4. Your output lands in your wallet.

If any step fails the whole transaction reverts and nothing moves. There is no half-settled state.

The fee is set per chain by an on-chain SellFirstFeeController and is already inside the rate you were quoted. See Fees.

Non-custodial by construction

There is no pooled balance to redirect and no custodian in the middle. A maker funds quotes from their own wallet. Your tokens move only when your signed swap executes.

Textile never signs, never holds keys, and never broadcasts for you. Every write path in the API hands you an unsigned transaction or an EIP-712 payload to sign. Your wallet stays yours.

Limits worth knowing

A signed quote lives until its deadline. Expiry is the only thing that retires it, so a quote you decided not to take stays executable until then. Cancelling releases the maker's inventory but does not un-sign the order.

A bundled quote is several independently signed orders in one executeBatch. Each carries its own deadline, so the bundle stops being settleable in full when the earliest one passes.

Next