> For the complete documentation index, see [llms.txt](https://argon-4.gitbook.io/argon-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://argon-4.gitbook.io/argon-docs/using-enclave/igra.md).

# Igra, Kaspa's EVM Layer

How Enclave uses Igra, Kaspa's EVM Layer: one address per account, Kaspa-carried transactions, automatic gas, and what stays on Kaspa.

Igra is a based rollup on Kaspa: an EVM-compatible EVM Layer whose transactions are posted to, and ordered by, the Kaspa network itself. Enclave treats Igra as part of your Kaspa account, not as a separate wallet.

## One account, one Igra address

Each Enclave account has exactly one Igra address, derived from the same recovery phrase along a dedicated branch (`…/2/0`). It never changes, it is shown under [Deposit → Igra](/argon-docs/using-enclave/deposit.md#receive-on-igra), and it is the address Igra dApps see when you connect. Restoring your phrase restores your Igra address with it.

Your Kaspa addresses and your Igra address are different keys and different formats (`kaspa:…` and `0x…`). Enclave never presents one where the other is expected. The Igra `0x…` is **not** a Base address: do not withdraw exchange USDC to it on Base. When cash-in is live, Peer or Halliday credit **USDC on Igra** to this same address without asking you to copy a Base contract. An advanced **Receive USDC from Base** control, if shown, sits behind a warning — not next to Copy.

## Everything is carried by Kaspa

Enclave never sends a transaction to an Igra node. Every Igra action, whether a transfer, a swap, a stake, or a dApp call, follows one path:

1. SureSign checks the destination and method, then prepares a review with a conservative carrier-fee estimate. The **KAS** side shows carrier costs, any Enclave fee, change, and the package spending limit. The **iKAS** side shows what moves on Igra, the gas budget, and the contract operation.
2. You approve that package. SureSign then signs the EVM transaction with the account's Igra key.
3. SureSign wraps the signed EVM transaction inside a **Kaspa transaction** on the Igra lane, checks the approved spending limit, and signs the carrier. Its real transaction hashes appear at this stage.
4. The carrier is submitted to Kaspa. Igra's sequencers read it and execute the inner transaction.

The Igra endpoint Enclave talks to is **read-only**: balances, nonces, receipts, contract reads. No write ever goes there.

### Paying for an Igra action

Igra actions pay their value and gas in **iKAS** from your Igra address. For wallet-authored actions, SureSign funds them in a fixed order and shows every step on the review:

1. **iKAS you hold.** If it covers the action and its gas, nothing else happens.
2. **WiKAS you hold.** WiKAS is wrapped iKAS. SureSign adds an **Unwrap** step (WiKAS → iKAS, 1:1, no fee) for exactly what iKAS cannot cover.
3. **KAS on Kaspa.** Only when Igra value is exhausted, SureSign adds a **Bridge** step at the front of the package: Igra's own permissionless entry, sized to what the whole package is still short plus a 0.01 iKAS buffer, never below Igra's 10 KAS minimum. It credits your Igra address with iKAS. That step pays Enclave a flat 1 KAS for bundling the bridge, named on the review; see [Fees](/argon-docs/using-enclave/fees.md).

Each step is simulated and checked against current funding before signing. Changed requirements stop execution for a fresh review. Simulation cannot guarantee that a contract will succeed when the chain later executes it. You approve the whole package once. Going the other way, iKAS → KAS, is never automatic: that is [Bridge out](/argon-docs/using-enclave/exchange.md#kat-bridge).

### Two beats, honestly reported

A carried transaction has two outcomes to wait for. The progress track shows **Broadcast → Accepted → Confirmed** for the Kaspa carrier, then a fourth beat, **Igra**, while Igra executes. Because Igra reads Kaspa, the fourth beat can only be *Confirmed*, *Declined* (Kaspa carried it, Igra rejected the inner transaction, nothing moved), or *Unconfirmed* (Igra has not reported yet). Enclave never reports an Igra result it has not read from an Igra receipt.

### Recovering an interrupted transaction

Open **Activity → Saved Igra transactions** to check a signed transaction or resend it after an interruption. Resend submits the exact saved transaction; it does not create another transaction. The wallet saves recovery material encrypted before releasing signed bytes and never resends automatically on unlock. A previously signed transaction can prevent a new action until its Igra nonce has advanced. Keep your current wallet data: an older backup does not contain transactions signed after that backup.

## Bridging KAS and iKAS

The automatic bridge only funds the package in front of you. To move value on its own terms, use [Exchange](/argon-docs/using-enclave/exchange.md#kat-bridge): Kat Bridge moves **KAS ↔ iKAS** (10 KAS minimum in, 10 iKAS minimum out) and **KRC-20 ↔ ERC-20**. It is a custodial bridge operated by KAT and is named as such on every review.

### What Igra dApps see

When an Igra dApp connects through the injected provider or WalletConnect, the connect card asks which balance it should see. **KAS across Kaspa and Igra** shows iKAS plus spendable Kaspa KAS before fees, counting Kaspa funds only at the 10 KAS bridge minimum. SureSign reviews any bridge funding and checks your automatic bridge limit before signing. **iKAS only** uses the native balance already on Igra. Each site remembers your choice, which you can change under Connected sites. WiKAS remains a separate token balance: unwrap it in Exchange first if you need it for a site's native iKAS payment. Enclave preserves the site's exact transaction and does not add an EVM unwrap or approval ahead of it. A dApp using its own RPC sees actual iKAS. Kaspa dApps never receive this combined balance.

### Automatic bridge limit

Settings → Privacy → **Automatic bridge to Igra** caps how much KAS one action may bridge on its own: a KAS amount (default **1000 KAS**) or a share of your spendable KAS on Kaspa; 0 turns it off. Above the limit SureSign refuses before anything is signed and the refusal links straight to the setting. The manual Kat Bridge in Exchange is never limited, and the limit does not change what connected sites see. Bridged KAS lives on Igra as iKAS until you bridge it back (KAT Exit, 10 iKAS minimum); when the bridge minimum exceeds what an action is short, the review says so and the rest stays as iKAS for your next Igra action.

KRC token and NFT deposits are reviewed as an asset package before their bridge authorization is signed. The final inscription lock address is determined afterward. A deposit must use one custody lot; if your tokens span multiple Kaspa addresses, consolidate first or review separate deposits with distinct nonces. Interrupted deposits resume from the original encrypted journal.

## What Igra adds to Enclave

| Feature                                                      | Where                                                                                                                  |
| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| iKAS and ERC-20 balances, ERC-721 collectibles               | [Holdings](/argon-docs/using-enclave/holdings.md), [Collectibles](/argon-docs/using-enclave/collectibles-and-names.md) |
| Send iKAS, tokens, and collectibles to `0x…` or `name.igra`  | [Transfer](/argon-docs/using-enclave/transfer.md#send-on-igra)                                                         |
| Swaps on ZealousSwap, bridging with Kat Bridge               | [Exchange](/argon-docs/using-enclave/exchange.md)                                                                      |
| Lynx, Kaskad, Zealous Infinity Pools, NACHO KAT staking      | [Earn](/argon-docs/using-enclave/earn.md)                                                                              |
| INS names (`.igra`): register, renew, set primary, list, buy | [Collectibles and names](/argon-docs/using-enclave/collectibles-and-names.md#igra-names-ins)                           |
| Igra dApps through the injected provider or WalletConnect    | [Connected sites](/argon-docs/using-enclave/connected-sites.md)                                                        |

## What Enclave deliberately does not do on Igra

* It is not a general EVM wallet. It speaks to Igra (chain 38833 on mainnet, 38836 on the Galleon testnet when Kaspa is on testnet-10) and no other chain. Requests to add a chain are refused.
* Wallet-authored calls use supported contracts and methods. A structurally valid dApp call with unknown effects can be reviewed with an explicit warning and approved for that transaction only. Malformed calls, contract deployment, unsupported transaction types and network mismatches remain refused. Connection permission alone never approves a transaction.
* A token appearing in Holdings does not establish that its contract or transfer behavior is supported by the wallet's own actions. Imported tokens and unknown collections may remain view-only there. An explicitly reviewed dApp request is a separate path and never establishes that SureSign understands an unknown contract.
* It never signs `eth_sign`, typed-data signatures, or a raw transaction for a site to broadcast itself.
* Unlimited token approvals are refused. Each permitted approval names the token, exact quantity or token ID, and supported spender in the review.

## Networks

When Enclave is on Kaspa **mainnet**, Igra means Igra mainnet. When Enclave is on **testnet-10**, Igra means the Galleon testnet. The two never mix, and the explorer links follow: [explorer.igralabs.com](https://explorer.igralabs.com) for mainnet, [explorer.galleon-testnet.igralabs.com](https://explorer.galleon-testnet.igralabs.com) for Galleon.

The default Igra endpoint is Igra Labs'; on mainnet you can switch to KAT's under **Settings → Network → Igra endpoint**.
