skillfed

faster-eth-abi

A ~2-6x faster fork of eth_abi: Python utilities for working with Ethereum ABI definitions, especially encoding and decoding. Implemented in C.

faster-eth-abi v5.2.31 223.1K downloads/30d#9,252 on PyPI1
Permissive license MIT Active released

What it is and what it does

faster-eth-abi is a C-compiled fork of eth-abi that encodes and decodes Ethereum contract ABI data—the binary format used to call smart contracts and interpret their return values. It maintains API and exception compatibility with eth-abi, so you can swap it in as a drop-in replacement without rewriting exception handlers or call sites. The package depends on cchecksum, faster-eth-utils, eth-abi, eth-typing, mypy_extensions, and parsimonious to handle checksum validation, type annotations, and parsing.

The fork targets performance-critical Ethereum applications where encoding/decoding throughput matters. It compiles hot paths to C while keeping the Python interface unchanged. The project is actively maintained and tracks upstream eth-abi releases, so new ABI features and bug fixes are incorporated. It supports Python 3.10 through 3.14 on CPython with pre-built wheels for macOS (ARM), Linux (x86_64, i686, musl), and Windows.

Use it for:

  • Speed up batch transaction encoding in high-frequency trading or arbitrage bots that process many contract calls per second.
  • Reduce latency in RPC middleware or indexing services that decode contract events and call results at scale.
  • Improve performance of local contract simulators or testing frameworks that repeatedly encode/decode ABI data.
  • Replace eth-abi in existing Ethereum libraries or applications without refactoring exception handling or API calls.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Encodes and decodes Ethereum ABI data structures with C-compiled performance, providing a faster drop-in replacement for eth-abi with compatible exception handling.

Yes, if you are already using eth-abi and need faster encoding/decoding performance. The drop-in compatibility and active maintenance make it a low-risk swap. No if you are not performance-constrained or if you need Python versions below 3.10. The medium install friction (compiled wheels) is offset by broad platform coverage and permissive licensing.

Install

faster-eth-abi on PyPI

pip

pip install faster-eth-abi

uv

uv add faster-eth-abi

poetry

poetry add faster-eth-abi

Installing faster-eth-abi

Before you install

Medium install friction due to compiled wheels across multiple platforms and Python versions (3.10–3.14). Active maintenance with recent releases; last commit 2026-08-11. Six runtime dependencies add some complexity, though the project tracks upstream eth-abi updates.

License in practice

MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely provided you include the license notice.

Quickstart

pip install faster-eth-abi

from eth_abi import encode, decode
# Encode and decode contract ABI data

Requires Python 3.10 or later; compiled wheels available for common platforms but may require build tools on unsupported architectures.

Verify before relying

  • Actual performance improvement magnitude (2–6x claimed) on real workloads and whether it varies significantly by operation type.
  • Compatibility guarantees with eth-abi beyond exception inheritance; whether all encoding/decoding edge cases are identical.
  • Whether the C implementation handles all Ethereum type variants that eth-abi supports.

Package facts

License MIT (permissive)
Python support supports the current Python release (<4,>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies 6 — cchecksum, faster-eth-utils, eth-abi, eth-typing, mypy_extensions, parsimonious
Maintenance actively maintained — 34 days since the last release
Last repo commit
First released
Downloads 223,096/month — #9,252 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: faster_eth_abi-5.2.31-cp310-cp310-macosx_11_0_arm64.whl; faster_eth_abi-5.2.31-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; faster_eth_abi-5.2.31-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; faster_eth_abi-5.2.31-cp310-cp310-musllinux_1_2_x86_64.whl; faster_eth_abi-5.2.31-cp310-cp310-win32.whl; faster_eth_abi-5.2.31-cp310-cp310-win_amd64.whl; faster_eth_abi-5.2.31-cp311-cp311-macosx_11_0_arm64.whl; faster_eth_abi-5.2.31-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; faster_eth_abi-5.2.31-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; faster_eth_abi-5.2.31-cp311-cp311-musllinux_1_2_x86_64.whl; faster_eth_abi-5.2.31-cp311-cp311-win32.whl; faster_eth_abi-5.2.31-cp311-cp311-win_amd64.whl; faster_eth_abi-5.2.31-cp312-cp312-macosx_11_0_arm64.whl; faster_eth_abi-5.2.31-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; faster_eth_abi-5.2.31-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; faster_eth_abi-5.2.31-cp312-cp312-musllinux_1_2_x86_64.whl; faster_eth_abi-5.2.31-cp312-cp312-win32.whl; faster_eth_abi-5.2.31-cp312-cp312-win_amd64.whl; faster_eth_abi-5.2.31-cp313-cp313-macosx_11_0_arm64.whl; faster_eth_abi-5.2.31-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Keywords: ethereum

Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPython

Tags

ethereum abi encoding decodingeth-abi faster alternativeethereum contract interface utilitiesabi data serializationethereum type encoding
ethereumperformance-optimizedabi-encoding

More Internet packages