Skip to main content
Metal runs the EVM and exposes Ethereum JSON-RPC, so developers can keep the Solidity language, account model, and most of their existing tools. The main differences come from Metal’s payment model. Assets pay transaction fees, native value is disabled, account policy can run during a transfer, and consensus provides a precise finality signal.

What remains unchanged

Metal targets the Osaka EVM revision.

What changes

Metal also adds a millisecond component to its block header. Solidity block.timestamp remains denominated in seconds.

Transaction envelopes

Metal configures MIP20 token as the network’s default gas token. Standard Ethereum transaction envelopes have no gas-token selection field, so their fees are charged in that token. The signing account must hold enough of it to pay gas. Use Metal’s 0x7f envelope when the signer needs to select another approved MIP20 gas token. See EVM Compatibility and Gas for fee accounting and wallet behavior. On the Osaka network, blob transactions use EIP-7594 network sidecars. The Metal 0x7f envelope can carry an EIP-7702 authorization list even though Metal does not accept the native 0x04 envelope. For an exact asset balance, call that asset’s balanceOf. Use eth_getBalance only for the default gas-token balance exposed to Ethereum wallets and transaction tooling. Replace native-value patterns as follows: Read each asset’s decimals() value rather than assuming that all MIP20 assets use the same precision.

Deterministic settlement

A successful receipt proves execution, while consensus_status.finalized proves settlement. Systems that release funds or trigger another irreversible action should wait until the transaction’s block is at or below the finalized head and confirm that the canonical block at the receipt’s height has the receipt’s block hash. This establishes that the executed transaction belongs to the finalized chain.

Local and testnet development

Anvil and other local EVMs remain useful for contract logic, fuzzing, events, and revert behavior. They do not reproduce Metal’s MIP20 fee accounting, 0x7f admission and signing, policy-enabled account setup, custom RPC methods, finality, or additive block-header fields. Test those Metal-specific paths on the public testnet before deploying an integration.

Connect to testnet

Verify the public RPC with standard EVM tooling.

Set up a project

Configure a Solidity or TypeScript project for Metal.

Transaction architecture

Review transaction envelopes and admission rules.

Finality

How validators agree on a block and establish finality.