API Reference

Account API

All calls target the currently connected wallet address as the contract address.

3 sectionsaccount-api
01

App management and execution

  • enableApp / disableApp require address(this); frontends normally submit a wallet self-call.
  • executeRuntimeApp may be externally triggered but must pass both local and global gates.
  • isAppEnabled reports local state only, not final executability.
interface IAccountAppRuntime {
  event AppEnabled(address indexed account, address indexed app);
  event AppDisabled(address indexed account, address indexed app);

  function executeRuntimeApp(address app, bytes calldata data)
    external payable returns (bytes memory result);
  function enableApp(address app) external;
  function disableApp(address app) external;
  function isAppEnabled(address app) external view returns (bool);
}
02

Assets and batching

  • executeBatch((target,value,data)[]) is wallet-self only.
  • executeWithTokenPull / executeWithNftPull are also wallet-self only.
  • tokenPullToCaller / nftPullToCaller are available only to the target in the active transient context.
interface IWalletAssetPullExecutor {
  function executeWithTokenPull(
    address target, bytes calldata data, address asset, uint256 maxAmount
  ) external;
  function executeWithNftPull(
    address target, bytes calldata data, address asset, uint256 tokenId
  ) external;
  function tokenPullToCaller(address asset, uint256 amount) external;
  function nftPullToCaller(address asset, uint256 tokenId) external;
}
03

ExecuteWithSig

function executeWithSigNonce() external view returns (uint256);
function executeWithSig(
  SignedCall calldata call, uint256 deadline, bytes calldata signature
) external payable returns (bytes memory result);