@tevm/voltaire / provider
provider
Provider - EIP-1193 Compliant Ethereum JSON-RPC Provider EIP-1193 compliant provider implementations for Ethereum JSON-RPC communication. Supports HTTP, WebSocket, and in-memory (EVM-based) transports.Features
- EIP-1193 compliant - Single
request()method for all RPC calls - Strongly typed - Full type safety with RpcSchema support
- EventEmitter - Standard event handling for blockchain events
- Throws on error - Clean error handling with RpcError
- Multiple transports - HTTP, WebSocket, or in-memory execution
Quick Start
Available Providers
- HttpProvider - HTTP transport with EventEmitter
- WebSocketProvider - WebSocket transport with native pub/sub
- InMemoryProvider - Local EVM execution (coming with EVM docs)
See
https://voltaire.tevm.sh/provider for full documentationNamespaces
Enumerations
ProviderRpcErrorCode
Defined in: src/provider/types.ts:34 EIP-1193 error codesEnumeration Members
ChainDisconnected
ChainDisconnected: 4901
Defined in: src/provider/types.ts:44
Provider disconnected from all chains
Disconnected
Disconnected: 4900
Defined in: src/provider/types.ts:42
Provider disconnected from chains
Unauthorized
Unauthorized: 4100
Defined in: src/provider/types.ts:38
Requested method/account not authorized
UnsupportedMethod
UnsupportedMethod: 4200
Defined in: src/provider/types.ts:40
Provider doesn’t support requested method
UserRejectedRequest
UserRejectedRequest: 4001
Defined in: src/provider/types.ts:36
User rejected request
Classes
HttpProvider
Defined in: src/provider/HttpProvider.ts:64 HTTP Provider implementation EIP-1193 compliant provider using HTTP transport via fetch API. Throws RpcError on failures.Example
Implements
Constructors
Constructor
new HttpProvider(Defined in: src/provider/HttpProvider.ts:74options):HttpProvider
Parameters
options
string | HttpProviderOptions
Returns
HttpProvider
Methods
on()
on<Defined in: src/provider/HttpProvider.ts:189 Register event listenerE>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.on
removeListener()
removeListener<Defined in: src/provider/HttpProvider.ts:203 Remove event listenerE>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.removeListener
request()
request(Defined in: src/provider/HttpProvider.ts:151 EIP-1193 request method Submits JSON-RPC request and returns result or throws RpcErrorargs):Promise<unknown>
Parameters
args
LegacyRequestArguments
Returns
Promise<unknown>
Implementation of
Provider.request
InMemoryProvider
Defined in: src/provider/InMemoryProvider.ts:138 In-Memory Provider implementation Provides a fully functional in-memory Ethereum node for testing and development. Uses Voltaire’s EVM for transaction execution.Features
- Local EVM execution - Full transaction simulation without external node
- State management - In-memory state with snapshot/revert capabilities
- Instant mining - Configurable block production (auto/interval/manual)
- Testing utilities - Set balances, impersonate accounts, manipulate time
- Zero latency - No network requests, instant responses
Example
Implements
Constructors
Constructor
new InMemoryProvider(Defined in: src/provider/InMemoryProvider.ts:183options):InMemoryProvider
Parameters
options
InMemoryProviderOptions = {}
Returns
InMemoryProvider
Properties
events
events: ProviderEvents
Defined in: src/provider/InMemoryProvider.ts:1112
Methods
destroy()
destroy(): void
Defined in: src/provider/InMemoryProvider.ts:1104
Cleanup resources
Returns
void
on()
on<Defined in: src/provider/InMemoryProvider.ts:1064 Register event listenerE>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.on
removeListener()
removeListener<Defined in: src/provider/InMemoryProvider.ts:1078 Remove event listenerE>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.removeListener
request()
request(Defined in: src/provider/InMemoryProvider.ts:578 EIP-1193 request methodargs):Promise<unknown>
Parameters
args
LegacyRequestArguments
Returns
Promise<unknown>
Implementation of
Provider.request
ProviderRpcError
Defined in: src/provider/events/ProviderRpcError.ts:28 Provider RPC error Extends Error with numeric code and optional data. Codes follow EIP-1193 and JSON-RPC 2.0 specifications.Example
Extends
Error
Constructors
Constructor
new ProviderRpcError(Defined in: src/provider/events/ProviderRpcError.ts:35code,message,data?):ProviderRpcError
Parameters
code
number
message
string
data?
unknown
Returns
ProviderRpcError
Overrides
Error.constructor
Properties
code
code: number
Defined in: src/provider/events/ProviderRpcError.ts:30
Numeric error code (EIP-1193 or JSON-RPC 2.0)
data?
Defined in: src/provider/events/ProviderRpcError.ts:33 Optional error dataoptionaldata:unknown
WebSocketProvider
Defined in: src/provider/WebSocketProvider.ts:55 WebSocket Provider implementation Implements Provider interface using WebSocket transport for real-time communication. Supports native pub/sub subscriptions for events.Example
Implements
Constructors
Constructor
new WebSocketProvider(Defined in: src/provider/WebSocketProvider.ts:74options):WebSocketProvider
Parameters
options
string | WebSocketProviderOptions
Returns
WebSocketProvider
Properties
events
events: ProviderEvents
Defined in: src/provider/WebSocketProvider.ts:822
Methods
connect()
connect():Defined in: src/provider/WebSocketProvider.ts:92 Connect to WebSocket serverPromise<void>
Returns
Promise<void>
debug_getRawBlock()
debug_getRawBlock(Defined in: src/provider/WebSocketProvider.ts:669blockTag,options?):Promise<Response<string>>
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<string>>
debug_traceBlockByHash()
debug_traceBlockByHash(Defined in: src/provider/WebSocketProvider.ts:643blockHash,traceOptions?,options?):Promise<Response<any[]>>
Parameters
blockHash
string
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any[]>>
debug_traceBlockByNumber()
debug_traceBlockByNumber(Defined in: src/provider/WebSocketProvider.ts:632blockTag,traceOptions?,options?):Promise<Response<any[]>>
Parameters
blockTag
string
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any[]>>
debug_traceCall()
debug_traceCall(Defined in: src/provider/WebSocketProvider.ts:654params,blockTag,traceOptions?,options?):Promise<Response<any>>
Parameters
params
any
blockTag
string = "latest"
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any>>
debug_traceTransaction()
debug_traceTransaction(Defined in: src/provider/WebSocketProvider.ts:621txHash,traceOptions?,options?):Promise<Response<any>>
Parameters
txHash
string
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any>>
disconnect()
disconnect(): void
Defined in: src/provider/WebSocketProvider.ts:178
Disconnect from WebSocket server
Returns
void
engine_exchangeCapabilities()
engine_exchangeCapabilities(Defined in: src/provider/WebSocketProvider.ts:769capabilities,options?):Promise<Response<string[]>>
Parameters
capabilities
string[]
options?
RequestOptions
Returns
Promise<Response<string[]>>
engine_exchangeTransitionConfigurationV1()
engine_exchangeTransitionConfigurationV1(Defined in: src/provider/WebSocketProvider.ts:780config,options?):Promise<Response<any>>
Parameters
config
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_forkchoiceUpdatedV1()
engine_forkchoiceUpdatedV1(Defined in: src/provider/WebSocketProvider.ts:703forkchoiceState,payloadAttributes?,options?):Promise<Response<any>>
Parameters
forkchoiceState
any
payloadAttributes?
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_forkchoiceUpdatedV2()
engine_forkchoiceUpdatedV2(Defined in: src/provider/WebSocketProvider.ts:717forkchoiceState,payloadAttributes?,options?):Promise<Response<any>>
Parameters
forkchoiceState
any
payloadAttributes?
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_forkchoiceUpdatedV3()
engine_forkchoiceUpdatedV3(Defined in: src/provider/WebSocketProvider.ts:731forkchoiceState,payloadAttributes?,options?):Promise<Response<any>>
Parameters
forkchoiceState
any
payloadAttributes?
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_getBlobsV1()
engine_getBlobsV1(Defined in: src/provider/WebSocketProvider.ts:760blobVersionedHashes,options?):Promise<Response<any[]>>
Parameters
blobVersionedHashes
string[]
options?
RequestOptions
Returns
Promise<Response<any[]>>
engine_getPayloadBodiesByHashV1()
engine_getPayloadBodiesByHashV1(Defined in: src/provider/WebSocketProvider.ts:793blockHashes,options?):Promise<Response<any[]>>
Parameters
blockHashes
string[]
options?
RequestOptions
Returns
Promise<Response<any[]>>
engine_getPayloadBodiesByRangeV1()
engine_getPayloadBodiesByRangeV1(Defined in: src/provider/WebSocketProvider.ts:805start,count,options?):Promise<Response<any[]>>
Parameters
start
string
count
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
engine_getPayloadV1()
engine_getPayloadV1(Defined in: src/provider/WebSocketProvider.ts:745payloadId,options?):Promise<Response<any>>
Parameters
payloadId
string
options?
RequestOptions
Returns
Promise<Response<any>>
engine_getPayloadV2()
engine_getPayloadV2(Defined in: src/provider/WebSocketProvider.ts:750payloadId,options?):Promise<Response<any>>
Parameters
payloadId
string
options?
RequestOptions
Returns
Promise<Response<any>>
engine_getPayloadV3()
engine_getPayloadV3(Defined in: src/provider/WebSocketProvider.ts:755payloadId,options?):Promise<Response<any>>
Parameters
payloadId
string
options?
RequestOptions
Returns
Promise<Response<any>>
engine_newPayloadV1()
engine_newPayloadV1(Defined in: src/provider/WebSocketProvider.ts:678payload,options?):Promise<Response<any>>
Parameters
payload
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_newPayloadV2()
engine_newPayloadV2(Defined in: src/provider/WebSocketProvider.ts:684payload,options?):Promise<Response<any>>
Parameters
payload
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_newPayloadV3()
engine_newPayloadV3(Defined in: src/provider/WebSocketProvider.ts:689payload,expectedBlobVersionedHashes?,parentBeaconBlockRoot?,options?):Promise<Response<any>>
Parameters
payload
any
expectedBlobVersionedHashes?
string[]
parentBeaconBlockRoot?
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_accounts()
eth_accounts(Defined in: src/provider/WebSocketProvider.ts:326options?):Promise<Response<string[]>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string[]>>
eth_blobBaseFee()
eth_blobBaseFee(Defined in: src/provider/WebSocketProvider.ts:330options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_blockNumber()
eth_blockNumber(Defined in: src/provider/WebSocketProvider.ts:334options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_call()
eth_call(Defined in: src/provider/WebSocketProvider.ts:339params,blockTag,options?):Promise<Response<string>>
Parameters
params
any
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_chainId()
eth_chainId(Defined in: src/provider/WebSocketProvider.ts:343options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_coinbase()
eth_coinbase(Defined in: src/provider/WebSocketProvider.ts:347options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_createAccessList()
eth_createAccessList(Defined in: src/provider/WebSocketProvider.ts:351params,blockTag,options?):Promise<Response<any>>
Parameters
params
any
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<any>>
eth_estimateGas()
eth_estimateGas(Defined in: src/provider/WebSocketProvider.ts:366params,options?):Promise<Response<string>>
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_feeHistory()
eth_feeHistory(Defined in: src/provider/WebSocketProvider.ts:370blockCount,newestBlock,rewardPercentiles?,options?):Promise<Response<any>>
Parameters
blockCount
string
newestBlock
string
rewardPercentiles?
number[]
options?
RequestOptions
Returns
Promise<Response<any>>
eth_gasPrice()
eth_gasPrice(Defined in: src/provider/WebSocketProvider.ts:383options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getBalance()
eth_getBalance(Defined in: src/provider/WebSocketProvider.ts:387address,blockTag,options?):Promise<Response<string>>
Parameters
address
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getBlockByHash()
eth_getBlockByHash(Defined in: src/provider/WebSocketProvider.ts:399blockHash,fullTransactions,options?):Promise<Response<any>>
Parameters
blockHash
string
fullTransactions
boolean = false
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getBlockByNumber()
eth_getBlockByNumber(Defined in: src/provider/WebSocketProvider.ts:412blockTag,fullTransactions,options?):Promise<Response<any>>
Parameters
blockTag
string
fullTransactions
boolean = false
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getBlockReceipts()
eth_getBlockReceipts(Defined in: src/provider/WebSocketProvider.ts:425blockTag,options?):Promise<Response<any[]>>
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getBlockTransactionCountByHash()
eth_getBlockTransactionCountByHash(Defined in: src/provider/WebSocketProvider.ts:430blockHash,options?):Promise<Response<string>>
Parameters
blockHash
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getBlockTransactionCountByNumber()
eth_getBlockTransactionCountByNumber(Defined in: src/provider/WebSocketProvider.ts:441blockTag,options?):Promise<Response<string>>
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getCode()
eth_getCode(Defined in: src/provider/WebSocketProvider.ts:452address,blockTag,options?):Promise<Response<string>>
Parameters
address
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getFilterChanges()
eth_getFilterChanges(Defined in: src/provider/WebSocketProvider.ts:456filterId,options?):Promise<Response<any[]>>
Parameters
filterId
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getFilterLogs()
eth_getFilterLogs(Defined in: src/provider/WebSocketProvider.ts:461filterId,options?):Promise<Response<any[]>>
Parameters
filterId
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getLogs()
eth_getLogs(Defined in: src/provider/WebSocketProvider.ts:467params,options?):Promise<Response<any[]>>
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getProof()
eth_getProof(Defined in: src/provider/WebSocketProvider.ts:472address,storageKeys,blockTag,options?):Promise<Response<any>>
Parameters
address
string
storageKeys
string[]
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getStorageAt()
eth_getStorageAt(Defined in: src/provider/WebSocketProvider.ts:486address,position,blockTag,options?):Promise<Response<string>>
Parameters
address
string
position
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getTransactionByBlockHashAndIndex()
eth_getTransactionByBlockHashAndIndex(Defined in: src/provider/WebSocketProvider.ts:499blockHash,index,options?):Promise<Response<any>>
Parameters
blockHash
string
index
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getTransactionByBlockNumberAndIndex()
eth_getTransactionByBlockNumberAndIndex(Defined in: src/provider/WebSocketProvider.ts:512blockTag,index,options?):Promise<Response<any>>
Parameters
blockTag
string
index
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getTransactionByHash()
eth_getTransactionByHash(Defined in: src/provider/WebSocketProvider.ts:525txHash,options?):Promise<Response<any>>
Parameters
txHash
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getTransactionCount()
eth_getTransactionCount(Defined in: src/provider/WebSocketProvider.ts:530address,blockTag,options?):Promise<Response<string>>
Parameters
address
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getTransactionReceipt()
eth_getTransactionReceipt(Defined in: src/provider/WebSocketProvider.ts:542txHash,options?):Promise<Response<any>>
Parameters
txHash
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getUncleCountByBlockHash()
eth_getUncleCountByBlockHash(Defined in: src/provider/WebSocketProvider.ts:547blockHash,options?):Promise<Response<string>>
Parameters
blockHash
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getUncleCountByBlockNumber()
eth_getUncleCountByBlockNumber(Defined in: src/provider/WebSocketProvider.ts:555blockTag,options?):Promise<Response<string>>
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_maxPriorityFeePerGas()
eth_maxPriorityFeePerGas(Defined in: src/provider/WebSocketProvider.ts:563options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_newBlockFilter()
eth_newBlockFilter(Defined in: src/provider/WebSocketProvider.ts:567options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_newFilter()
eth_newFilter(Defined in: src/provider/WebSocketProvider.ts:572params,options?):Promise<Response<string>>
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_newPendingTransactionFilter()
eth_newPendingTransactionFilter(Defined in: src/provider/WebSocketProvider.ts:576options?):Promise<Response<string>>
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_sendRawTransaction()
eth_sendRawTransaction(Defined in: src/provider/WebSocketProvider.ts:584signedTx,options?):Promise<Response<string>>
Parameters
signedTx
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_sendTransaction()
eth_sendTransaction(Defined in: src/provider/WebSocketProvider.ts:589params,options?):Promise<Response<string>>
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_sign()
eth_sign(Defined in: src/provider/WebSocketProvider.ts:593address,data,options?):Promise<Response<string>>
Parameters
address
string
data
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_signTransaction()
eth_signTransaction(Defined in: src/provider/WebSocketProvider.ts:598params,options?):Promise<Response<string>>
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_simulateV1()
eth_simulateV1(Defined in: src/provider/WebSocketProvider.ts:603params,options?):Promise<Response<any>>
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<any>>
eth_syncing()
eth_syncing(Defined in: src/provider/WebSocketProvider.ts:608options?):Promise<Response<any>>
Parameters
options?
RequestOptions
Returns
Promise<Response<any>>
eth_uninstallFilter()
eth_uninstallFilter(Defined in: src/provider/WebSocketProvider.ts:613filterId,options?):Promise<Response<boolean>>
Parameters
filterId
string
options?
RequestOptions
Returns
Promise<Response<boolean>>
on()
on<Defined in: src/provider/WebSocketProvider.ts:283 Register event listener (EIP-1193)E>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.on
removeListener()
removeListener<Defined in: src/provider/WebSocketProvider.ts:298 Remove event listener (EIP-1193)E>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.removeListener
request()
request(Defined in: src/provider/WebSocketProvider.ts:194 EIP-1193 request method (public interface) Submits JSON-RPC request and returns result or throws RpcErrorargs):Promise<unknown>
Parameters
args
LegacyRequestArguments
Returns
Promise<unknown>
Implementation of
Provider.request
Interfaces
EIP1193EventEmitter
Defined in: src/provider/events/EIP1193Events.ts:123 Generic event emitter interfaceType Parameters
TEventMap
TEventMap extends Record<string, (…args) => void> = EIP1193EventMap
Event map defining available events
Methods
emit()
emit(Defined in: src/provider/events/EIP1193Events.ts:148eventName, …args):boolean
Internal
Emit event (internal use)
Parameters
eventName
keyofTEventMap
args
…any[]
Returns
boolean
on()
on<Defined in: src/provider/events/EIP1193Events.ts:130 Register event listenerTEvent>(event,listener):this
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent
listener
TEventMap[TEvent]
Returns
this
removeListener()
removeListener<Defined in: src/provider/events/EIP1193Events.ts:138 Remove event listenerTEvent>(event,listener):this
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent
listener
TEventMap[TEvent]
Returns
this
EIP1193EventMap
Defined in: src/provider/events/EIP1193Events.ts:38 Standard EIP-1193 event map Defines the five standard events specified in EIP-1193. Providers MAY extend this with custom events.Example
Extends
Record<string, (…args) =>void>
Indexable
[key: string]: (…args) => void
Methods
accountsChanged()
accountsChanged(Defined in: src/provider/events/EIP1193Events.ts:99 Emitted when available accounts changeaccounts):void
Parameters
accounts
string[]
New accounts array (per eth_accounts)
Returns
void
Example
chainChanged()
chainChanged(Defined in: src/provider/events/EIP1193Events.ts:81 Emitted when active chain changeschainId):void
Parameters
chainId
string
New chain ID (hex string per eth_chainId)
Returns
void
Example
connect()
connect(Defined in: src/provider/events/EIP1193Events.ts:53 Emitted when Provider connects to a chainconnectInfo):void
Parameters
connectInfo
ProviderConnectInfo
Chain connection information
Returns
void
Example
disconnect()
disconnect(Defined in: src/provider/events/EIP1193Events.ts:67 Emitted when Provider disconnects from ALL chainserror):void
Parameters
error
ProviderRpcError
Disconnect error (code from CloseEvent spec)
Returns
void
Example
message()
message(Defined in: src/provider/events/EIP1193Events.ts:115 Emitted for arbitrary notifications (subscriptions, etc)message):void
Parameters
message
ProviderMessage
Provider message
Returns
void
Example
EIP1193RequestOptions
Defined in: src/provider/request/EIP1193RequestOptions.ts:20 Optional request configurationExample
Properties
retryCount?
Defined in: src/provider/request/EIP1193RequestOptions.ts:22 Max number of retries (default: 0)optionalretryCount:number
retryDelay?
Defined in: src/provider/request/EIP1193RequestOptions.ts:24 Base delay between retries in ms (default: 0)optionalretryDelay:number
timeout?
Defined in: src/provider/request/EIP1193RequestOptions.ts:26 Request timeout in ms (optional)optionaltimeout:number
EthSubscription
Defined in: src/provider/events/EIP1193Provider.ts:36 Ethereum subscription message Specialized message for eth_subscribe notificationsExtends
Properties
data
Defined in: src/provider/events/EIP1193Provider.ts:38 Message payloadreadonlydata:object
result
result: unknown
subscription
subscription: string
Overrides
ProviderMessage.data
type
Defined in: src/provider/events/EIP1193Provider.ts:37 Message type identifierreadonlytype:"eth_subscription"
Overrides
ProviderMessage.type
HttpProviderOptions
Defined in: src/provider/HttpProvider.ts:32 HTTP configuration optionsProperties
headers?
Defined in: src/provider/HttpProvider.ts:36 Optional HTTP headersoptionalheaders:Record<string,string>
retry?
Defined in: src/provider/HttpProvider.ts:40 Default retry attemptsoptionalretry:number
retryDelay?
Defined in: src/provider/HttpProvider.ts:42 Default retry delay in msoptionalretryDelay:number
timeout?
Defined in: src/provider/HttpProvider.ts:38 Default request timeout in msoptionaltimeout:number
url
url: string
Defined in: src/provider/HttpProvider.ts:34
JSON-RPC endpoint URL
InMemoryProviderOptions
Defined in: src/provider/InMemoryProvider.ts:28 In-Memory Provider configuration optionsProperties
accounts?
Defined in: src/provider/InMemoryProvider.ts:36 Initial accounts with balancesoptionalaccounts:object[]
address
address: string
balance
balance: string
privateKey?
optionalprivateKey:string
baseFeePerGas?
Defined in: src/provider/InMemoryProvider.ts:46 Base fee per gas (default: 1000000000 = 1 gwei)optionalbaseFeePerGas:bigint
blockGasLimit?
Defined in: src/provider/InMemoryProvider.ts:44 Block gas limit (default: 30000000)optionalblockGasLimit:bigint
blockNumber?
Defined in: src/provider/InMemoryProvider.ts:42 Initial block number (default: 0)optionalblockNumber:bigint
chainId?
Defined in: src/provider/InMemoryProvider.ts:30 Chain ID (default: 1)optionalchainId:number
mining?
Defined in: src/provider/InMemoryProvider.ts:32 Mining mode: auto, interval, or manual (default: auto)optionalmining:"interval"|"auto"|"manual"
miningInterval?
Defined in: src/provider/InMemoryProvider.ts:34 Mining interval in ms (when mode is ‘interval’)optionalminingInterval:number
LegacyProviderConnectInfo
Defined in: src/provider/types.ts:78 EIP-1193 chain information for connect eventProperties
chainId
chainId: string
Defined in: src/provider/types.ts:80
Chain ID as hex string
LegacyProviderEventMap
Defined in: src/provider/types.ts:86 EIP-1193 provider eventsProperties
accountsChanged
accountsChanged: [string[]]
Defined in: src/provider/types.ts:88
Emitted when accounts change
chainChanged
chainChanged: [string]
Defined in: src/provider/types.ts:90
Emitted when chain changes
connect
connect: [LegacyProviderConnectInfo]
Defined in: src/provider/types.ts:92
Emitted when provider connects
disconnect
disconnect: [RpcError]
Defined in: src/provider/types.ts:94
Emitted when provider disconnects
message
message: [object]
Defined in: src/provider/types.ts:96
Emitted for custom messages
LegacyRequestArguments
Defined in: src/provider/types.ts:12 EIP-1193 request argumentsProperties
method
Defined in: src/provider/types.ts:14 JSON-RPC method namereadonlymethod:string
params?
Defined in: src/provider/types.ts:16 Method parameters (array or object)readonlyoptionalparams:object| readonlyunknown[]
Provider
Defined in: src/provider/Provider.ts:40 EIP-1193 Provider interface for Ethereum JSON-RPC communication Compliant with EIP-1193 specification:- Single request() method for all RPC calls
- EventEmitter for blockchain events (accountsChanged, chainChanged, etc.)
- Throws RpcError on failures (does not return error objects)
Example
Methods
on()
on<Defined in: src/provider/Provider.ts:57 Register event listenerE>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
Event name
listener
(…args) => void
Event listener callback
Returns
this
Provider instance for chaining
removeListener()
removeListener<Defined in: src/provider/Provider.ts:69 Remove event listenerE>(event,listener):this
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
Event name
listener
(…args) => void
Event listener callback to remove
Returns
this
Provider instance for chaining
request()
request(Defined in: src/provider/Provider.ts:48 Submit JSON-RPC request to providerargs):Promise<unknown>
Parameters
args
LegacyRequestArguments
Request arguments containing method and params
Returns
Promise<unknown>
Promise resolving to the result
Throws
RpcError on failureProviderConnectInfo
Defined in: src/provider/events/EIP1193Provider.ts:14 Connection information Provided in ‘connect’ eventProperties
chainId
Defined in: src/provider/events/EIP1193Provider.ts:16 Chain ID as hex string (per eth_chainId)readonlychainId:string
ProviderMessage
Defined in: src/provider/events/EIP1193Provider.ts:24 Provider message Used for ‘message’ event (subscriptions, notifications)Extended by
Properties
data
Defined in: src/provider/events/EIP1193Provider.ts:28 Message payloadreadonlydata:unknown
type
Defined in: src/provider/events/EIP1193Provider.ts:26 Message type identifierreadonlytype:string
RequestArguments
Defined in: src/provider/request/RequestArguments.ts:29 EIP-1193 request argumentsExample
Type Parameters
TRpcSchema
TRpcSchema extends RpcSchema
RPC schema
TMethod
TMethod extends RpcMethodNames<TRpcSchema> = RpcMethodNames<TRpcSchema>
Specific method name
Properties
method
Defined in: src/provider/request/RequestArguments.ts:33readonlymethod:TMethod
params?
Defined in: src/provider/request/RequestArguments.ts:34readonlyoptionalparams:RpcMethodParameters<TRpcSchema,TMethod>
RequestOptions
Defined in: src/provider/types.ts:50 Optional configuration for provider requestsProperties
retry?
Defined in: src/provider/types.ts:54 Number of retry attempts on failureoptionalretry:number
retryDelay?
Defined in: src/provider/types.ts:56 Delay between retries in millisecondsoptionalretryDelay:number
timeout?
Defined in: src/provider/types.ts:52 Request timeout in millisecondsoptionaltimeout:number
RpcError
Defined in: src/provider/types.ts:22 JSON-RPC error responseProperties
code
code: number
Defined in: src/provider/types.ts:24
Error code (EIP-1193 or JSON-RPC 2.0)
data?
Defined in: src/provider/types.ts:28 Optional error dataoptionaldata:unknown
message
message: string
Defined in: src/provider/types.ts:26
Human-readable error message
TypedProvider
Defined in: src/provider/TypedProvider.ts:30 Generic Ethereum Provider interfaceExample
Type Parameters
TRpcSchema
TRpcSchema extends RpcSchema = RpcSchema
RPC schema defining supported methods
TEventMap
TEventMap extends Record<string, (…args) => void> = EIP1193EventMap
Event map defining supported events (defaults to standard EIP-1193)
Properties
request
request:Defined in: src/provider/TypedProvider.ts:50 Execute JSON-RPC requestEIP1193RequestFn<TRpcSchema>
Param
Request arguments (method + params)Param
Optional request configuration (retry, timeout)Returns
Promise resolving to method-specific return typeExample
Methods
on()
on<Defined in: src/provider/TypedProvider.ts:65 Register event listenerTEvent>(event,listener):this
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent
Event name
listener
TEventMap[TEvent]
Event handler
Returns
this
Example
removeListener()
removeListener<Defined in: src/provider/TypedProvider.ts:76 Remove event listenerTEvent>(event,listener):this
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent
Event name
listener
TEventMap[TEvent]
Event handler to remove
Returns
this
WebSocketProviderOptions
Defined in: src/provider/WebSocketProvider.ts:23 WebSocket configuration optionsProperties
maxReconnectAttempts?
Defined in: src/provider/WebSocketProvider.ts:33 Max reconnect attempts (0 = infinite)optionalmaxReconnectAttempts:number
protocols?
Defined in: src/provider/WebSocketProvider.ts:27 WebSocket protocolsoptionalprotocols:string|string[]
reconnect?
Defined in: src/provider/WebSocketProvider.ts:29 Reconnect automatically on disconnectoptionalreconnect:boolean
reconnectDelay?
Defined in: src/provider/WebSocketProvider.ts:31 Reconnect delay in msoptionalreconnectDelay:number
url
url: string
Defined in: src/provider/WebSocketProvider.ts:25
WebSocket endpoint URL
Type Aliases
BlockTag
BlockTag =Defined in: src/provider/types.ts:62 Block tag for specifying block context"latest"|"earliest"|"pending"|"safe"|"finalized"|string
DerivedRpcSchema
DerivedRpcSchema<Defined in: src/provider/schemas/DerivedRpcSchema.ts:38 Derive RPC schema from base and override Allows extending a base schema with additional methods or overriding existing ones.TBase,TOverride> =TOverrideextendsRpcSchema?TOverride:TBaseextendsRpcSchema?TBase:RpcSchema
Type Parameters
TBase
TBase extends RpcSchema | undefined
Base schema
TOverride
TOverride extends RpcSchemaOverride = undefined
Override schema (optional)
Example
EIP1193Provider
EIP1193Provider =Defined in: src/provider/TypedProvider.ts:87 Standard EIP-1193 provider type alias Uses generic RpcSchema (any methods) with standard EIP-1193 eventsTypedProvider<RpcSchema,EIP1193EventMap>
EIP1193RequestFn()
EIP1193RequestFn<Defined in: src/provider/request/EIP1193RequestFn.ts:45 Type-safe EIP-1193 request functionTRpcSchema> = <TMethod>(args,options?) =>Promise<RpcMethodReturnType<TRpcSchema,TMethod>>
Type Parameters
TRpcSchema
TRpcSchema extends RpcSchema
RPC schema defining supported methods
Generic request function that:
- Accepts method name and parameters
- Returns Promise with method-specific return type
- Supports optional request configuration
Type Parameters
TMethod
TMethod extends RpcMethodNames<TRpcSchema>
Parameters
args
RequestArguments<TRpcSchema, TMethod>
options?
EIP1193RequestOptions
Returns
Promise<RpcMethodReturnType<TRpcSchema, TMethod>>
Example
ProviderEvent
ProviderEvent = keyof LegacyProviderEventMap
Defined in: src/provider/types.ts:102
Event names for EIP-1193 provider
ProviderEventListener()
ProviderEventListener = (…Defined in: src/provider/types.ts:73 EIP-1193 event listenerargs) =>void
Parameters
args
…unknown[]
Returns
void
RpcMethodNames
RpcMethodNames<Defined in: src/provider/RpcSchema.ts:49 Extract method names from schemaTSchema> =TSchema[number]["Method"]
Type Parameters
TSchema
TSchema extends RpcSchema
Example
RpcMethodParameters
RpcMethodParameters<Defined in: src/provider/RpcSchema.ts:61 Extract parameters for specific methodTSchema,TMethod> =Extract<TSchema[number], {Method:TMethod; }>["Parameters"]
Type Parameters
TSchema
TSchema extends RpcSchema
TMethod
TMethod extends RpcMethodNames<TSchema>
Example
RpcMethodReturnType
RpcMethodReturnType<Defined in: src/provider/RpcSchema.ts:75 Extract return type for specific methodTSchema,TMethod> =Extract<TSchema[number], {Method:TMethod; }>["ReturnType"]
Type Parameters
TSchema
TSchema extends RpcSchema
TMethod
TMethod extends RpcMethodNames<TSchema>
Example
RpcSchema
RpcSchema = readonly object[]
Defined in: src/provider/RpcSchema.ts:34
Base RPC schema type
Readonly array of method definitions. Each entry maps:
- Method: JSON-RPC method name
- Parameters: Input parameter types (optional)
- ReturnType: Expected return type
Example
RpcSchemaOverride
RpcSchemaOverride =Defined in: src/provider/schemas/DerivedRpcSchema.ts:14 Schema override typeRpcSchema|undefined
VoltaireRpcSchema
VoltaireRpcSchema = readonly [{Defined in: src/provider/schemas/VoltaireRpcSchema.ts:41 Voltaire’s default RPC schema Combines all JSON-RPC methods from:Method:"eth_accounts";Parameters: [];ReturnType:string[]; }, {Method:"eth_blobBaseFee";Parameters: [];ReturnType:string; }, {Method:"eth_blockNumber";Parameters: [];ReturnType:string; }, {Method:"eth_call";Parameters: [{data?:string;from?:string;gas?:string;gasPrice?:string;to:string;value?:string; },string];ReturnType:string; }, {Method:"eth_chainId";Parameters: [];ReturnType:string; }, {Method:"eth_coinbase";Parameters: [];ReturnType:string; }, {Method:"eth_createAccessList";Parameters: [{data?:string;from?:string;gas?:string;gasPrice?:string;to:string;value?:string; },string];ReturnType: {accessList:object[];gasUsed:string; }; }, {Method:"eth_estimateGas";Parameters: [{data?:string;from?:string;gas?:string;gasPrice?:string;to?:string;value?:string; },string?];ReturnType:string; }, {Method:"eth_feeHistory";Parameters: [string,string,number[]?];ReturnType: {baseFeePerGas:string[];gasUsedRatio:number[];oldestBlock:string;reward?:string[][]; }; }, {Method:"eth_gasPrice";Parameters: [];ReturnType:string; }, {Method:"eth_getBalance";Parameters: [string,string];ReturnType:string; }, {Method:"eth_getBlockByHash";Parameters: [string,boolean];ReturnType:BlockType|null; }, {Method:"eth_getBlockByNumber";Parameters: [string,boolean];ReturnType:BlockType|null; }, {Method:"eth_getBlockReceipts";Parameters: [string];ReturnType:ReceiptType[] |null; }, {Method:"eth_getBlockTransactionCountByHash";Parameters: [string];ReturnType:string; }, {Method:"eth_getBlockTransactionCountByNumber";Parameters: [string];ReturnType:string; }, {Method:"eth_getCode";Parameters: [string,string];ReturnType:string; }, {Method:"eth_getFilterChanges";Parameters: [string];ReturnType:EventLogType[] |string[]; }, {Method:"eth_getFilterLogs";Parameters: [string];ReturnType:EventLogType[]; }, {Method:"eth_getLogs";Parameters: [{address?:string|string[];blockHash?:string;fromBlock?:string;toBlock?:string;topics?: (string|string[] |null)[]; }];ReturnType:EventLogType[]; }, {Method:"eth_getProof";Parameters: [string,string[],string];ReturnType: {accountProof:string[];balance:string;codeHash:string;nonce:string;storageHash:string;storageProof:object[]; }; }, {Method:"eth_getStorageAt";Parameters: [string,string,string];ReturnType:string; }, {Method:"eth_getTransactionByBlockHashAndIndex";Parameters: [string,string];ReturnType:Any|null; }, {Method:"eth_getTransactionByBlockNumberAndIndex";Parameters: [string,string];ReturnType:Any|null; }, {Method:"eth_getTransactionByHash";Parameters: [string];ReturnType:Any|null; }, {Method:"eth_getTransactionCount";Parameters: [string,string];ReturnType:string; }, {Method:"eth_getTransactionReceipt";Parameters: [string];ReturnType:ReceiptType|null; }, {Method:"eth_getUncleByBlockHashAndIndex";Parameters: [string,string];ReturnType:BlockType|null; }, {Method:"eth_getUncleByBlockNumberAndIndex";Parameters: [string,string];ReturnType:BlockType|null; }, {Method:"eth_getUncleCountByBlockHash";Parameters: [string];ReturnType:string; }, {Method:"eth_getUncleCountByBlockNumber";Parameters: [string];ReturnType:string; }, {Method:"eth_getWork";Parameters: [];ReturnType: [string,string,string]; }, {Method:"eth_hashrate";Parameters: [];ReturnType:string; }, {Method:"eth_maxPriorityFeePerGas";Parameters: [];ReturnType:string; }, {Method:"eth_mining";Parameters: [];ReturnType:boolean; }, {Method:"eth_newBlockFilter";Parameters: [];ReturnType:string; }, {Method:"eth_newFilter";Parameters: [{address?:string|string[];fromBlock?:string;toBlock?:string;topics?: (string|string[] |null)[]; }];ReturnType:string; }, {Method:"eth_newPendingTransactionFilter";Parameters: [];ReturnType:string; }, {Method:"eth_protocolVersion";Parameters: [];ReturnType:string; }, {Method:"eth_sendRawTransaction";Parameters: [string];ReturnType:string; }, {Method:"eth_sendTransaction";Parameters: [{data?:string;from:string;gas?:string;gasPrice?:string;nonce?:string;to?:string;value?:string; }];ReturnType:string; }, {Method:"eth_sign";Parameters: [string,string];ReturnType:string; }, {Method:"eth_signTransaction";Parameters: [{data?:string;from:string;gas?:string;gasPrice?:string;nonce?:string;to?:string;value?:string; }];ReturnType:string; }, {Method:"eth_simulateV1";Parameters: [unknown,string?];ReturnType:unknown[]; }, {Method:"eth_submitHashrate";Parameters: [string,string];ReturnType:boolean; }, {Method:"eth_submitWork";Parameters: [string,string,string];ReturnType:boolean; }, {Method:"eth_subscribe";Parameters: [string,...unknown[]];ReturnType:string; }, {Method:"eth_syncing";Parameters: [];ReturnType:false| {currentBlock:string;highestBlock:string;startingBlock:string; }; }, {Method:"eth_uninstallFilter";Parameters: [string];ReturnType:boolean; }, {Method:"eth_unsubscribe";Parameters: [string];ReturnType:boolean; }, {Method:"debug_getBadBlocks";Parameters: [];ReturnType:unknown[]; }, {Method:"debug_getRawBlock";Parameters: [string];ReturnType:string; }, {Method:"debug_getRawHeader";Parameters: [string];ReturnType:string; }, {Method:"debug_getRawReceipts";Parameters: [string];ReturnType:string[]; }, {Method:"debug_getRawTransaction";Parameters: [string];ReturnType:string; }, {Method:"engine_exchangeCapabilities";Parameters: [string[]];ReturnType:string[]; }, {Method:"engine_exchangeTransitionConfigurationV1";Parameters: [unknown];ReturnType:unknown; }, {Method:"engine_forkchoiceUpdatedV1";Parameters: [unknown,unknown?];ReturnType:unknown; }, {Method:"engine_forkchoiceUpdatedV2";Parameters: [unknown,unknown?];ReturnType:unknown; }, {Method:"engine_forkchoiceUpdatedV3";Parameters: [unknown,unknown?];ReturnType:unknown; }, {Method:"engine_getBlobsV1";Parameters: [string[]];ReturnType:unknown[]; }, {Method:"engine_getBlobsV2";Parameters: [string[]];ReturnType:unknown[]; }, {Method:"engine_getPayloadBodiesByHashV1";Parameters: [string[]];ReturnType:unknown[]; }, {Method:"engine_getPayloadBodiesByRangeV1";Parameters: [string,string];ReturnType:unknown[]; }, {Method:"engine_getPayloadV1";Parameters: [string];ReturnType:unknown; }, {Method:"engine_getPayloadV2";Parameters: [string];ReturnType:unknown; }, {Method:"engine_getPayloadV3";Parameters: [string];ReturnType:unknown; }, {Method:"engine_getPayloadV4";Parameters: [string];ReturnType:unknown; }, {Method:"engine_getPayloadV5";Parameters: [string];ReturnType:unknown; }, {Method:"engine_getPayloadV6";Parameters: [string];ReturnType:unknown; }, {Method:"engine_newPayloadV1";Parameters: [unknown];ReturnType:unknown; }, {Method:"engine_newPayloadV2";Parameters: [unknown,string[]?];ReturnType:unknown; }, {Method:"engine_newPayloadV3";Parameters: [unknown,string[]?,string?];ReturnType:unknown; }, {Method:"engine_newPayloadV4";Parameters: [unknown,string[]?,string?];ReturnType:unknown; }, {Method:"engine_newPayloadV5";Parameters: [unknown,string[]?,string?];ReturnType:unknown; }, {Method:"web3_clientVersion";Parameters: [];ReturnType:string; }, {Method:"web3_sha3";Parameters: [string];ReturnType:string; }, {Method:"net_version";Parameters: [];ReturnType:string; }, {Method:"net_listening";Parameters: [];ReturnType:boolean; }, {Method:"net_peerCount";Parameters: [];ReturnType:string; }, {Method:"txpool_status";Parameters: [];ReturnType: {pending:string;queued:string; }; }, {Method:"txpool_content";Parameters: [];ReturnType: {pending:Record<string,Record<string,unknown>>;queued:Record<string,Record<string,unknown>>; }; }, {Method:"txpool_inspect";Parameters: [];ReturnType: {pending:Record<string,Record<string,string>>;queued:Record<string,Record<string,string>>; }; }, {Method:"anvil_impersonateAccount";Parameters: [string];ReturnType:null; }, {Method:"anvil_stopImpersonatingAccount";Parameters: [string];ReturnType:null; }, {Method:"anvil_setBalance";Parameters: [string,string];ReturnType:null; }, {Method:"anvil_setCode";Parameters: [string,string];ReturnType:null; }, {Method:"anvil_setNonce";Parameters: [string,string];ReturnType:null; }, {Method:"anvil_setStorageAt";Parameters: [string,string,string];ReturnType:null; }, {Method:"evm_increaseTime";Parameters: [number];ReturnType:string; }, {Method:"evm_mine";Parameters: [{blocks?:number;timestamp?:number; }?];ReturnType:string; }, {Method:"evm_revert";Parameters: [string];ReturnType:boolean; }, {Method:"evm_setAutomine";Parameters: [boolean];ReturnType:null; }, {Method:"evm_setBlockGasLimit";Parameters: [string];ReturnType:boolean; }, {Method:"evm_setIntervalMining";Parameters: [number];ReturnType:null; }, {Method:"evm_setNextBlockTimestamp";Parameters: [number];ReturnType:null; }, {Method:"evm_snapshot";Parameters: [];ReturnType:string; }]
- eth namespace (52 methods)
- debug namespace
- engine namespace
- web3 namespace
- net namespace
- txpool namespace
- anvil namespace (test methods)
Example
Variables
EIP1193ErrorCode
Defined in: src/provider/events/ProviderRpcError.ts:46 Standard EIP-1193 error codesconstEIP1193ErrorCode:object
Type Declaration
ChainDisconnected
Provider not connected to requested chainreadonlyChainDisconnected:4901=4901
Disconnected
Provider disconnected from all chainsreadonlyDisconnected:4900=4900
Unauthorized
Method/account not authorizedreadonlyUnauthorized:4100=4100
UnsupportedMethod
Method not supportedreadonlyUnsupportedMethod:4200=4200
UserRejectedRequest
User rejected the requestreadonlyUserRejectedRequest:4001=4001
JsonRpcErrorCode
Defined in: src/provider/events/ProviderRpcError.ts:62 JSON-RPC 2.0 error codesconstJsonRpcErrorCode:object
Type Declaration
InternalError
Internal errorreadonlyInternalError:-32603=-32603
InvalidParams
Invalid parametersreadonlyInvalidParams:-32602=-32602
InvalidRequest
Invalid request objectreadonlyInvalidRequest:-32600=-32600
MethodNotFound
Method not foundreadonlyMethodNotFound:-32601=-32601
ParseError
Invalid JSONreadonlyParseError:-32700=-32700
Functions
fromEvm()
fromEvm(Defined in: src/provider/fromEvm.ts:189 Create a Provider from an EVM host-like object. Accepts either a BrandedHost directly or an object with aevmOrOptions):Provider
host property.
Parameters
evmOrOptions
BrandedHost | FromEvmOptions
Returns
Provider
