> ## 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

> All TypeScript and Zig exports currently available

# Exports Reference

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

## TypeScript Package Exports

From `package.json` exports field. Import as:

```typescript theme={null}
// 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

| Export          | Path              | Description             |
| --------------- | ----------------- | ----------------------- |
| `Abi`           | `./Abi`           | ABI encoding/decoding   |
| `AccessList`    | `./AccessList`    | EIP-2930 access lists   |
| `Address`       | `./Address`       | 20-byte addresses       |
| `Authorization` | `./Authorization` | EIP-7702 authorizations |
| `Base64`        | `./Base64`        | Base64 encoding         |
| `Blob`          | `./Blob`          | EIP-4844 blobs          |
| `Block`         | `./Block`         | Block structure         |
| `BloomFilter`   | `./BloomFilter`   | Log bloom filter        |
| `Bytecode`      | `./Bytecode`      | EVM bytecode            |
| `Bytes`         | `./Bytes`         | Variable bytes          |
| `Bytes32`       | `./Bytes32`       | 32-byte arrays          |
| `Chain`         | `./Chain`         | Chain metadata          |
| `Denomination`  | `./Denomination`  | Wei/Gwei/Ether          |
| `Ens`           | `./Ens`           | ENS normalization       |
| `EventLog`      | `./EventLog`      | Contract events         |
| `FeeMarket`     | `./FeeMarket`     | EIP-1559 fees           |
| `Gas`           | `./Gas`           | Gas types               |
| `GasConstants`  | `./GasConstants`  | EVM gas costs           |
| `Hardfork`      | `./Hardfork`      | Hardfork enums          |
| `Hash`          | `./Hash`          | 32-byte hashes          |
| `Hex`           | `./Hex`           | Hex encoding            |
| `Opcode`        | `./Opcode`        | EVM opcodes             |
| `Receipt`       | `./Receipt`       | Transaction receipts    |
| `Rlp`           | `./Rlp`           | RLP encoding            |
| `Signature`     | `./Signature`     | ECDSA signatures        |
| `Siwe`          | `./Siwe`          | Sign-In with Ethereum   |
| `Transaction`   | `./Transaction`   | All transaction types   |
| `Uint256`       | `./Uint256`       | 256-bit integers        |

### Crypto

| Export      | Path          | Description      |
| ----------- | ------------- | ---------------- |
| `Keccak256` | `./Keccak256` | Keccak-256 hash  |
| `SHA256`    | `./SHA256`    | SHA-256 hash     |
| `Blake2`    | `./Blake2`    | Blake2b hash     |
| `Ripemd160` | `./Ripemd160` | RIPEMD-160 hash  |
| `Secp256k1` | `./Secp256k1` | ECDSA signing    |
| `Ed25519`   | `./Ed25519`   | EdDSA signing    |
| `P256`      | `./P256`      | NIST P-256       |
| `X25519`    | `./X25519`    | Key exchange     |
| `AesGcm`    | `./AesGcm`    | Encryption       |
| `Bip39`     | `./Bip39`     | Mnemonics        |
| `HDWallet`  | `./HDWallet`  | HD derivation    |
| `KZG`       | `./KZG`       | Blob commitments |
| `BN254`     | `./BN254`     | BN254 curve      |
| `EIP712`    | `./EIP712`    | Typed data       |

### Other

| Export        | Path            | Description     |
| ------------- | --------------- | --------------- |
| `jsonrpc`     | `./jsonrpc`     | JSON-RPC types  |
| `precompiles` | `./precompiles` | EVM precompiles |

***

## TypeScript Main Index

From `src/index.ts`:

```typescript theme={null}
// 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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
pub const Siwe = @import("Siwe/siwe.zig");
pub const Ens = @import("Ens/ens.zig");
pub const TypedData = @import("Domain/typed_data.zig");
```

### Data Structures

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
pub const aes_gcm = @import("aes_gcm.zig");
```

### Curves

```zig theme={null}
pub const bn254 = @import("bn254.zig");
pub const bn254_arkworks = @import("bn254_arkworks.zig");
pub const bls12_381 = @import("precompiles.zig").Crypto;
```

### KZG

```zig theme={null}
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

```zig theme={null}
pub const Eip712 = @import("eip712.zig");
```

### Hardware Acceleration

```zig theme={null}
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

```zig theme={null}
pub const ModExp = @import("modexp.zig");
```

***

## Zig Precompiles Module

From `src/evm/precompiles/root.zig`:

### Precompile Functions

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
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

```zig theme={null}
/// 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

```typescript theme={null}
// 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

```zig theme={null}
// 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;
```
