Skip to main content

Component Library

White Rabbit ships 60+ production-ready components across seven categories. Every component is a stateless, versioned executable unit with a typed input/output contract.


Component categories

CategoryComponentsDescription
HTTP & APIs1Generic HTTP requests to any REST endpoint
EVM (Ethereum)22Transactions, contract reads, Gnosis Safe, Uniswap, utilities
Bitcoin7Transactions, UTXO selection, address derivation, balance queries
Solana12Transactions, SPL tokens, program instructions, address derivation
MPC & Key Management8Threshold signing, key generation, encryption
Workflow Logic4FOR_EACH iteration, ARRAY_BUILDER, triggers
Utilities5Random values, hash functions, constants

All components

HTTP & APIs

ModuleDescription
API_CALLMake any HTTP/HTTPS request with custom headers, method, and body

EVM (Ethereum)

ModuleDescription
READ_EVM_CONTRACTCall a read-only contract function via eth_call
DECODE_EVM_FUNCTION_RESULTABI-decode raw bytes returned from a contract call
EVM_KECCAK256Compute keccak256 hash of a hex string
BUILD_EVM_CALLDATAABI-encode a function call into calldata
BUILD_EVM_TRANSACTIONConstruct an unsigned EVM transaction (gas estimation included)
SIGN_EVM_TRANSACTIONCombine unsigned transaction + signature into a signed tx
BROADCAST_EVM_TRANSACTIONBroadcast a signed transaction and return the tx hash
WAIT_FOR_EVM_TRANSACTIONWait until a transaction is confirmed on-chain
GET_EVM_ACCOUNT_BALANCEFetch native or ERC-20 token balance for an address
GET_EVM_CHAIN_IDRetrieve the chain ID from a JSON-RPC endpoint
COMPUTE_EVM_ADDRESSDerive an EVM address from a compressed public key
ERC20_ABI_CONSTANTReturns the standard ERC-20 ABI as a constant
EVM_ZERO_ADDRESS_CONSTANTReturns 0x0000000000000000000000000000000000000000
BUILD_EVM_GNOSIS_SAFE_DEPLOYMENTBuild a Safe deployment transaction
GET_EVM_GNOSIS_SAFE_NONCEFetch current nonce from a deployed Safe
GET_EVM_SAFE_ADDRESSPredict the counterfactual Safe address
IS_EVM_SAFE_DEPLOYEDCheck if a Safe has been deployed
BUILD_EVM_SAFE_SIGNATURECompute EIP-712 Safe transaction signature
BUILD_EVM_SAFE_TRANSACTIONAssemble a Safe multisig transaction
MANAGE_SAFE_OWNERSEncode add/remove/swap owner calldata
BUILD_EVM_MULTICALLBundle multiple calls into a single multicall
BUILD_EVM_MULTICALL_ITEMConstruct a single item for a multicall batch
GET_UNISWAP_SWAP_QUOTEFetch a live swap quote from Uniswap V3
BUILD_EVM_UNISWAP_SWAP_CALLDATABuild calldata for a Uniswap V3 swap transaction
GET_EVM_DERIVATION_PATHGenerate a BIP-44 derivation path for an address index

Bitcoin

ModuleDescription
BROADCAST_BITCOIN_TRANSACTIONBroadcast a raw transaction to the Bitcoin network
BUILD_BITCOIN_TRANSACTIONBuild an unsigned PSBT with UTXO selection and fee estimation
SIGN_BITCOIN_TRANSACTIONApply signatures to a PSBT and finalize the raw transaction
COMPUTE_BITCOIN_SIGNATURE_HASHCompute a Bitcoin message or raw SHA-256 signature hash
COMPUTE_BITCOIN_ADDRESSDerive a Bitcoin address from a public key
GET_BITCOIN_ACCOUNT_BALANCEFetch total UTXO balance for a Bitcoin address
GET_BITCOIN_DERIVATION_PATHGenerate a BIP-44/49/84/86 derivation path

Solana

ModuleDescription
BROADCAST_SOLANA_TRANSACTIONBroadcast a signed transaction to the Solana network
BUILD_SOLANA_TRANSACTIONBuild an unsigned Solana transaction with SOL transfer and/or instructions
SIGN_SOLANA_TRANSACTIONApply Ed25519 signatures to an unsigned Solana transaction
BUILD_SOLANA_INSTRUCTIONConstruct a custom program instruction
BUILD_SOLANA_ACCOUNT_META_ITEMWrap a public key into an AccountMeta for program instructions
BUILD_SOLANA_TRANSFER_INSTRUCTIONBuild SOL or SPL token transfer instructions
BUILD_SOLANA_SIGNATURE_PAIR_ITEMWrap a public key + signature into a SignaturePair for multi-signing
BUILD_SOLANA_NONCE_ACCOUNT_INSTRUCTIONBuild instructions to create a durable nonce account
COMPUTE_SOLANA_ADDRESSDerive a Solana address from an Ed25519 public key
CONVERT_SOLANA_PUBLIC_KEYConvert a base58 Solana public key to hex
GET_SOLANA_ACCOUNT_BALANCEFetch SOL or SPL token balance for an account
GET_SOLANA_DERIVATION_PATHGenerate a BIP-44 Solana derivation path

MPC & Key Management

ModuleDescription
GENERATE_KEY_SHARECreate a new threshold key share (SECP256k1 or ED25519)
COMPUTE_PUBLIC_KEYDerive the public key from a key share at a derivation path
SIGN_WITH_KEY_SHARESign a message hash using a stored key share
IMPORT_KEY_SHAREImport an age-encrypted wrapped key share
EXPORT_KEY_SHAREExport a key share encrypted to a recipient's age public key
REWRAPPING_KEY_SHARERe-encrypt a key share to a new age identity
RECOVER_PRIVATE_KEYReconstruct a raw private key from a key share (threshold ≥ required)
GENERATE_AGE_ENCRYPTIONGenerate a fresh age identity (public key + encrypted private key)
GET_NODE_RECIPIENT_KEYFetch the MPC node's age public key for secure key wrapping

Workflow Logic

ModuleDescription
FOR_EACHIterate over an array, executing the downstream subgraph for each item
ARRAY_BUILDERCollect multiple inputs into a typed array
ON_API_CALLEDTrigger: start a workflow when an HTTP request is received
STRING_CONSTANTEmit a static string value as a workflow output

Utilities

ModuleDescription
RANDOM_UUIDGenerate a cryptographically random UUID v4
RANDOM_HEXGenerate a cryptographically random hex string
RANDOM_NUMBERGenerate a cryptographically random integer
ERC20_ABI_CONSTANTReturns the standard ERC-20 ABI
EVM_ZERO_ADDRESS_CONSTANTReturns the EVM zero address

How components work

Typed ports

Every component defines inputs and outputs with JSON Schema types. The visual builder enforces type compatibility when you wire components together. Incompatible connections show a warning.

Billing model

Components are billed in two ways:

TypeHow it's charged
PER_COMPONENTFixed credits per execution (regardless of duration)
PER_EXECUTION_TIMECredits proportional to wall-clock execution time

Check each component's billing field for the exact amount.

Dynamic variables

Some components support dynamic variables — inputs or outputs that you define at design time. This lets you pass arbitrary data between workflow components even when the static schema doesn't have a matching field.

Execution attempts

Transient failures (network errors, RPC timeouts) are automatically retried up to 3 times with exponential backoff. The executionAttempt field in run stage results shows which attempt succeeded.


Discover components via API

The full live catalog (including third-party integrations) is always available:

curl https://api.whiterabbit.app/v1/system/components \
-H "Authorization: Bearer jwt_..."

This returns the complete ComponentResponse[] with current billing amounts, schemas, and metadata.