Skip to main content

Methods

All methods below are available on the injected window.ethereum provider in Bifrost’s in-app browser unless noted.

Wallet-handled methods

These are handled by Bifrost (UI and/or local logic), not only proxied to a public RPC.

MethodDescription
eth_accountsReturns approved accounts for this origin, or []
eth_requestAccountsPrompts for connection; returns approved accounts
eth_chainIdCurrent chain ID as hex string
net_versionCurrent chain ID as decimal string
eth_sendTransactionSign and submit a transaction (from must be approved)
eth_signTypedDataEIP-712 typed data (treated as v4)
eth_signTypedData_v3EIP-712 typed data v3
eth_signTypedData_v4EIP-712 typed data v4
personal_signSign a UTF-8 / hex message
personal_ecRecoverRecover address from a personal_sign signature (no UI)
wallet_getPermissionsReturns eth_accounts permission info if connected
wallet_requestPermissionsRequest eth_accounts (same connect flow)
wallet_revokePermissionsRevoke eth_accounts; emits accountsChanged with []
wallet_watchAssetPrompt to track a custom ERC-20 token
wallet_scanQRCodeOpen the device QR scanner
wallet_switchEthereumChainSwitch to a built-in, active EVM chain
wallet_addEthereumChainSwitch to a built-in chain (does not add arbitrary networks)

Permissions

Only the eth_accounts permission is supported. Other permission keys in wallet_requestPermissions are denied.

wallet_watchAsset

Use for ERC-20 style assets. NFT / ERC-721 watch flows are not supported.

Passthrough (public RPC)

Unrecognized methods with array params are forwarded to Bifrost’s public JSON-RPC for the active chain. Typical read calls work when the node supports them, for example:

  • eth_call
  • eth_getBalance
  • eth_blockNumber
  • eth_getTransactionReceipt
  • eth_getTransactionCount

Signing or broadcasting that requires the user’s key must use the wallet-handled methods above (for example use eth_sendTransaction, not a raw key on the client).

Explicitly unsupported

These methods are rejected by Bifrost:

MethodNotes
eth_signUse personal_sign or typed data
eth_signTypedData_v1Use v3 / v4
eth_signTypedData_v2Use v3 / v4
eth_decryptNot implemented
eth_getEncryptionPublicKeyNot implemented

Also not available on the injected provider (use WalletConnect instead):

  • xrpl_signTransaction
  • UTXO methods: sendTransfer, getAccountAddresses, signPsbt, signMessage

References