Account abstraction & smart contract wallets

Try Tangem secure wallet →

Table of contents


What is account abstraction?

Account abstraction moves programmable logic from externally owned accounts (EOAs) into smart contract wallets so the account itself becomes a smart contract. That lets the account define custom validation, gas-payment rules, session keys, batched transactions, and even sponsored (gasless) flows via paymasters or relayers. Simple question: why care? Because it changes how you interact with DeFi and dApps on mobile — letting you limit approvals, set per-session spending caps, and hide complexity from users without asking for private keys each time.

What I've found is that account abstraction is not a single magic feature. It's a set of design patterns (bundlers, paymasters, session keys) that together allow wallets to offer gasless transactions and advanced UX without changing the underlying blockchain rules.

![session-key-flow-diagram](alt text placeholder)

Smart contract wallets explained (EOA vs smart contract)

Short version: an EOA is a simple keypair that signs transactions. A smart contract wallet is code on-chain that validates actions and can accept meta-transactions.

Feature Externally Owned Account (EOA) Smart Contract Wallet
Transaction signing Private key signs raw tx Contract verifies meta-tx or session signature
Gas payment Sender pays gas Paymaster can sponsor gas (gasless)
Session delegation Not built-in Session keys with limits and expiry
Batched tx Multiple txs, higher cost Can batch ops into one on-chain tx
Recovery options Seed phrase only Social recovery / guardians possible

This table shows why some daily users prefer smart contract wallets when interacting with complex DeFi flows (batched approvals + swaps) while others still use simple EOAs for raw control.

Key features to look for on mobile

Mobile software wallets vary. In my experience these are the features that matter most if you care about account abstraction and smart contract wallets:

And yes, WalletConnect and the in-app dApp browser matter here. If a mobile wallet supports WalletConnect well, you can use sessions across mobile and desktop dApps (WalletConnect and dApp browser).

Step-by-step: session keys and gasless transactions

How do you actually use session keys and gasless transactions on a mobile software wallet? Step-by-step (general, non-brand-specific):

  1. Create or restore your wallet using seed phrase. (Always back up your seed phrase first; see backup & recovery).
  2. Connect the dApp either via built-in dApp browser or WalletConnect. Allow the dApp to request a session key rather than your main signing key.
  3. When prompted, set limits: allowed dApp origin, spending cap, expiry timestamp. This is the session key grant.
  4. Test with a tiny transaction on a testnet if possible. I always do a low-value trial first.
  5. For gasless flows: confirm that the dApp/paymaster will sponsor gas; check the policy (what tokens, who pays if the sponsor stops).
  6. When done, revoke the session key via the wallet UI or decrease its expiry.

But remember: session keys are convenience delegates. They are not replacements for robust seed phrase custody.

Security trade-offs and best practices

Smart contract wallets add flexibility at the cost of new attack surfaces. Here are practical rules I follow:

For step-by-step instructions on revoking approvals see revoke approvals. For backups, see backup & recovery.

Multi-chain and DeFi considerations

Account abstraction patterns (session keys, paymasters) are most mature on EVM-compatible chains because the tooling (bundlers, EIP standards) is widely adopted. On Solana or Cosmos-derived chains, the mechanisms differ and smart contract wallet features may not map one-for-one. If you switch networks often, check how the wallet handles network switching and chain-specific features (evm chains, solana guide).

Bridges add further complexity: a gasless flow on one chain doesn't automatically extend across cross-chain bridges. Double-check that the bridging service supports the account type before sending large amounts (cross-chain bridges).

Hands-on testing notes (what I tried and what I saw)

I ran a few real tests on a public testnet and some mainnet micro-transactions to compare behavior.

These tests showed clear UX benefits but also exposed operational risks (lost session keys on restore, paymaster dependency). I recommend testing with small amounts first.

Who should use smart contract wallets — and who should look elsewhere

Who they're best for:

Who should look elsewhere:

FAQ

Q: Is it safe to keep crypto in a hot wallet?
A: Hot (software) wallets are convenient but less secure than cold storage. I use a hot wallet for daily DeFi activity and a hardware wallet for long-term holdings. See backup & recovery for safety steps.

Q: How do I revoke token approvals?
A: Use the wallet's token management or approval revocation UI, or use an on-chain revoke transaction. See revoke approvals for a walk-through.

Q: What happens if I lose my phone?
A: Restore from your seed phrase on a new device. Session keys and delegated sessions will typically need to be re-granted; they don't survive a restore. See lost device recovery.

Q: Are gasless transactions truly free?
A: The user may not pay gas, but someone pays (the paymaster). That introduces policy and counterparty risk, so review terms.

Conclusion & next steps

Account abstraction and smart contract wallets bring real improvements for mobile DeFi: session keys, batched transactions, and gasless UX can save time and gas fees while reducing friction. But they add new operational and trust considerations, so test carefully, keep seed phrase backups, and use session scopes and expiries.

If you want to practice safely, try a testnet flow and then read our practical guides: getting started, create & restore wallet, and how to swap tokens.

Ready for deeper setup guides? Check the onboarding walkthrough next: onboarding & setup.

Try Tangem secure wallet →