LogoLogo
SupportGithubSign InGet Access
  • Introduction
  • GETTING STARTED
    • SDK Quick Start
    • API Quick Start
  • Guides
    • Web
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Web authentication methods
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Configure a custom subdomain
      • Eject a wallet
      • Using the EIP-1193 Provider
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • iOS
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Manage ERC20 tokens
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
          • Passkey + Enclave Storage
        • Recover a wallet
      • Troubleshooting Tips
      • Feature Flags
    • Android
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • React Native
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • Enclave MPC API
      • Create a client
      • Create a wallet
      • Send tokens
      • Sign Ethereum transactions
      • Sign Solana transactions
      • Sign Tron transactions
      • Sign Stellar Transaction
      • Concurrent Transactions
      • Back up a wallet
      • Eject a wallet
  • Reference
    • iOS
      • createWallet
      • backupWallet
      • recoverWallet
      • ejectPrivateKeys
      • registerBackupMethod
      • setGDriveConfiguration
      • setPasskeyConfiguration
      • setPasskeyAuthenticationAnchor
      • setPassword
      • availableRecoveryMethods
      • doesWalletExist
      • isWalletBackedUp
      • isWalletOnDevice
      • isWalletRecoverable
      • getBalances
      • getAssets
      • getNftAssets
      • getTransactions
      • sendSol
      • evaluateTransaction
      • buildEip155Transaction
      • buildSolanaTransaction
      • getWalletCapabilities
    • Android
      • Reference Documentation
    • React Native
      • @portal-hq/core
      • Storage adapters
        • Cloud storage
          • @portal-hq/gdrive-storage
          • @portal-hq/icloud-storage
        • Mobile storage
          • @portal-hq/keychain
          • @portal-hq/mobile-key-values
    • Enclave MPC API
      • V1 endpoints
    • Client API
      • V3 endpoints
      • V1 endpoints
    • Custodian API
      • V3 endpoints
      • V1 endpoints
    • Swaps API
      • V3 endpoints
      • V1 endpoints
  • Resources
    • Flutter
      • iOS
      • Android
    • Error codes
      • Overview
      • Legacy Documentation
        • MPC errors
        • Network errors
        • General errors
        • Encryption errors
        • Portal Connect errors
    • Portal's MPC architecture
    • Authentication and API Keys
    • Self-Managed Backups
    • Alert Webhooks
    • Wallet lifecycle
    • Backup options
      • Password/PIN
      • GDrive
      • iCloud
      • Passkey + Enclave
    • WalletConnect metadata
    • Advanced security scanning
    • Account abstraction
    • Security firewall
    • Eject
    • Security
    • Blockchain support
    • Chain ID formatting
    • Testnet faucets
    • Going to Production
    • Rate Limits
    • Multi-backup migration guide
    • Multi-wallet migration guides
      • Migrating from Android SDK v3.x.x to v4.x.x
      • Migrating from iOS SDK v3.0.x to v3.2.x
  • Support
    • Changelog
      • Android
      • iOS
      • React Native
      • Web
      • Past Releases
        • 2024 Releases
        • 2023 Releases
    • Celo Hackathon Hub
    • Glossary
Powered by GitBook
On this page
  • Supported Networks
  • Generating smart contract wallets for your users
  • Step 1: Get access to the feature
  • Step 2: Create Clients with Account Abstraction
  • Step 3: Generate a Smart Contract Address!
  • Configure Gas Subsidization Policy
  • Step 1: Modify Gas Subsidization Policy
  • Step 2: Confirm Policy Configuration
  • Support

Was this helpful?

Edit on GitHub
  1. Resources

Account abstraction

This guide will walk you through the process of configuring Account Abstraction for your organization and your users.

This document serves as a comprehensive guide for enabling and configuring Account Abstraction (AA) within your organization. This currently allows your organization to sponsor gas fees for your clients, using specified policies and chains.

The Account Abstraction feature is available on all mobile and web SDKs.

While AA clients can make Solana/Tron/Stellar/etc sign requests, these transactions are not gas subsidized. This is because AA clients on Solana/Tron/Stellar/etc utilize a standard MPC wallet under the hood, which doesn't support gas sponsorship in the same way as EVM-based chains.

Supported Networks

This list shows the blockchain networks that Portal supports for account abstraction.

Chain
Chain ID
Type

Ethereum

eip155:1

Mainnet

Ethereum Goerli

eip155:5

Testnet

Optimism Mainnet

eip155:10

Mainnet

BSC Mainnet

eip155:56

Mainnet

Gnosis Mainnet

eip155:100

Mainnet

Polygon Mainnet

eip155:137

Mainnet

opBNB Mainnet

eip155:204

Mainnet

Optimism Goerli Testnet

eip155:420

Testnet

Astar ZKEvm

eip155:3776

Mainnet

Cyber Mainnet

eip155:7560

Mainnet

Base Mainnet

eip155:8453

Mainnet

Gelato OP Testnet

eip155:42069

Testnet

Arbitrum One Mainnet

eip155:42161

Mainnet

Arbitrum Nova

eip155:42170

Testnet

Celo

eip155:42220

Mainnet

Avalanche Fuji Testnet

eip155:43113

Testnet

Avalanche C-Chain Mainnet

eip155:43114

Mainnet

Celo Alfajores Testnet

eip155:44787

Testnet

Linea Testnet

eip155:59140

Testnet

Linea Mainnet

eip155:59144

Mainnet

Polygon Mumbai Testnet

eip155:80001

Testnet

Polygon Amoy Testnet

eip155:80002

Testnet

Blast

eip155:81457

Mainnet

Base Goerli Testnet

eip155:84531

Testnet

Base Sepolia Testnet

eip155:84532

Testnet

Arbitrum Goerli Testnet

eip155:421613

Testnet

Arbitrum Sepolia Testnet

eip155:421614

Testnet

Astar ZKatana Testnet

eip155:1261120

Testnet

Astar zKyoto Testnet

eip155:6038361

Testnet

Ethereum Sepolia

eip155:11155111

Testnet

Optimism Sepolia Testnet

eip155:11155420

Testnet

Polygon Blackberry

eip155:94204209

Testnet

Cyber Testnet

eip155:111557560

Testnet

OP Celestia Raspberry

eip155:123420111

Testnet

Blast Sepolia

eip155:168587773

Testnet

Degen Mainnet

eip155:666666666

Mainnet

Arbitrum Blueberry

eip155:88153591557

Testnet

For Solana networks, account abstraction is supported through the use of the feePayer field in transactions.

If you set a policy for a mainnet chain, your account will be charged for gas subsidization even if you are on your Portal Development environment. Please set policies for Testnet chains while you are still building or testing to avoid unnecessary charges.

Generating smart contract wallets for your users

Generating smart contract wallets for your users is incredibly easy with Portal.

Step 1: Get access to the feature

Reach out to the Portal team to request access.

Step 2: Create Clients with Account Abstraction

{
  "isAccountAbstracted": true
}

Step 3: Generate a Smart Contract Address!

The client's smart contract wallet is only deployed upon their first successful eth_sendTransaction request.

Configure Gas Subsidization Policy

Step 1: Modify Gas Subsidization Policy

In the section, you will find multiple rows corresponding to various chains for which you can set gas subsidization policies. To modify a policy, simply click on Edit Policy for the desired chain.

Step 2: Confirm Policy Configuration

Once you have made your desired changes to the gas subsidization policies, ensure you verify and confirm the configurations. Contact our team for more information on billing.

Support

If you encounter any issues or have questions about the Account Abstraction feature, feel free to reach out to our support team.

PreviousAdvanced security scanningNextSecurity firewall

Last updated 3 months ago

Was this helpful?

After Portal enables Account Abstraction for your organization, you are ready to create your first clients. This can be achieved by hitting with this as the request body:

Now that you have Account Abstraction enabled for your client, you can to create a wallet, back it up, recover it, and sign. Since Account Abstraction is now enabled for the client, the address returned after creating a wallet is a smart contract address.

With the completion of the above steps, you would have successfully created a client with Account Abstraction. Congratulations! You can now proceed to use the Portal SDKs and services as usual.

The hash from signing with an Account Abstraction client is a, not a transaction hash. Use tools like to explore user operations.

Clients using Account Abstraction require dApps they interact with to support for verifying signed messages.

In order to configure your Account Abstraction settings, log into . Navigate to the Settings page and scroll down to find the Account Abstraction Configuration section.

Congratulations! You will now be sponsoring the gas fees for the client, based on the policies you have set and the chain the client is using.

🎉
🎉
use the SDKs as you normally would
user operation hash
Jiffy Scan
EIP-1271
the Portal Admin Dashboard
the Create a new client endpoint
Modify Account Abstraction configuration in the Portal Admin Dashboard.
Click "Edit Policy" to modify the amount of gas sponsored per chain every month (30 days).
Specify the amount of gas to sponsor for a chain every month (30 days).