ethaddr is a Go library that provides a comprehensive collection of Ethereum addresses for various DeFi protocols, tokens, and entities across multiple blockchains (L1s and L2s).
Not Always Up-to-Date
LAST SYNC: Nov 2025
Please note that while ethaddr aims to maintain an extensive and accurate list of Ethereum addresses, it may not always be up-to-date with the latest deployments or changes in the ecosystem. Users are encouraged to verify addresses independently before use.
go get github.com/0xVanfer/ethaddrImport the package and access the address maps using the chain ID constants.
package main
import (
"fmt"
"github.com/0xVanfer/ethaddr"
)
func main() {
// Get the Aave token address on Ethereum
aaveAddress := ethaddr.AaveTokenList[ethaddr.ChainEthereum]
fmt.Println("Aave on Ethereum:", aaveAddress)
// Get the Uniswap token address on Arbitrum
uniAddress := ethaddr.UniswapTokenList[ethaddr.ChainArbitrum]
fmt.Println("Uniswap on Arbitrum:", uniAddress)
}The repository is structured with one file per protocol or entity type. For example:
arbitrum.go: Contains Arbitrum-specific addresses.lido.go: Contains Lido token addresses.chain.go: Defines chain ID constants and helper maps.
The library supports a wide range of chains, including but not limited to:
- Ethereum
- Optimism
- BSC
- Polygon
- Arbitrum
- Avalanche
- Base
- Scroll
- Linea
- ... and many more (see
chain.gofor the full list).