Skip to main content
AppKit integrates with EIP-5792 to interact with embedded Wallets (smart accounts) through wallet capabilities. It focuses on three primary methods: wallet_getCapabilities, wallet_sendCalls, and wallet_getCallsStatus. It shows how to check if atomic batch transactions are supported and how to use them.

wallet_getCapabilities

Appkit checks the atomic capability from wallet_getCapabilities of the wallet in order to know if a wallet required to handle the batch of calls atomically or not. Wallets should include the EIP-5792 capabilities in CAIP-25.

wallet_sendCalls

Depending on the 3 different values from the atomic capability, AppKit will trigger the wallet_sendCalls:
  • supported means that the wallet supports atomic batch transactions for the account and chain ID. The wallet executes calls atomically and contiguously
  • ready means that the wallet can upgrade to support atomic execution, pending user approval.
  • unsupported means that the wallet does not provide any atomicity or contiguity guarantees, and it will not suggest an upgrade to the user. The dApp should fallback to eth_sendTransaction instead of wallet_sendCalls, and eth_getTransactionReceipt instead of wallet_getCallsStatus
Request Example
  • atomicRequired -  can be set to either true or false.
    • If the atomic capability is not supported set to false
    • If the atomic capability is supported set to true

wallet_getCallsStatus

Call this function to get the information about the batch execution.
  • The batchId field, returned from the wallet_sendCalls will be used to identify the batch call.
  • The atomic field specifies how the wallet handled the batch of calls, which affects the structure of the receipts field.

Response Example

  • if atomic is true, the batch was executed atomically by a wallet
  • if atomic is false, the batch was executed non-atomically by a wallet