> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tiprotocol.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Signing and gas

> In Ti, every transaction that moves funds starts with the user's wallet signature and executes only on the terms in that signature.

Every transaction that moves funds in Ti starts with the user's wallet signature and executes only on the terms in that signature. This chapter explains what goes into that signature. It covers which wallets can connect, how token approvals are handled, and how Gasless mode works when the user holds no token to pay the network fee.

***

## 1. Wallet connection and sign-in

Ti connects wallets through WalletConnect, so most browser extension wallets and mobile wallets can connect. A connected wallet is enough to swap. Signing in, one step further, lets the user take part in Missions & Rewards and raises the Ti AI question limit.

Sign-in uses Sign-In with Ethereum (EIP-4361).<sup>[24](https://docs.tiprotocol.io/appendix/references.md#ref-24)</sup> The Ti server issues a one-time nonce, the user signs a message in their wallet stating “the owner of this address is signing in to Ti”, and the server verifies the signature and opens a session. This signature is not a transaction, so it costs no gas and moves no funds. There is no separate password or email account to create, and Ti never sees the user's private key.

***

## 2. Token approvals

Before a DEX or router can take an ERC-20 token and swap it, the user must first approve it: “this contract may spend this much of my token.” There are three ways to approve. Ti checks which methods each token supports and picks the one that finishes in the fewest steps.

| Method | How it works | When it is used |
| - | - | - |
| Standard approval (approve) | Send one approval transaction, then send the swap transaction | All ERC-20 tokens |
| ERC-2612 permit | Approve with a signature instead of a transaction, and include that signature in the swap transaction<sup>[35](https://docs.tiprotocol.io/appendix/references.md#ref-35)</sup> | When the token supports permit (e.g. USDC) |
| Permit2 | Approve Uniswap's Permit2 contract once; after that, each transaction is approved by a signature that sets the amount and deadline<sup>[36](https://docs.tiprotocol.io/appendix/references.md#ref-36)</sup> | Tokens that do not support permit (e.g. USDT on Ethereum) |

Both permit and Permit2 have a further advantage: they can narrow an approval to a single transaction. Because each signature sets its own amount and deadline, they reduce the risk that an unlimited approval granted long ago is abused later.

***

## 3. Gasless mode

Every blockchain transaction needs a network fee paid in the chain's native token. A user who holds only USDC on Arbitrum One and no ETH cannot send a transaction, even to swap that USDC. Gasless mode solves this problem. A relayer submits the transaction and pays the network fee on the user's behalf, and the user settles that cost in the stablecoin being swapped or in Ti points.

User**One EIP-712 signature**<ul><li>Target and calldata hash</li><li>Output token and minimum received</li><li>Recipient</li><li>Deadline</li><li>Fee token</li><li>Fee</li><li>Cap</li></ul>Locked by the signature · any change fails verificationRelayer**Submits the transaction and pays gas**Cannot change the signed termsExecutor on chain<ol><li>Verifies signature</li><li>Executes swap</li><li>Settles fee</li></ol>![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/usdt.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f80699292d59b1ca38dd1a2130b2338d)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/usdc.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=fd231eae4271354a1f32693acb22477b)USDT · USDC*/*Ti pointsAuthorizationERC-2612 permitPermit2EIP-7702 delegationFalls back to a normal transactionView figure full size

**Figure 21.** In a gasless swap the user signs once and the relayer pays the gas, but the relayer cannot change what was signed.

Instead of a transaction, the user creates a single EIP-712 signature.<sup>[26](https://docs.tiprotocol.io/appendix/references.md#ref-26)</sup> The signature contains the target to call and the hash of the calldata, the token to receive and the minimum received, the recipient address, the deadline, the fee token and the fee, and a fee cap. The relayer submits a transaction carrying this signature, and the executor contract on chain executes the swap and settles the fee only after it verifies the signature. The relayer cannot change any term in the signature. If the calldata changes, its hash changes and signature verification fails. If the fee exceeds the cap, nothing executes.

Token approvals are also handled by signature. If the token supports ERC-2612 permit, Ti uses permit; otherwise it uses Permit2. Where the wallet and chain support it, Ti uses EIP-7702 delegation. EIP-7702 is a standard introduced with Ethereum's Pectra upgrade in May 2025. It lets an ordinary wallet address borrow the execution logic of a designated contract with a single signature.<sup>[27](https://docs.tiprotocol.io/appendix/references.md#ref-27)</sup> Ti's execution infrastructure also includes an ERC-4337 account abstraction paymaster.<sup>[28](https://docs.tiprotocol.io/appendix/references.md#ref-28)</sup>

Gasless mode works under the following conditions.

* It is off by default. The user turns it on in the swap settings.
* It is available only for same-chain swaps that meet its conditions. Transactions that wrap or unwrap the native token, and cross-chain transactions, pay the network fee directly.
* The fee token is chosen from USDT and USDC. The user can change their priority or turn one of them off. The fee can also be paid in Ti points.
* The estimated fee is shown before signing. If fee estimation has not finished or has failed, the continue button stays locked.
* If the conditions are not met, Ti shows the notice “This transaction does not meet the Gasless conditions. Please continue with a regular transaction.” and falls back to a regular transaction.

***

## 4. What to check before signing

However accurate the Ti screen is, what actually executes is what the wallet shows. Right before the user signs, Ti prompts them to check the following.

1. Check that the chain the wallet is connected to is the chain of the transaction. If it is not, Ti asks the wallet to switch chains.
2. Check that the contract addresses of the token sent and the token received are the official addresses.
3. Check the amount sent and the minimum received.
4. Check the network fee, the bridge fee, and the Gasless fee and its cap.
5. For an approval signature, check the amount and deadline being approved. Avoid unlimited approvals beyond what is needed.
6. Check whether it is a transaction signature or a message signature. A sign-in signature moves no funds, but transaction signatures and permit signatures involve funds.

If the Ti screen and the wallet show different details, the user should not sign. A blockchain transaction cannot be reversed once it has executed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.