EVM (Ethereum)

Overview

Zafeguard EVM components for Ethereum and EVM-compatible chains — transactions, contract reads, Gnosis Safe, DeFi, and utilities.

Overview

Zafeguard ships 24 EVM components covering the full lifecycle of on-chain operations across any EVM-compatible chain (Ethereum, Polygon, Arbitrum, Base, Avalanche, etc.).

All EVM components accept a jsonRpcUrl where applicable — pass any standard JSON-RPC endpoint (Alchemy, Infura, your own node).


Categories

GroupComponentsPage
TransactionsBUILD_CALLDATA, BUILD_TRANSFER_CALLDATA, BUILD_ERC20_APPROVE_CALLDATA, BUILD, SIGN, BROADCAST, WAITTransactions →
Wallets & AddressesCOMPUTE_ADDRESS, GET_DERIVATION_PATH, GET_BALANCE, GET_CHAIN_IDWallets & Addresses →
Gnosis SafeDEPLOYMENT, NONCE, ADDRESS, IS_DEPLOYED, SIGNATURE, SAFE_TX, OWNERS, MULTICALLGnosis Safe →
DeFiUNISWAP_QUOTE, UNISWAP_SWAP_TXDeFi →
Cross-Chain BridgesBRIDGE_EVM_TOKENSCross-Chain Bridges →
Read & DecodeREAD_CONTRACT, DECODE_RESULT, KECCAK256Read & Decode →

Typical EVM workflow

GET_EVM_DERIVATION_PATH


COMPUTE_PUBLIC_KEY  ──▶  COMPUTE_EVM_ADDRESS


BUILD_EVM_TRANSACTION


SIGN_WITH_KEY_SHARE  ──▶  SIGN_EVM_TRANSACTION


BROADCAST_EVM_TRANSACTION


WAIT_FOR_EVM_TRANSACTION

Connecting to any chain

All components that interact with on-chain state take a jsonRpcUrl as input. You can pass this as a workspace environment variable or directly as a STRING_CONSTANT.

STRING_CONSTANT ("https://eth-mainnet.g.alchemy.com/v2/KEY")

        ▼ jsonRpcUrl
BUILD_EVM_TRANSACTION

Public RPC URLs (such as https://eth.llamarpc.com or https://rpc.ankr.com/eth) enforce rate limits per IP address and can fail under concurrent load.

Always use a private RPC endpoint from a provider such as Alchemy, Infura, or QuickNode, or point to a self-hosted node.

Works on any EVM chain

EVM components are chain-agnostic — they speak the standard JSON-RPC protocol. Supply any standards-compliant jsonRpcUrl and components work with:

  • Any public mainnet (Ethereum, Polygon, Arbitrum, Optimism, Base, Avalanche, BNB Chain, Fantom, Linea, zkSync Era, Scroll, Mantle, Blast, Mode, World Chain, etc.)
  • Any public testnet (Sepolia, Holesky, Mumbai, Sepolia derivatives, etc.)
  • Any L2 / rollup that exposes a standards-compliant JSON-RPC endpoint
  • Private and permissioned chains that use the EVM execution environment

The components fetch chainId from the RPC at execution time. The few features that do require chain-specific data (Gnosis Safe deployments, Uniswap routing, address book entries) gracefully error if the chain isn't supported by the underlying protocol.

Example RPCs (for reference only — bring your own):

ChainExample RPC
Ethereum Mainnethttps://eth-mainnet.g.alchemy.com/v2/KEY
Polygonhttps://polygon-mainnet.g.alchemy.com/v2/KEY
Arbitrum Onehttps://arb-mainnet.g.alchemy.com/v2/KEY
Basehttps://base-mainnet.g.alchemy.com/v2/KEY
Optimismhttps://opt-mainnet.g.alchemy.com/v2/KEY
Avalanchehttps://avax-mainnet.infura.io/v3/KEY
Bitkub Chainhttps://rpc.bitkubchain.io
JFIN Chainhttps://rpc.jfinchain.com
Private chainhttps://your-private-chain.example.com/rpc

On this page