Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

RPC Reference

All RPC methods supported by the JAW CLI via jaw rpc call <method>. Methods marked with Browser require passkey confirmation in the browser.

Account Methods

MethodBrowserDescription
wallet_connectYesConnect and authenticate with passkey
wallet_disconnectNoDisconnect the current session
eth_requestAccountsYesRequest account access (alias for connect)
eth_accountsNoGet connected account addresses
eth_chainIdNoGet current chain ID
wallet_switchEthereumChainNoSwitch to a different chain

wallet_connect

jaw rpc call wallet_connect

Returns the connected account address. Opens the browser for passkey authentication on first connection.

eth_accounts

jaw rpc call eth_accounts

Returns an array of connected addresses. Does not require browser approval.


Transaction Methods

MethodBrowserDescription
wallet_sendCallsYesSend one or more calls (recommended)
eth_sendTransactionYesSend a single transaction (legacy)
wallet_getCallsStatusNoCheck transaction bundle status
wallet_getCallsHistoryNoGet transaction history

wallet_sendCalls

The preferred method for sending transactions. Supports batching, paymasters, and permission-based execution.

# Single call
jaw rpc call wallet_sendCalls '{"calls":[{"to":"0xRecipient","value":"0xDE0B6B3A7640000"}]}'
 
# Batch calls
jaw rpc call wallet_sendCalls '{"calls":[{"to":"0xAddr1","value":"0x1"},{"to":"0xAddr2","value":"0x2"}]}'
 
# With paymaster (gas sponsoring)
jaw rpc call wallet_sendCalls '{"calls":[{"to":"0xRecipient","value":"0x1"}],"capabilities":{"paymasterService":true}}'

wallet_getCallsStatus

jaw rpc call wallet_getCallsStatus '["0xBundleId"]'

Returns status (pending, confirmed) and receipts.


Signing Methods

MethodBrowserDescription
personal_signYesSign a plaintext message
eth_signTypedData_v4YesSign EIP-712 typed data
wallet_signYesSign using ERC-7871

personal_sign

# Message as hex-encoded string, followed by signer address
jaw rpc call personal_sign '["0x48656c6c6f","0xYourAddress"]'

eth_signTypedData_v4

# Address followed by JSON-encoded typed data
jaw rpc call eth_signTypedData_v4 '["0xYourAddress","{\"types\":{\"EIP712Domain\":[...],\"Mail\":[...]},\"primaryType\":\"Mail\",\"domain\":{...},\"message\":{...}}"]'

Permission Methods

MethodBrowserDescription
wallet_grantPermissionsYesGrant delegated permissions
wallet_revokePermissionsYesRevoke a permission by hash
wallet_getPermissionsNoList active permissions

wallet_grantPermissions

jaw rpc call wallet_grantPermissions '{"permissions":[{"type":"call","data":{"to":"0xContractAddress"}},{"type":"spend","data":{"token":"0xUSDCAddress","limit":"1000000","period":"daily"}}],"expiry":1735689600}'

wallet_revokePermissions

jaw rpc call wallet_revokePermissions '{"permissionHash":"0x..."}'

wallet_getPermissions

jaw rpc call wallet_getPermissions

Query Methods

MethodBrowserDescription
wallet_getCapabilitiesNoGet supported capabilities per chain
wallet_getAssetsNoGet token balances

wallet_getCapabilities

jaw rpc call wallet_getCapabilities

Returns supported features (atomicBatch, paymasterService, permissions) per chain.

wallet_getAssets

jaw rpc call wallet_getAssets

Returns token balances for the connected account.


Tips for AI Agents

When using the CLI programmatically or via MCP:

  • Always pass -o json for machine-readable output
  • Use -y to skip confirmation prompts
  • Prefer wallet_sendCalls over eth_sendTransaction for batching and paymaster support
  • Check wallet_getCapabilities to discover supported features per chain