EVM Wallets & Addresses
Components for address derivation, balance queries, derivation path computation, and chain identification.
White Rabbit runs on shared infrastructure with a shared outbound IP pool. Public RPC URLs enforce rate limits per IP — under load this can cause errors across all workspaces sharing that IP. Use a private endpoint (Alchemy, Infura, QuickNode, or self-hosted). See Connecting to any chain.
COMPUTE_EVM_ADDRESS
COMPUTE_EVM_ADDRESS Workflow ComponentDerive the EVM address from a compressed secp256k1 public key. Use after COMPUTE_PUBLIC_KEY to get the spendable address.
Config
None.
Inputs
| Field | Type | Description |
|---|---|---|
publicKey | string | Compressed public key (hex, 33 bytes) |
Outputs
| Field | Type | Description |
|---|---|---|
address | string | EVM address (0x..., checksummed) |
GET_EVM_DERIVATION_PATH
GET_EVM_DERIVATION_PATH Workflow ComponentGenerate a standard BIP-44 derivation path for a given address index. Feeds directly into COMPUTE_PUBLIC_KEY.
Config
| Field | Type | Default | Description |
|---|---|---|---|
hardened | boolean | true | Apply hardened derivation (BIP-44 standard). Disable only for non-standard paths |
Inputs
| Field | Type | Default | Description |
|---|---|---|---|
accountIndex | number | 0 | BIP-44 account index (the account level, typically 0) |
changeIndex | number | 0 | BIP-44 change index (0 = external/receiving, 1 = internal/change) |
addressIndex | number | — | BIP-44 address index (e.g. 0 for the first address) |
Outputs
| Field | Type | Description |
|---|---|---|
derivationPath | number[] | BIP-44 derivation path as an array of 5 integers (e.g. [44, 60, 0, 0, 0]) |
GET_EVM_ACCOUNT_BALANCE
GET_EVM_ACCOUNT_BALANCE Workflow ComponentFetch the native ETH balance or ERC-20 token balance for an address.
Config
None.
Inputs
| Field | Type | Description |
|---|---|---|
jsonRpcUrl | string | JSON-RPC endpoint |
tokenAddress | string | Token contract address. Use 0x0000000000000000000000000000000000000000 for native ETH |
account | string | Address to check |
Outputs
| Field | Type | Description |
|---|---|---|
balance | string | Balance as a decimal string (in smallest unit, e.g. wei) |
SDK example
import { WorkspaceClient, ComponentModule } from 'caller-sdk';
const workspace = new WorkspaceClient({ apiKey: process.env.WR_API_KEY! });
const { balance } = await workspace.call(ComponentModule.GET_EVM_ACCOUNT_BALANCE, {
jsonRpcUrl: 'https://eth-mainnet.g.alchemy.com/v2/KEY',
tokenAddress: '0x0000000000000000000000000000000000000000',
account: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
}).promise();
// balance => "1234500000000000000" (in wei)
GET_EVM_CHAIN_ID
GET_EVM_CHAIN_ID Workflow ComponentRead the chainId from a JSON-RPC endpoint. Useful for EIP-712 typed data that requires the chain ID.
Config
None.
Inputs
| Field | Type | Description |
|---|---|---|
jsonRpcUrl | string | JSON-RPC endpoint |
Outputs
| Field | Type | Description |
|---|---|---|
chainId | number | Chain ID (e.g. 1 for Ethereum, 137 for Polygon) |
Address derivation workflow
GET_EVM_DERIVATION_PATH (addressIndex: 0)
│ derivationPath
▼
COMPUTE_PUBLIC_KEY ← keyId (from GENERATE_KEY_SHARE)
│ publicKey
▼
COMPUTE_EVM_ADDRESS
│ address
▼
GET_EVM_ACCOUNT_BALANCE ← jsonRpcUrl, tokenAddress
│ balance
▼
[Output]