Skip to main content

EVM Wallets & Addresses

Components for address derivation, balance queries, derivation path computation, and chain identification.

Avoid public RPC endpoints

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 Component

Derive the EVM address from a compressed secp256k1 public key. Use after COMPUTE_PUBLIC_KEY to get the spendable address.

Config

None.

Inputs

FieldTypeDescription
publicKeystringCompressed public key (hex, 33 bytes)

Outputs

FieldTypeDescription
addressstringEVM address (0x..., checksummed)

GET_EVM_DERIVATION_PATH

GET_EVM_DERIVATION_PATH Workflow Component

Generate a standard BIP-44 derivation path for a given address index. Feeds directly into COMPUTE_PUBLIC_KEY.

Config

FieldTypeDefaultDescription
hardenedbooleantrueApply hardened derivation (BIP-44 standard). Disable only for non-standard paths

Inputs

FieldTypeDefaultDescription
accountIndexnumber0BIP-44 account index (the account level, typically 0)
changeIndexnumber0BIP-44 change index (0 = external/receiving, 1 = internal/change)
addressIndexnumberBIP-44 address index (e.g. 0 for the first address)

Outputs

FieldTypeDescription
derivationPathnumber[]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 Component

Fetch the native ETH balance or ERC-20 token balance for an address.

Config

None.

Inputs

FieldTypeDescription
jsonRpcUrlstringJSON-RPC endpoint
tokenAddressstringToken contract address. Use 0x0000000000000000000000000000000000000000 for native ETH
accountstringAddress to check

Outputs

FieldTypeDescription
balancestringBalance 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 Component

Read the chainId from a JSON-RPC endpoint. Useful for EIP-712 typed data that requires the chain ID.

Config

None.

Inputs

FieldTypeDescription
jsonRpcUrlstringJSON-RPC endpoint

Outputs

FieldTypeDescription
chainIdnumberChain 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]