Skip to content

Gasless Transactions

Estimated time to read: 8 minutes

General


Are gasless transactions supported only via the Arcana wallet?

No.

Apps that integrate with the Arcana Auth SDK can enable social login and gasless transactions via the Arcana wallet after configuring the gasless settings through the dashboard. All whitelisted Web3 app operations that are issued via the Arcana wallet using the SCW Address will be gasless.

To enable gasless transactions via third-party browser-based wallets, apps must integrate with the Arcana Gasless (Standalone) SDK. They must configure gasless settings and whitelist app operations through the dashboard before using the doTx() method to issue gasless transactions.

Can the developers enable gasless transactions for any blockchain?

The gasless feature is available only for selected blockchains. See the complete list of supported blockchains for details.

Is a gas tank associated with one or more blockchain networks?

There can only be a single gas tank configured per blockchain network for every registered app.

Can ERC20 tokens be used to deposit gas fees when setting up gas tanks?

No.

Only native cryptocurrency can be used to fuel gas tanks and deposit gas. In a future release, ERC20 tokens can also be used to set up and fill gas tanks for gasless operations in dApps.

Does the user wallet address change when the gasless feature is enabled?

Yes. If the gasless feature is not enabled, each user account is only associated with the traditional EoA address. When gasless transactions are enabled for a blockchain, the user accounts are associated with an EoA and a SCW address. Learn more...

Do the user as well as the app developer need to be aware of both the EoA address and SCW address for blockchain networks that have gasless enabled?

Yes.

For whitelisted operations, the SCW address is used to sign the blockchain transactions. The gas fees are covered via the SCW account through the gas tank. Non-whitelisted functions require users to pay gas fees through the active account in Arcana wallet UI. Gasless-enabled apps default to the active SCW address, but users can switch between EoA and SCW addresses. If a user selects the EoA address while gas tanks are active, the transaction occurs via EoA, and the user covers the gas fee.

Developers need to ensure that they use the SCW address when issuing blockchain requests for app operations that are whitelisted. Also, developers must ensure that they use the EoA address for creating blockchain requests related to signing personal messages or exporting the private key. See EIP-4337 and EIP-1291 and user keysfor details.

Which of the two addresses, EoA or SCW, is displayed in the Arcana wallet UI in the case of gasless transactions?

If the developer has set up the gas tank for the blockchain network, say network N, and also configured network N as the active network to be displayed in the wallet UI, then the wallet is enabled for gasless transactions on network N. The wallet UI will display the SCW address. Users can use the wallet UI to switch between the SCW and EoA addresses. However, they must use the SCW address for gasless transactions; switching to the EoA address incurs user gas fees. Gasless functionality is exclusive to SCW addresses.

If gas tanks aren't configured for the active blockchain, only the EoA address is shown in Arcana wallet UI.

Can the gasless feature be enabled later?

Yes, developers can seamlessly enable the gasless feature even later, after deploying the app on the Testnet or Mainnet. They can enable the gasless feature by setting up gas tanks for a blockchain network and it does not require app redeployment. However, note that this change affects the user's wallet address experience on blockchain networks with gas tanks.

If gas tanks are set up for the active network in the wallet, users will have both the EoA and an additional SCW address. Before enabling the gasless feature, users will only see the EoA address in the wallet UI. Once gasless is enabled, the SCW address becomes active instead of the EoA address and handles gas fees. Users can switch between EoA and SCW addresses through the wallet UI.

If a user switches to the EoA address, in this case even if the gas tanks are active, users will incur gas fees through the EoA account.

Users must ensure the SCW wallet address has sufficient crypto assets for transactions like token transfers. Gas fees for token transfers are covered by the SCW address.

Once enabled, can the gasless feature be disabled?

Once a gas tank is established on a blockchain network, the user account becomes a dual-address gasless account, featuring both EoA and SCW addresses. This change is irreversible. However, developers can deactivate the gas tanks or they may run out of gas funds, resulting in users incurring gas fees. Once added, gas tanks cannot be deleted.

Can the gas tanks be paused if required?

Yes.

Developers can change the Enable Smart Account toggle setting in the Arcana Developer Dashboard and pause/resume the gas tank operations for the selected blockchain network in the context of an app.

For gasless apps which user address does the developer refer to, EoA or SCW or both?

When gasless is active on a blockchain network, the user account includes both EoA and SCW addresses, with gasless transactions exclusively supported through the SCW address.

Gasless adheres to the ERC-4337 account abstraction specification and ERC-1291 Signature Validation methods for contract addresses.

App developers should use EoA addresses for messages requiring personal signing or accessing user keys. All other blockchain transactions that are meant to be gasless should utilize the SCW address to ensure gas fees are covered for the user. For transferring tokens and digital assets, if a user deliberately chooses the EoA address via the wallet UI then any subsequent transaction will incur gas fees as they use the EoA address.

If a developer sets up a gas tank on network N, uses SCW address and then issues the transaction on a different network with no gas tank, why does the transaction fail?

This will not work and cause transaction errors. Only transactions issued using the SCW address on the network where the gas tank is set up (network N in this case) will be gasless and successful if there are sufficient funds in the tank and the SCW wallet address.

If the developers set up a gas tank on network N and issue a transaction on Network G using the SCW address, they will see a transaction error due to a mismatch between the gasless network and the address. In this case, the network is wrong and SCW is not applicable for network G where a gas tank is not set up. User accounts on Network N will be gasless accounts with dual EoA and SCW addresses. For Network G only EoA is valid and hence you will see the blockchain transaction error. Transactions issued on the other network will not be gasless and can only use EoA addresses.

Will the transaction be gasless if the dev sets up a gas tank on network N, and uses EoA for issuing the blockchain transaction associated with the whitelisted operations?

No. EoA accounts on network N where the gas tank is set up and funded, will incur gas fees. Dev must use SCW accounts only to ensure gasless transactions.

MFA


Is the MFA feature supported with gasless transactions?

Yes.

MFA feature uses the EoA account address of the user. For blockchains where gas tanks are enabled, the gas user account is associated with dual addresses: an EoA and an SCW address. The MFA feature continues to use the EoA address.

Global Keys


Is the Global Keys feature supported along with gasless transactions?

Yes.

For those apps that enable gasless transactions and global keys features, the users will have the same EoA as well as the SCW addresses when using other apps integrated with the Arcana Auth SDK that have global keys enabled.

Private Keys


Are the user keys associated with EoA or SCW address in the case of gasless?

The user's keys are always associated with EoA, whether the gasless feature is enabled or not.

Gasless Standalone SDK


Do all Web3 apps require to integrate with both the Arcana Auth SDK and Arcana Gasless (Standalone) SDK to enable gasless transactions?

No. The Arcana Auth SDK can be used to enable social login in Web3 apps and allow gasless transactions via the Arcana wallet. To extend gasless functionality to third-party browser-based wallet apps must integrate with the Arcana Gasless (Standalone) SDK.

Multi-wallet Web3 apps that use wallet connectors and support Arcana wallet as well as third-party wallets must integrate with both the SDKs.

What are the high-level steps for using the Arcana Gasless (Standalone) SDK?

A. Use the Arcana Developer Dashboard to register the app and obtain a unique app identifier or Client ID.

B. Install and integrate with the Arcana Gasless (Standalone) SDK. During SDK initialization, provide the unique app identifier, standard EIP-1193 Ethereum provider exposed by the third-party browser-based wallet.

For details, refer to the sample-gasless-standalone code in the Auth Examples GitHub repo.

Does gasless transaction require developers to integrate the Web3 app with Arcana Gasless (Standalone) SDK and the appropriate Arcana Auth SDK plus companion SDKs depending upon the app type?

Not all use cases require installing and integrating with the Arcana Gasless (Standalone) SDK.

  1. Apps that require user onboarding and/or the Arcana wallet functionality in the app must install and integrate with the appropriate Arcana Auth SDK plus companion SDKs only. They do not need to install the Arcana Gasless (Standalone) SDK because the gasless feature is built-in the Arcana Auth SDK.

  2. Apps that do not require user onboarding and the Arcana wallet functionality, but wish to enable gasless feature in third-party browser-based wallets, are required to install and integrate with only the Arcana Gasless (Standalone) SDK.

  3. Multi-wallet apps that require user onboarding and/or Arcana wallet functionality in addition to enabling gasless for third-party wallets, must first install and integrate with the appropriate Arcana Auth SDK plus companion SDKs. This will enable gasless for the Arcana wallet and allow user onboarding via the Arcana Auth SDK. Next, they must install and integrate the app with the Arcana Gasless (Standalone) SDK to enable gasless transactions in other third-party browser-based wallets such as MetaMask.

Apps can directly install and integrate with the Arcana Gasless (Standalone) SDK without having to use the dashboard to configure gasless transactions?

No.

It is mandatory to configure gas tanks, deposit gas and whitelist app operations. This is required before gasless transactions can be enabled for the app user. If gas tanks are set up by the developer but not funded with crypto assets, then the gas fees will be paid directly via the user's SCW smart account. If there are insufficient funds to pay the gas fees in the SCW account, the transaction will fail.

Can multi-wallet apps integrating with the Arcana Auth SDK for accessing the embedded Arcana wallet configure gasless feature via the dashboard and then directly use the built-in gasless feature to enable gasless transactions across all supported wallets including third-party wallets?

No.

Multi-wallet apps can configure the gasless feature via the dashboard, then install and integrate with the appropriate Arcana Auth SDK plus companion SDKs. This will only enable gasless transactions for the Arcana wallet but not for the third-party browser-based wallets such as MetaMask. To enable that, developers must also install and integrate the app with the Arcana Gasless (Standalone) SDK. For details, refer to the Arcana Gasless (Standalone) SDK Usage Guide

Gasless Transaction Mode


Does the Arcana Gasless (Standalone) SDK doTx() method support gasless transactions for custom EVM tokens?

Yes, doTx() method supports gasless transactions for custom EVM tokens. Developers must use the Arcana Developer Dashboard to configure gasless settings. Also, the custom EVM token contract and required functions such as transferFrom, safeTransferFrom, and transfer must be whitelisted via the gasless settings. After integrating with the SDK, while issuing the doTx() method, specify the mode parameter as "BICONOMY".

scw.doTx( tx, { mode: "BICONOMY"});

Learn more...


Last update: August 16, 2024 by shaloo, shaloo