IBEx.Fi deploys Safe{Wallet} smart contract wallets on-chain, controlled by a private key deterministically derived from the user's passkey. This provides a decentralized, self-custody wallet experience with a single signer — the server never accesses or handles the user's private key.
Safe wallets use ERC-4337 (Account Abstraction). All operations go through a bundler and paymaster — gas is fully sponsored, users never pay ETH. Authentication is via WebAuthn passkeys.
| Feature | Description |
|---|---|
| Standard | ERC-4337 v0.6 |
| Wallet | Safe{Wallet} smart accounts |
| SDK | @safe-global/relay-kit → Safe4337Pack |
| Gas | Fully sponsored (Pimlico paymaster) |
| Auth | FIDO2 / WebAuthn passkeys |
| Batching | Multiple operations in one atomic MultiSend transaction |
Every Safe wallet managed by IBEx supports the following modules and operations, all accessible through
the unified batch operations API
(POST /v1.2/safes/operations/batch-intent → PUT /v1.2/safes/operations/batch-execute).
Social recovery — lets a trusted guardian recover the Safe if the owner loses access.
ENABLE_RECOVERY — activates the on-chain recovery module.
Requires guardian identity (name, birth date, city, country).CANCEL_RECOVERY — cancels a pending recovery procedure.Manage co-signers and approval threshold (M-of-N).
ADD_OWNER — adds a new owner + sets new threshold.REMOVE_OWNER — removes an owner + sets new threshold.CHANGE_THRESHOLD — changes threshold without modifying owners.Automatic percentage-based token transfers triggered on deposit. Uses the Safe Allowance Module with a backend-managed delegate (worker).
ENABLE_AUTOMATION_MODULE — activates the module, registers delegate,
sets allowance. Single atomic MultiSend transaction.TRANSFER_TOKEN — ERC-20 token transfers.SIGN_MESSAGE — EIP-191 / EIP-712 off-chain message signing.AAVE_SUPPLY / AAVE_WITHDRAW — Aave lending pool deposits and withdrawals.SWAP_FROM_QUOTE — token swaps via CoW Swap.MONERIUM_CREATE_IBAN — open a Monerium IBAN linked to the Safe.MONERIUM_WITHDRAW_EURe — withdraw EURe from the IBAN.All operations follow an intent → execute pattern:
POST /v1.2/safes/operations/batch-intent) — builds the
UserOp, estimates gas, sponsors via paymaster, returns WebAuthn challenge.PUT /v1.2/safes/operations/batch-execute) — submits
signed WebAuthn credential, executes on-chain via bundler.Track execution status with GET /v1.2/safes/operations/{userOpHash}/status.
| Status | Description |
|---|---|
CREATED |
Operation prepared, not yet signed |
SIGNED |
WebAuthn signature attached |
EXECUTED |
Submitted to bundler / on-chain |
CONFIRMED |
Confirmed with block confirmations |
FAILED |
Execution reverted or timed out |
TRANSFER_TOKEN
MONERIUM_CREATE_IBAN
MONERIUM_WITHDRAW_EURe
SIGN_MESSAGE
ENABLE_RECOVERY
INITIATE_RECOVERY
EXECUTE_RECOVERY
CANCEL_RECOVERY
AAVE_SUPPLY
AAVE_WITHDRAW
SWAP_FROM_QUOTE
ADD_OWNER
REMOVE_OWNER
CHANGE_THRESHOLD
ENABLE_AUTOMATION_MODULE