Skip to main content
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 Tron/Stellar/etc sign requests, these transactions are not gas subsidized. This is because AA clients on 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.
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

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

Step 3: Generate a Smart Contract Address!

Now that you have Account Abstraction enabled for your client, you can use the SDKs as you normally would 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! :tada: You can now proceed to use the Portal SDKs and services as usual.
The client’s smart contract wallet is only deployed upon their first successful eth_sendTransaction request.
The hash returned when signing or sending with an Account Abstraction client is a UserOperation hash, not an on-chain transaction hash — it will not resolve on a block explorer such as Etherscan or Monadscan. The on-chain transaction hash is assigned once the bundler includes the UserOperation on-chain; look up the UserOperation hash on a UserOp explorer such as JiffyScan to find it.
Clients using Account Abstraction require dApps they interact with to support EIP-1271 for verifying signed messages.

Configure Gas Subsidization Policy

Step 1: Modify Gas Subsidization Policy

In order to configure your Account Abstraction settings, log into the Portal Admin Dashboard. Navigate to the Settings page and scroll down to find the Account Abstraction Configuration section. 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. 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.

Controlling Gas Sponsorship Per Transaction

The sponsorGas parameter allows you to opt out of gas sponsorship on a per-transaction basis when using Account Abstraction clients.

Parameter Behavior

Setting sponsorGas: true or leaving it unset produces the same behavior - both will sponsor gas if your environment is configured for AA on that chain. Only sponsorGas: false changes the default behavior to disable sponsorship.

When to Use This Parameter

The primary use case for sponsorGas is to disable sponsorship when you want users to pay for their own gas fees:
  • sponsorGas: false: Use when users should pay for their own gas, such as for testing, specific transaction types, or when you want to ensure the user has sufficient funds
  • Omit or sponsorGas: true: Default behavior - Portal sponsors if AA is configured

Example: Disable Gas Sponsorship

Gas sponsorship only occurs if your environment is configured for Account Abstraction on the specific chain. The sponsorGas parameter only controls whether to opt out of sponsorship - it cannot force sponsorship if AA is not configured.
The sponsorGas parameter is available on both the /v1/assets/send and /v1/sign endpoints.

Batch User Operations (Web SDK)

The Web SDK provides dedicated helpers for building, signing, and broadcasting ERC-4337 batch UserOperations. See the Batch user operations guide for full documentation on sendBatchUserOp, sendBatchedAssets, buildBatchedUserOp, and broadcastBatchedUserOp.

Support

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