# Ethers v0.6.11 - Table of Contents A comprehensive Web3 library for interacting with smart contracts on Ethereum using Elixir. ## Pages - [Introduction](readme.md) - [Changelog](changelog.md) - [Typed Arguments](typed-arguments.md) - [Configuration](configuration.md) - [Upgrading](upgrading.md) ## Modules - [Ethers](Ethers.md): high-level module providing a convenient and efficient interface for interacting with the Ethereum blockchain using Elixir. - [Ethers.CcipRead](Ethers.CcipRead.md): CCIP Read ([EIP-3668](https://eips.ethereum.org/EIPS/eip-3668)) implementation - [Ethers.Contract](Ethers.Contract.md): Dynamically creates modules for ABIs at compile time. - [Ethers.Event](Ethers.Event.md): EVM Event struct and helpers - [Ethers.EventFilter](Ethers.EventFilter.md): Event Filter struct and helper functions to work with the event filters - [Ethers.Multicall](Ethers.Multicall.md): This module offers convenient utilities and a user-friendly API for interacting with `Multicall3` (for more information, visit https://www.multicall3.com). - [Ethers.NameService](Ethers.NameService.md): Name Service resolution implementation for ENS (Ethereum Name Service). Supports both forward and reverse resolution plus reverse lookups. - [Ethers.TxData](Ethers.TxData.md): Transaction struct to hold information about the ABI selector, encoded data and the target `to` address. - [Ethers.Types](Ethers.Types.md): EVM types and compound type definitions - [Ethers.Utils](Ethers.Utils.md): Utilities for interacting with ethereum blockchain - Transactions - [Ethers.Transaction](Ethers.Transaction.md): Transaction struct and helper functions for handling EVM transactions. - [Ethers.Transaction.Eip1559](Ethers.Transaction.Eip1559.md): Transaction struct and protocol implementation for Ethereum Improvement Proposal (EIP) 1559 transactions. EIP-1559 introduced a new fee market mechanism with base fee and priority fee. - [Ethers.Transaction.Eip2930](Ethers.Transaction.Eip2930.md): Transaction struct and protocol implementation for Ethereum Improvement Proposal (EIP) 2930 transactions. EIP-2930 introduced a new transaction type that includes an access list, allowing transactions to pre-specify and pre-pay for account and storage access to mitigate gas cost changes from EIP-2929 and prevent contract breakage. The access list format also enables future use cases like block-wide witnesses and static state access patterns. - [Ethers.Transaction.Eip4844](Ethers.Transaction.Eip4844.md): Transaction struct and protocol implementation for Ethereum Improvement Proposal (EIP) 4844 transactions. EIP-4844 introduced "blob-carrying transactions" which contain a large amount of data that cannot be accessed by EVM execution, but whose commitment can be accessed. - [Ethers.Transaction.Legacy](Ethers.Transaction.Legacy.md): Legacy transaction struct and implementation of Transaction.Protocol. - [Ethers.Transaction.Metadata](Ethers.Transaction.Metadata.md): Metadata for a transaction like block hash, block number, and transaction index. - [Ethers.Transaction.Protocol](Ethers.Transaction.Protocol.md): Protocol for handling Ethereum Virtual Machine (EVM) transactions. - [Ethers.Transaction.Signed](Ethers.Transaction.Signed.md): A struct that wraps a transaction and its signature values. - Builtin Contracts - [Ethers.Contracts.CcipRead](Ethers.Contracts.CcipRead.md): CCIP Read ([EIP-3668](https://eips.ethereum.org/EIPS/eip-3668)) contract - [Ethers.Contracts.ENS](Ethers.Contracts.ENS.md): Ethereum Name Service (ENS) Contract - [Ethers.Contracts.ENS.ExtendedResolver](Ethers.Contracts.ENS.ExtendedResolver.md): Extended ENS resolver as per [ENSIP-10](https://docs.ens.domains/ensip/10) - [Ethers.Contracts.ENS.Resolver](Ethers.Contracts.ENS.Resolver.md): Ethereum Name Service (ENS) Resolver Contract - [Ethers.Contracts.ERC1155](Ethers.Contracts.ERC1155.md): ERC1155 token interface - [Ethers.Contracts.ERC165](Ethers.Contracts.ERC165.md): ERC-165 Standard Interface Detection - [Ethers.Contracts.ERC20](Ethers.Contracts.ERC20.md): ERC20 token interface - [Ethers.Contracts.ERC721](Ethers.Contracts.ERC721.md): ERC721 token interface - [Ethers.Contracts.ERC777](Ethers.Contracts.ERC777.md): ERC777 token interface - [Ethers.Contracts.Multicall3](Ethers.Contracts.Multicall3.md): Multicall3 token interface - Builtin EventFilters - [Ethers.Contracts.CcipRead.EventFilters](Ethers.Contracts.CcipRead.EventFilters.md): Events for `Ethers.Contracts.CcipRead` - [Ethers.Contracts.ENS.EventFilters](Ethers.Contracts.ENS.EventFilters.md): Events for `Ethers.Contracts.ENS` - [Ethers.Contracts.ENS.ExtendedResolver.EventFilters](Ethers.Contracts.ENS.ExtendedResolver.EventFilters.md): Events for `Ethers.Contracts.ENS.ExtendedResolver` - [Ethers.Contracts.ENS.Resolver.EventFilters](Ethers.Contracts.ENS.Resolver.EventFilters.md): Events for `Ethers.Contracts.ENS.Resolver` - [Ethers.Contracts.ERC1155.EventFilters](Ethers.Contracts.ERC1155.EventFilters.md): Events for `Ethers.Contracts.ERC1155` - [Ethers.Contracts.ERC165.EventFilters](Ethers.Contracts.ERC165.EventFilters.md): Events for `Ethers.Contracts.ERC165` - [Ethers.Contracts.ERC20.EventFilters](Ethers.Contracts.ERC20.EventFilters.md): Events for `Ethers.Contracts.ERC20` - [Ethers.Contracts.ERC721.EventFilters](Ethers.Contracts.ERC721.EventFilters.md): Events for `Ethers.Contracts.ERC721` - [Ethers.Contracts.ERC777.EventFilters](Ethers.Contracts.ERC777.EventFilters.md): Events for `Ethers.Contracts.ERC777` - [Ethers.Contracts.Multicall3.EventFilters](Ethers.Contracts.Multicall3.EventFilters.md): Events for `Ethers.Contracts.Multicall3` - Signer - [Ethers.Signer](Ethers.Signer.md): Signer behaviour. - [Ethers.Signer.JsonRPC](Ethers.Signer.JsonRPC.md): Signer capable of signing transactions with a JSON RPC server capable of `eth_signTransaction` and `eth_accounts` RPC functions. - [Ethers.Signer.Local](Ethers.Signer.Local.md): Local signer works with a private key. - Builtin Contract Errors - [Ethers.Contracts.CcipRead.Errors.OffchainLookup](Ethers.Contracts.CcipRead.Errors.OffchainLookup.md): Error struct for `error OffchainLookup` - [Ethers.Contracts.ERC1155.Errors.ERC1155InsufficientBalance](Ethers.Contracts.ERC1155.Errors.ERC1155InsufficientBalance.md): Error struct for `error ERC1155InsufficientBalance` - [Ethers.Contracts.ERC1155.Errors.ERC1155InvalidApprover](Ethers.Contracts.ERC1155.Errors.ERC1155InvalidApprover.md): Error struct for `error ERC1155InvalidApprover` - [Ethers.Contracts.ERC1155.Errors.ERC1155InvalidArrayLength](Ethers.Contracts.ERC1155.Errors.ERC1155InvalidArrayLength.md): Error struct for `error ERC1155InvalidArrayLength` - [Ethers.Contracts.ERC1155.Errors.ERC1155InvalidOperator](Ethers.Contracts.ERC1155.Errors.ERC1155InvalidOperator.md): Error struct for `error ERC1155InvalidOperator` - [Ethers.Contracts.ERC1155.Errors.ERC1155InvalidReceiver](Ethers.Contracts.ERC1155.Errors.ERC1155InvalidReceiver.md): Error struct for `error ERC1155InvalidReceiver` - [Ethers.Contracts.ERC1155.Errors.ERC1155InvalidSender](Ethers.Contracts.ERC1155.Errors.ERC1155InvalidSender.md): Error struct for `error ERC1155InvalidSender` - [Ethers.Contracts.ERC1155.Errors.ERC1155MissingApprovalForAll](Ethers.Contracts.ERC1155.Errors.ERC1155MissingApprovalForAll.md): Error struct for `error ERC1155MissingApprovalForAll` - [Ethers.Contracts.ERC165.Errors.NotERC165CompatibleError](Ethers.Contracts.ERC165.Errors.NotERC165CompatibleError.md) - [Ethers.Contracts.ERC20.Errors.ERC20InsufficientAllowance](Ethers.Contracts.ERC20.Errors.ERC20InsufficientAllowance.md): Error struct for `error ERC20InsufficientAllowance` - [Ethers.Contracts.ERC20.Errors.ERC20InsufficientBalance](Ethers.Contracts.ERC20.Errors.ERC20InsufficientBalance.md): Error struct for `error ERC20InsufficientBalance` - [Ethers.Contracts.ERC20.Errors.ERC20InvalidApprover](Ethers.Contracts.ERC20.Errors.ERC20InvalidApprover.md): Error struct for `error ERC20InvalidApprover` - [Ethers.Contracts.ERC20.Errors.ERC20InvalidReceiver](Ethers.Contracts.ERC20.Errors.ERC20InvalidReceiver.md): Error struct for `error ERC20InvalidReceiver` - [Ethers.Contracts.ERC20.Errors.ERC20InvalidSender](Ethers.Contracts.ERC20.Errors.ERC20InvalidSender.md): Error struct for `error ERC20InvalidSender` - [Ethers.Contracts.ERC20.Errors.ERC20InvalidSpender](Ethers.Contracts.ERC20.Errors.ERC20InvalidSpender.md): Error struct for `error ERC20InvalidSpender` - [Ethers.Contracts.ERC721.Errors.ERC721IncorrectOwner](Ethers.Contracts.ERC721.Errors.ERC721IncorrectOwner.md): Error struct for `error ERC721IncorrectOwner` - [Ethers.Contracts.ERC721.Errors.ERC721InsufficientApproval](Ethers.Contracts.ERC721.Errors.ERC721InsufficientApproval.md): Error struct for `error ERC721InsufficientApproval` - [Ethers.Contracts.ERC721.Errors.ERC721InvalidApprover](Ethers.Contracts.ERC721.Errors.ERC721InvalidApprover.md): Error struct for `error ERC721InvalidApprover` - [Ethers.Contracts.ERC721.Errors.ERC721InvalidOperator](Ethers.Contracts.ERC721.Errors.ERC721InvalidOperator.md): Error struct for `error ERC721InvalidOperator` - [Ethers.Contracts.ERC721.Errors.ERC721InvalidOwner](Ethers.Contracts.ERC721.Errors.ERC721InvalidOwner.md): Error struct for `error ERC721InvalidOwner` - [Ethers.Contracts.ERC721.Errors.ERC721InvalidReceiver](Ethers.Contracts.ERC721.Errors.ERC721InvalidReceiver.md): Error struct for `error ERC721InvalidReceiver` - [Ethers.Contracts.ERC721.Errors.ERC721InvalidSender](Ethers.Contracts.ERC721.Errors.ERC721InvalidSender.md): Error struct for `error ERC721InvalidSender` - [Ethers.Contracts.ERC721.Errors.ERC721NonexistentToken](Ethers.Contracts.ERC721.Errors.ERC721NonexistentToken.md): Error struct for `error ERC721NonexistentToken` - Exceptions - [Ethers.ExecutionError](Ethers.ExecutionError.md): Execution Error Exception.