Skip to main content

Documentation Index

Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt

Use this file to discover all available pages before exploring further.

Exports Reference

Complete list of what’s exported from TypeScript and Zig modules.

TypeScript Package Exports

From package.json exports field. Import as:
// Main entry
import { Address, Hash, Keccak256 } from "@tevm/voltaire";

// Direct imports (tree-shakeable)
import * as Address from "@tevm/voltaire/Address";
import * as Keccak256 from "@tevm/voltaire/Keccak256";

Primitives

ExportPathDescription
Abi./AbiABI encoding/decoding
AccessList./AccessListEIP-2930 access lists
Address./Address20-byte addresses
Authorization./AuthorizationEIP-7702 authorizations
Base64./Base64Base64 encoding
Blob./BlobEIP-4844 blobs
Block./BlockBlock structure
BloomFilter./BloomFilterLog bloom filter
Bytecode./BytecodeEVM bytecode
Bytes./BytesVariable bytes
Bytes32./Bytes3232-byte arrays
Chain./ChainChain metadata
Denomination./DenominationWei/Gwei/Ether
Ens./EnsENS normalization
EventLog./EventLogContract events
FeeMarket./FeeMarketEIP-1559 fees
Gas./GasGas types
GasConstants./GasConstantsEVM gas costs
Hardfork./HardforkHardfork enums
Hash./Hash32-byte hashes
Hex./HexHex encoding
Opcode./OpcodeEVM opcodes
Receipt./ReceiptTransaction receipts
Rlp./RlpRLP encoding
Signature./SignatureECDSA signatures
Siwe./SiweSign-In with Ethereum
Transaction./TransactionAll transaction types
Uint256./Uint256256-bit integers

Crypto

ExportPathDescription
Keccak256./Keccak256Keccak-256 hash
SHA256./SHA256SHA-256 hash
Blake2./Blake2Blake2b hash
Ripemd160./Ripemd160RIPEMD-160 hash
Secp256k1./Secp256k1ECDSA signing
Ed25519./Ed25519EdDSA signing
P256./P256NIST P-256
X25519./X25519Key exchange
AesGcm./AesGcmEncryption
Bip39./Bip39Mnemonics
HDWallet./HDWalletHD derivation
KZG./KZGBlob commitments
BN254./BN254BN254 curve
EIP712./EIP712Typed data

Other

ExportPathDescription
jsonrpc./jsonrpcJSON-RPC types
precompiles./precompilesEVM precompiles

TypeScript Main Index

From src/index.ts:
// Re-exports all primitives
export * from "./primitives/index.js";

// Re-exports all crypto
export * from "./crypto/index.js";

// Re-exports standards
export * from "./standards/index.js";

// Re-exports EVM
export * from "./evm/index.js";

Zig Primitives Module

From src/primitives/root.zig:

Core Types

pub const Address = @import("Address/address.zig").Address;
pub const Hash = @import("Hash/hash.zig").Hash;
pub const Bytes32 = @import("Bytes32/bytes32.zig").Bytes32;
pub const Signature = @import("Signature/signature.zig").Signature;

Encoding

pub const Hex = @import("Hex/hex.zig");
pub const Rlp = @import("Rlp/rlp.zig");
pub const Abi = @import("Abi/abi.zig");
pub const AbiEncoding = @import("Abi/abi_encoding.zig");
pub const Base64 = @import("Base64/base64.zig").Base64;
pub const Ssz = @import("Ssz/ssz.zig");

Numeric

pub const Numeric = @import("Uint256/numeric.zig");
pub const Uint = @import("Uint256/uint256.zig");
pub const Denomination = @import("Denomination/denomination.zig");
pub const Wei = Denomination.Wei;
pub const Gwei = Denomination.Gwei;
pub const Ether = Denomination.Ether;

Transaction

pub const Transaction = @import("Transaction/transaction.zig");
pub const LegacyTransaction = Transaction.LegacyTransaction;
pub const Eip2930Transaction = Transaction.Eip2930Transaction;
pub const Eip1559Transaction = Transaction.Eip1559Transaction;
pub const Eip4844Transaction = Transaction.Eip4844Transaction;
pub const Eip7702Transaction = Transaction.Eip7702Transaction;

EVM

pub const Bytecode = @import("Bytecode/bytecode.zig").Bytecode;
pub const Opcode = @import("Opcode/opcode.zig").Opcode;
pub const OpcodeInfo = @import("Opcode/opcode_info.zig");
pub const Gas = @import("Gas/gas.zig");
pub const GasConstants = @import("GasConstants/gas_constants.zig");

Protocol

pub const Chain = @import("Chain/chain.zig");
pub const Hardfork = @import("Hardfork/hardfork.zig").Hardfork;
pub const ForkTransition = @import("Hardfork/fork_transition.zig");
pub const Eips = @import("Hardfork/eips.zig");

Standards

pub const Siwe = @import("Siwe/siwe.zig");
pub const Ens = @import("Ens/ens.zig");
pub const TypedData = @import("Domain/typed_data.zig");

Data Structures

pub const Trie = @import("Trie/trie.zig");
pub const BloomFilter = @import("BloomFilter/bloom_filter.zig");
pub const BinaryTree = @import("BinaryTree/binary_tree.zig");

Zig Crypto Module

From src/crypto/root.zig:

Hashing

pub const Hash = @import("hash.zig");
pub const HashAlgorithms = @import("hash_algorithms.zig");
pub const HashUtils = @import("hash_utils.zig");
pub const Blake2 = @import("blake2.zig");
pub const Ripemd160 = @import("ripemd160.zig");

Signatures

pub const secp256k1 = @import("secp256k1.zig");
pub const p256 = @import("p256.zig");
pub const ed25519 = @import("ed25519.zig");
pub const x25519 = @import("x25519.zig");

Encryption

pub const aes_gcm = @import("aes_gcm.zig");

Curves

pub const bn254 = @import("bn254.zig");
pub const bn254_arkworks = @import("bn254_arkworks.zig");
pub const bls12_381 = @import("precompiles.zig").Crypto;

KZG

pub const kzg_trusted_setup = @import("kzg_trusted_setup.zig");
pub const kzg_setup = @import("kzg_setup.zig");
pub const c_kzg = @import("c_kzg.zig");

EIP-712

pub const Eip712 = @import("eip712.zig");

Hardware Acceleration

pub const CpuFeatures = @import("cpu_features.zig").CpuFeatures;
pub const SHA256_Accel = @import("sha256_accel.zig");
pub const Keccak256_Accel = @import("keccak256_accel.zig");
pub const keccak_asm = @import("keccak_asm.zig");

Modular Arithmetic

pub const ModExp = @import("modexp.zig");

Zig Precompiles Module

From src/evm/precompiles/root.zig:

Precompile Functions

pub const ecrecover = @import("ecrecover.zig");
pub const sha256 = @import("sha256.zig");
pub const ripemd160 = @import("ripemd160.zig");
pub const identity = @import("identity.zig");
pub const modexp = @import("modexp.zig");
pub const blake2f = @import("blake2f.zig");
pub const point_evaluation = @import("point_evaluation.zig");

BN254

pub const bn254_add = @import("bn254_add.zig");
pub const bn254_mul = @import("bn254_mul.zig");
pub const bn254_pairing = @import("bn254_pairing.zig");

BLS12-381

pub const bls12_g1_add = @import("bls12_g1_add.zig");
pub const bls12_g1_mul = @import("bls12_g1_mul.zig");
pub const bls12_g1_msm = @import("bls12_g1_msm.zig");
pub const bls12_g2_add = @import("bls12_g2_add.zig");
pub const bls12_g2_mul = @import("bls12_g2_mul.zig");
pub const bls12_g2_msm = @import("bls12_g2_msm.zig");
pub const bls12_pairing = @import("bls12_pairing.zig");
pub const bls12_map_fp_to_g1 = @import("bls12_map_fp_to_g1.zig");
pub const bls12_map_fp2_to_g2 = @import("bls12_map_fp2_to_g2.zig");

Address Constants

pub const ECRECOVER_ADDRESS: Address = addressFromInt(0x01);
pub const SHA256_ADDRESS: Address = addressFromInt(0x02);
pub const RIPEMD160_ADDRESS: Address = addressFromInt(0x03);
pub const IDENTITY_ADDRESS: Address = addressFromInt(0x04);
pub const MODEXP_ADDRESS: Address = addressFromInt(0x05);
pub const BN254_ADD_ADDRESS: Address = addressFromInt(0x06);
pub const BN254_MUL_ADDRESS: Address = addressFromInt(0x07);
pub const BN254_PAIRING_ADDRESS: Address = addressFromInt(0x08);
pub const BLAKE2F_ADDRESS: Address = addressFromInt(0x09);
pub const POINT_EVALUATION_ADDRESS: Address = addressFromInt(0x0A);
// ... BLS12-381 addresses 0x0B-0x13

Dispatch

/// Check if address is a precompile for given hardfork
pub fn isPrecompile(address: Address, hardfork: Hardfork) bool;

/// Execute precompile at address
pub fn execute(
    address: Address,
    input: []const u8,
    gas_limit: u64,
    hardfork: Hardfork
) !ExecuteResult;

Using Imports

TypeScript

// Namespace import (recommended)
import * as Address from "@tevm/voltaire/Address";
Address.fromHex("0x...");
Address.toChecksummed(addr);

// Named imports
import { fromHex, toChecksummed } from "@tevm/voltaire/Address";

// Default import (entire library)
import voltaire from "@tevm/voltaire";
voltaire.Address.fromHex("0x...");

Zig

// Module import
const primitives = @import("primitives");
const Address = primitives.Address;

const crypto = @import("crypto");
const secp256k1 = crypto.secp256k1;

const precompiles = @import("precompiles");
const ecrecover = precompiles.ecrecover;