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

# Differences from Ethereum

Immutable Chain is built from a geth fork and maintains high compatibility with Ethereum. However, there are some notable differences developers should be aware of.

> [card] [Source Code](https://github.com/immutable/immutable-geth)
>
> View the Immutable geth fork on GitHub

## Solidity Compatibility

Immutable Chain's most recent hard fork aligns with Ethereum's Cancun fork. We officially support Solidity versions **up to and including 0.8.28**.

```solidity theme={null}
// Recommended pragma
pragma solidity >=0.8.19 <0.8.29;
```

> [!WARNING]
>
> If you use `^0.8.19`, you may pull a compiler version not compatible with Immutable Chain. Always pin your version.

## EVM Differences

### EIP-4844 Blobs

Blob transactions are **not supported**. Any such transactions will be rejected by the RPC.

| Op Code | Behavior |
| - | - |
| `BLOBHASH` | Returns empty `bytes32` (0x0) |
| `BLOBBASEFEE` | Returns 0x1 |

Block headers `blobGasUsed` and `excessBlobGas` are always 0x0.

### PREVRANDAO Op Code

The `PREVRANDAO` op code (EIP-4399) always returns `uint256(0)` on Immutable Chain.

> [!WARNING]
>
> Do not rely on `PREVRANDAO` for randomness. Use an oracle like [Supra VRF](https://supra.com/vrf-product/) instead.

## RPC Endpoint Differences

Some RPC methods are disabled for security and performance:

| Category | Methods | Reason |
| - | - | - |
| **Debug** | `debug_*` | Unbounded memory usage, DDoS risk |
| **Engine** | `engine_*` | Not needed for external use |
| **Txpool** | `txpool_*` | Prevents front-running |
| **Admin** | `admin_*` | Internal operations only |

> [!NOTE]
>
> For debug methods, use [QuickNode](https://www.quicknode.com/chains/imx) which provides dedicated endpoints. See [Ecosystem Partners](https://docs.immutable.com/docs/products/immutable-chain/ecosystem-partners.md).

## Gas Pricing

Immutable Chain uses EIP-1559 gas pricing. See the full gas configuration:

| Property | Value |
| - | - |
| **Gas Model** | EIP-1559 |
| **Min Priority Fee** | 10 gwei |
| **Block Gas Limit** | 30,000,000 |
| **Gas Sponsorship** | Available for Passport users |

```typescript theme={null}
// Always set minimum priority fee
const tx = await contract.method({
  maxPriorityFeePerGas: 10_000_000_000n, // 10 gwei
  maxFeePerGas: 15_000_000_000n,
});
```

See [Gas Sponsorship](https://docs.immutable.com/docs/products/passport/gas-sponsorship.md) for sponsored transactions.

## Resources

> [card] [Chain Configuration](https://docs.immutable.com/docs/products/immutable-chain/overview.md)
>
> Network details and RPC endpoints

> [card] [Bridging](https://docs.immutable.com/docs/products/immutable-chain/bridging.md)
>
> Core protocol addresses

## Next Steps

> [card] [Deploy Contracts](https://docs.immutable.com/docs/products/asset-contracts/deploy-contracts-with-hardhat.md)
>
> Deploy contracts with Hardhat

> [card] [Chain Overview](https://docs.immutable.com/docs/products/immutable-chain/overview.md)
>
> Network configuration details

> [card] [Gas Sponsorship](https://docs.immutable.com/docs/products/passport/gas-sponsorship.md)
>
> Sponsor user transactions

> [card] [Ecosystem Partners](https://docs.immutable.com/docs/products/immutable-chain/ecosystem-partners.md)
>
> Find RPC and development tools


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