> ## 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.
</Warning>

## Prerequisites

Before using pre-approved transactions, ensure:

1. **User Authentication**: User must be [authenticated](/docs/products/passport/authentication) 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 title="Link Contracts via Operator Allowlist" icon="list-check" href="/docs/products/asset-contracts/operator-allowlist">
  Complete guide to linking contracts, verification process, and API details
</Card>

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 title="Create Passport Client" icon="mobile" href="/docs/products/hub/passport-clients">
  Step-by-step guide to creating a Passport client in Hub
</Card>

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](/docs/sdks/unity/overview) or [Unreal SDK](/docs/sdks/unreal/overview) for implementation details.

## Next Steps

<CardGroup cols={2}>
  <Card title="Operator Allowlist" icon="list-check" href="/docs/products/asset-contracts/operator-allowlist">
    Link and verify your contracts in Immutable Hub
  </Card>

  <Card title="Unity SDK" icon="unity" href="/docs/sdks/unity/overview">
    Get started with Unity SDK integration
  </Card>

  <Card title="Unreal SDK" icon="gamepad" href="/docs/sdks/unreal/overview">
    Get started with Unreal SDK integration
  </Card>
</CardGroup>
