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

# Pre-Approved Transactions

> Enable seamless in-game transactions without confirmation popups for immersive gameplay

Pre-approved transactions allow players to execute in-game blockchain transactions—such as crafting, trading, and transferring assets—without disruptive confirmation popups. This feature keeps players immersed in gameplay while maintaining the security benefits of blockchain ownership.

> [!WARNING]
>
> Pre-approved transactions are only available in **native clients** (Unity and Unreal games on mobile and desktop). Web transactions currently always require explicit confirmation popups.

## Prerequisites

Before using pre-approved transactions, ensure:

1. **User Authentication**: User must be [authenticated](https://docs.immutable.com/docs/products/passport/authentication.md) with Passport
2. **Wallet Initialization**: Call `ConnectEvm()` to initialize the zkEVM wallet provider
3. **Native Client**: Using Unity or Unreal SDK (not TypeScript/web)
4. **Contracts Linked**: Your contracts must be linked in Immutable Hub

## How It Works

Pre-approved transactions eliminate confirmation popups for in-game blockchain actions:

1. **One-time consent** - Users approve your game once for seamless transactions
2. **Automatic execution** - All future transactions to linked contracts execute instantly
3. **Gas-free** - Immutable sponsors transaction fees automatically

This keeps players immersed in gameplay while maintaining blockchain security.

## Supported Transactions

All transactions to **linked contracts** (ERC-20, ERC-721, ERC-1155) are automatically pre-approved:

* Transfers, mints, burns
* Custom contract interactions (crafting, trading, etc.)

**Not supported:** Native IMX transfers require user confirmation.

## Enabling Pre-Approved Transactions

### Step 1: Link Your Contracts in Hub

Your contracts must be linked in Immutable Hub to enable pre-approved transactions.

> [card] [Link Contracts via Operator Allowlist](https://docs.immutable.com/docs/products/asset-contracts/operator-allowlist.md)
>
> Complete guide to linking contracts, verification process, and API details

Linked contracts are automatically eligible for pre-approved transactions and gas sponsorship.

### Step 2: Create a Native Passport Client

Pre-approved transactions require a **Native** (not Web) Passport client.

> [card] [Create Passport Client](https://docs.immutable.com/docs/products/passport/clients.md)
>
> Step-by-step guide to creating a Passport client in Hub

Choose "Native" application type when creating your client. Pre-approved transactions will be available for all native clients in your organization.

### Step 3: Implementation

Pre-approval happens automatically when you use standard Passport transaction methods with linked contracts. See [Unity SDK](https://docs.immutable.com/docs/sdks/unity/overview.md) or [Unreal SDK](https://docs.immutable.com/docs/sdks/unreal/overview.md) for implementation details.

## Next Steps

> [card] [Operator Allowlist](https://docs.immutable.com/docs/products/asset-contracts/operator-allowlist.md)
>
> Link and verify your contracts in Immutable Hub

> [card] [Unity SDK](https://docs.immutable.com/docs/sdks/unity/overview.md)
>
> Get started with Unity SDK integration

> [card] [Unreal SDK](https://docs.immutable.com/docs/sdks/unreal/overview.md)
>
> Get started with Unreal SDK integration


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