Skip to main content
Looking to learn more about why to use Voltaire? Check out What is Voltaire?
Try it live: open the Playground to experiment with Voltaire primitives in your browser.

Prerequisites

  • Node.js: 18+ (20+ recommended)
  • Package Manager: npm, bun, pnpm, or yarn
  • Knowledge: Basic JavaScript/TypeScript
New to Ethereum? Check out our Skills for example-based patterns with working code you can copy into your project.

Installation

npm install @tevm/voltaire
Prefer importing from "voltaire" instead of "@tevm/voltaire"? Install with an alias:
# npm
npm install voltaire@npm:@tevm/voltaire

# bun
bun add voltaire@npm:@tevm/voltaire

# pnpm
pnpm add voltaire@npm:@tevm/voltaire

# yarn
yarn add voltaire@npm:@tevm/voltaire
Then import as import { Address } from "voltaire".
Runtime support: Native FFI is currently supported on Bun. In Node.js, use the regular TypeScript API or the WASM modules. Browsers use WASM.

Imports

import {
  Abi,
  AccessList,
  Address,
  Authorization,
  Base64,
  BinaryTree,
  Blob,
  BloomFilter,
  Bytecode,
  Chain,
  ChainId,
  Denomination,
  Ens,
  EventLog,
  FeeMarket,
  GasConstants,
  Hardfork,
  Hash,
  Hex,
  Int,
  Nonce,
  Opcode,
  PrivateKey,
  PublicKey,
  Rlp,
  Signature,
  Siwe,
  State,
  Transaction,
  Uint
} from "@tevm/voltaire";

Import Paths

  • Default ergonomic: import { Address, Hex } from '@tevm/voltaire'
  • Tree-shakable subpaths: import { Address } from '@tevm/voltaire/Address'
  • Avoid: @tevm/voltaire/primitives/*, tevm/*, @voltaire/*
  • Aliasing: with voltaire@npm:@tevm/voltaire, you can import { Address } from 'voltaire' and still use the same subpaths for tree-shaking.

Learn More

Skills

Copyable implementations: providers, contracts, React hooks, and more

Playground

Experiment interactively with Voltaire primitives in your browser

What is Voltaire?

Learn why to use Voltaire and what makes it unique

Core Concepts

Understand branded types and the data-first design pattern

MCP Server

Use AI to generate custom Skills for your contracts

API Reference

Primitives

ABI

ABI encoding and decoding. Supports functions, events, errors, and constructors per the ABI specification. View docs →

AccessList

EIP-2930 transaction access lists for optimized state access costs. View docs →

Address

20-byte Ethereum addresses with EIP-55 checksumming and CREATE/CREATE2 calculation. View docs →

Authorization

EIP-7702 authorization lists for account abstraction code delegation. View docs →

Base64

RFC 4648 Base64 encoding and decoding. View docs →

BinaryTree

Binary tree structures for Merkle trees and similar data structures. View docs →

Blob

EIP-4844 blob transaction data (128KB blobs). View docs →

BloomFilter

Ethereum log bloom filters for efficient log filtering. View docs →

Bytecode

Contract bytecode manipulation, analysis, and metadata handling. View docs →

Chain

Chain configuration and network parameters. View docs →

ChainId

Network identifiers (mainnet, testnets, L2s). View docs →

Denomination

Ether denomination conversions (wei, gwei, ether). View docs →

Ens

ENS name normalization per ENSIP-15. View docs →

EventLog

Transaction event log parsing and filtering. View docs →

FeeMarket

EIP-1559 fee market calculations (base fee, priority fee). View docs →

GasConstants

EVM gas costs per the Yellow Paper specification. View docs →

Hardfork

Network hardfork detection and feature flags. View docs →

Hash

32-byte hash type with constant-time operations. View docs →

Hex

Hexadecimal encoding with sized types and manipulation utilities. View docs →

Int

Signed integer types (Int8, Int16, Int32, Int64, Int128, Int256). View docs →

Nonce

Transaction nonce management. View docs →

Opcode

EVM opcodes with gas costs and metadata. View docs →

PrivateKey

Private key operations including signing and address derivation. View docs →

PublicKey

Public key operations including verification and address derivation. View docs →

Rlp

Recursive Length Prefix encoding and decoding. View docs →

Signature

ECDSA signatures (secp256k1, P-256, Ed25519) with recovery and normalization. View docs →

Siwe

Sign-In with Ethereum (EIP-4361) authentication. View docs →

State

Account state management and storage slots. View docs →

Transaction

All Ethereum transaction types (Legacy, EIP-2930, EIP-1559, EIP-4844, EIP-7702). View docs →

Uint

Unsigned integer types (Uint8, Uint16, Uint32, Uint64, Uint128, Uint256). View docs →

Cryptography

AesGcm

AES-GCM authenticated encryption per NIST SP 800-38D. View docs →

Bip39

BIP-39 mnemonic phrase generation and validation. View docs →

Blake2

Blake2 hash function per RFC 7693. View docs →

Bls12381

BLS12-381 elliptic curve operations for Ethereum consensus layer. View docs →

Bn254

BN254 (alt_bn128) elliptic curve for zkSNARK verification. View docs →

Ed25519

Ed25519 EdDSA signatures per RFC 8032. View docs →

EIP712

EIP-712 typed structured data signing. View docs →

HDWallet

BIP-32/BIP-44 hierarchical deterministic wallet key derivation. View docs →

Keccak256

Keccak-256 hash function (primary Ethereum hash) per FIPS 202. View docs →

Kzg

KZG polynomial commitments for EIP-4844 blob verification. View docs →

P256

NIST P-256 (secp256r1) elliptic curve per FIPS 186-5. View docs →

Pbkdf2

PBKDF2 key derivation function. View docs →

Poseidon

Poseidon hash function for zero-knowledge proofs. View docs →

Ripemd160

RIPEMD-160 hash function. View docs →

Schnorr

Schnorr signatures for Bitcoin compatibility. View docs →

Secp256k1

Secp256k1 ECDSA for Ethereum transaction signing. View docs →

Secp256r1

Secp256r1 (P-256) ECDSA signatures. View docs →

Sha256

SHA-256 hash function per FIPS 180-4. View docs →

Sha3

SHA-3 hash function family per FIPS 202. View docs →

Sha512

SHA-512 hash function per FIPS 180-4. View docs →

X25519

X25519 ECDH key exchange per RFC 7748. View docs →