> ## 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 title="Source Code" icon="github" href="https://github.com/immutable/immutable-geth">
  View the Immutable geth fork on GitHub
</Card>

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

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

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

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

## 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](/docs/products/passport/gas-sponsorship) for sponsored transactions.

## Resources

<CardGroup cols={2}>
  <Card title="Chain Configuration" icon="gear" href="/docs/products/immutable-chain/overview">
    Network details and RPC endpoints
  </Card>

  <Card title="Bridging" icon="bridge" href="/docs/products/immutable-chain/bridging">
    Core protocol addresses
  </Card>
</CardGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Deploy Contracts" icon="file-contract" href="/docs/products/asset-contracts/deploy-contracts-with-hardhat">
    Deploy contracts with Hardhat
  </Card>

  <Card title="Chain Overview" icon="link" href="/docs/products/immutable-chain/overview">
    Network configuration details
  </Card>

  <Card title="Gas Sponsorship" icon="gas-pump" href="/docs/products/passport/gas-sponsorship">
    Sponsor user transactions
  </Card>

  <Card title="Ecosystem Partners" icon="users" href="/docs/products/immutable-chain/ecosystem-partners">
    Find RPC and development tools
  </Card>
</CardGroup>
