Chain Coverage

Three chains. One signing surface.

Solana uses Ed25519 with a distinct program account model. Base is OP Stack with a centralised sequencer. Arbitrum is Nitro AnyTrust with its own calldata format. Each has specific signing risks that generic wallet tooling doesn't address. Defimec does.

Solana

Cluster: mainnet-beta
Account model: program-owned — not EVM
Signing format: Ed25519 (not secp256k1)

Program upgrade validation

Solana programs can be upgraded by their upgrade authority. Defimec checks the program account's upgrade authority status before signing any instruction to an upgradeable program — you see whether the program you're calling has been modified recently.

RPC endpoint verification

Solana's RPC landscape is fragmented — multiple providers, public endpoints of varying quality, and a real history of malicious nodes redirecting transactions to alternate programs. Defimec probes the configured endpoint for version and cluster identity before each signing session.

Versioned transaction support

Solana's versioned transactions (V0) with address lookup tables can obscure which accounts are actually being accessed. Defimec resolves lookup table accounts before displaying the decoded instruction to you.

Stake account signing

Stake delegation, undelegation, and withdrawal instructions are decoded to human-readable intent. You see validator pubkey, stake amount, and authority before signing stake management transactions.

Base

Chain ID: 0x2105 (8453)
Architecture: OP Stack L2
Signing format: secp256k1 (EVM)

Sequencer trust model verification

Base uses Coinbase's centralised sequencer. Defimec verifies that the transaction you're signing routes to the canonical sequencer endpoint, not a fork or shadow instance. Chain ID 0x2105 is locked at the signing layer — OP Stack forks share similar IDs and confuse naive signing setups.

OP-stack chain ID handling

The OP ecosystem has dozens of forks sharing similar RPC patterns. Defimec maintains a chain ID registry and alerts if an RPC returns an ID in the OP family that doesn't match your configured target — Base mainnet vs OP Mainnet vs Zora vs Mode are distinct.

ERC-4337 account abstraction

Base is a popular deployment target for ERC-4337 smart accounts. UserOperation calldata is decoded separately from standard EVM transactions — you see the inner call, not just the EntryPoint wrapper.

Arbitrum

Chain ID: 0xa4b1 (42161)
Architecture: Nitro L2 (WASM)
Signing format: secp256k1 (EVM)

Nitro calldata format support

The Nitro upgrade changed Arbitrum's internal calldata encoding. Wallets that didn't update their ABI decoders expose traders to blind signing on Nitro-format transactions. Defimec's decoder is Nitro-aware — compressed calldata is expanded and decoded before display.

Arbitrum One vs Nova differentiation

Arbitrum One (chain ID 42161) and Arbitrum Nova (chain ID 42170) are distinct chains with different security models. Defimec locks the chain ID at signing time and alerts if an RPC returns Nova's ID when you've configured for One or vice versa.

EIP-712 on Arbitrum

Arbitrum uses standard EIP-712 typed data but the chainId field in the domain separator must match Arbitrum's chain ID. Defimec validates this match before forwarding any permit or meta-transaction signing request to Ledger.

Bridge signing risk handling

Cross-chain bridge transactions from Arbitrum involve L2-to-L1 messages that can be difficult to decode. Defimec identifies bridge router contracts and decodes the embedded L1 destination and value before you confirm.

Feature Matrix

Coverage across all three chains

Feature Solana Base Arbitrum
Chain-ID lock before signing
RPC health probe per session
Calldata decode (standard)
EIP-712 domain validation
Program upgrade authority check
Versioned transaction decode
Nitro calldata format
Multisig support
Bridge signing decode

Technical setup

Set up your chain configuration

RPC endpoint setup, chain-ID registry entries, and Defimec's health probe syntax for Solana cluster verification, Base mainnet, and Arbitrum One — all in the chain config docs.

Chain configuration docs