Account Abstraction in BasedApp

Aug 27, 2023

One of the observations when people log in to BasedApp is how different it is to normal blockchain wallets. It is seamless and easy-to-use. But for the people who already have a normal blockchain wallet, it can sometimes be confusing. 

"Why is my address different from my Metamask address?", "How do I download my 24-word seed phrase?”

In this article, we aim to demystify what's behind BasedApp accounts. 

BasedApp and Account Abstraction

BasedApp is a smart contract wallet, and we use account abstraction to deliver better security and enhanced experiences to users.

On the blockchain, “addresses” can either refer to an externally owned account (EOA) or Smart Contract. Most users use EOA, which are wallets where you have direct access to the private keys, to access their tokens and make transactions on chain. Another kind of “accounts” on blockchain is a smart contract wallet. Smart contract wallets can potentially unlock many benefits, such as better recoverability and enhanced user experience via gas fee abstraction, in-built automation, and 1-click transactions via batched transactions. To read more about Account Abstraction, you can visit https://ethereum.org/en/roadmap/account-abstraction.

BasedApp uses the smart contract infrastructure provided by Safe (safe.global) - an open-source interoperability protocol for modular smart contract-based accounts (“smart accounts”). Safe smart contract wallets are battle-tested and have secured billions of assets since 2018. Although it is commonly used for DAOs and multisigs, it can also be used as a consumer product. 

To read more about Safe and Account Abstraction, refer to this post for more details. https://safe.mirror.xyz/9KmZjEbFkmI79s28d9xar6JWYrE50F5AHpa5CR12YGI

How do you use the BasedApp Smart Contract Wallet?

A smart contract wallet is a piece of code on the blockchain and there are no private keys for that address. However, users can control the wallet by adding “account owners” to that smart contract that can sign and execute transactions. On BasedApp, the execution logic for owners is 1 out of N, where N is the number of owners that are added to the smart contract account. As long as one of the owners can sign the transaction, assets in the smart contract can be moved or transferred. 

On BasedApp, users can either choose to use social logins (powered by Magic.link) or any web3 wallets like Metamask, Ledger, Trezor or WalletConnect. BasedApp works with more than 100+ mobile wallets via WalletConnect.

To make it easy for consumers to use BasedApp on-the-go, we have integrated Magic.link, a leading web3 Wallet-as-a-Service (WaaS) to provide social logins for users. When users login with Google, Email or Phone Number, their keys are derived from these logins by magic.link, a Web3 wallet provider.Magic.link securely derives a users' private key given their social login such as Google account, Email or Phone number.

To date, Magic has created more than 20 million unique wallets, and is trusted by brands such as Mattel, Macy's, Xsolla, Immutable, and many others. Magic.link's delegated key management service provides scalability and enterprise-grade security, with SOC2 Type 2, CCPA, GDPR, HIPAA, ISO compliance. To read more about the security of magic.link, please visit trust.magic.link.

Backup addresses

BasedApp smart contract wallets also allows you to add other addresses as "backup addresses". These address can execute transactions on your behalf - so be careful who you add as a backup address! Backup addresses are useful for recoverability of your account.

For example, you can login to BasedApp with Google login (powered by magic.link). Then you can also add another address from your hardware wallet as a backup. This way, you can still access your funds in the event that you lose access to your Google account or if magic.link were to go down unexpectedly one day.

Backup addresses should be an address that you have control over the private key. Do not add your exchange address (e.g. Binance, Coinhako, Coinbase, etc) as a backup addresses - exchange addresses cannot control the BasedApp account on your behalf.

How do i add a backup address?

To add a backup address,

  1. Go under "Profile" (accessible from top-right of the screen)

  2. Click "Add Backup Address"



  3. Enter your new backup address. Add an address where you control the keys. Do not add an exchange deposit address or another smart contract wallet address.


One of the observations when people log in to BasedApp is how different it is to normal blockchain wallets. It is seamless and easy-to-use. But for the people who already have a normal blockchain wallet, it can sometimes be confusing. 

"Why is my address different from my Metamask address?", "How do I download my 24-word seed phrase?”

In this article, we aim to demystify what's behind BasedApp accounts. 

BasedApp and Account Abstraction

BasedApp is a smart contract wallet, and we use account abstraction to deliver better security and enhanced experiences to users.

On the blockchain, “addresses” can either refer to an externally owned account (EOA) or Smart Contract. Most users use EOA, which are wallets where you have direct access to the private keys, to access their tokens and make transactions on chain. Another kind of “accounts” on blockchain is a smart contract wallet. Smart contract wallets can potentially unlock many benefits, such as better recoverability and enhanced user experience via gas fee abstraction, in-built automation, and 1-click transactions via batched transactions. To read more about Account Abstraction, you can visit https://ethereum.org/en/roadmap/account-abstraction.

BasedApp uses the smart contract infrastructure provided by Safe (safe.global) - an open-source interoperability protocol for modular smart contract-based accounts (“smart accounts”). Safe smart contract wallets are battle-tested and have secured billions of assets since 2018. Although it is commonly used for DAOs and multisigs, it can also be used as a consumer product. 

To read more about Safe and Account Abstraction, refer to this post for more details. https://safe.mirror.xyz/9KmZjEbFkmI79s28d9xar6JWYrE50F5AHpa5CR12YGI

How do you use the BasedApp Smart Contract Wallet?

A smart contract wallet is a piece of code on the blockchain and there are no private keys for that address. However, users can control the wallet by adding “account owners” to that smart contract that can sign and execute transactions. On BasedApp, the execution logic for owners is 1 out of N, where N is the number of owners that are added to the smart contract account. As long as one of the owners can sign the transaction, assets in the smart contract can be moved or transferred. 

On BasedApp, users can either choose to use social logins (powered by Magic.link) or any web3 wallets like Metamask, Ledger, Trezor or WalletConnect. BasedApp works with more than 100+ mobile wallets via WalletConnect.

To make it easy for consumers to use BasedApp on-the-go, we have integrated Magic.link, a leading web3 Wallet-as-a-Service (WaaS) to provide social logins for users. When users login with Google, Email or Phone Number, their keys are derived from these logins by magic.link, a Web3 wallet provider.Magic.link securely derives a users' private key given their social login such as Google account, Email or Phone number.

To date, Magic has created more than 20 million unique wallets, and is trusted by brands such as Mattel, Macy's, Xsolla, Immutable, and many others. Magic.link's delegated key management service provides scalability and enterprise-grade security, with SOC2 Type 2, CCPA, GDPR, HIPAA, ISO compliance. To read more about the security of magic.link, please visit trust.magic.link.

Backup addresses

BasedApp smart contract wallets also allows you to add other addresses as "backup addresses". These address can execute transactions on your behalf - so be careful who you add as a backup address! Backup addresses are useful for recoverability of your account.

For example, you can login to BasedApp with Google login (powered by magic.link). Then you can also add another address from your hardware wallet as a backup. This way, you can still access your funds in the event that you lose access to your Google account or if magic.link were to go down unexpectedly one day.

Backup addresses should be an address that you have control over the private key. Do not add your exchange address (e.g. Binance, Coinhako, Coinbase, etc) as a backup addresses - exchange addresses cannot control the BasedApp account on your behalf.

How do i add a backup address?

To add a backup address,

  1. Go under "Profile" (accessible from top-right of the screen)

  2. Click "Add Backup Address"



  3. Enter your new backup address. Add an address where you control the keys. Do not add an exchange deposit address or another smart contract wallet address.


One of the observations when people log in to BasedApp is how different it is to normal blockchain wallets. It is seamless and easy-to-use. But for the people who already have a normal blockchain wallet, it can sometimes be confusing. 

"Why is my address different from my Metamask address?", "How do I download my 24-word seed phrase?”

In this article, we aim to demystify what's behind BasedApp accounts. 

BasedApp and Account Abstraction

BasedApp is a smart contract wallet, and we use account abstraction to deliver better security and enhanced experiences to users.

On the blockchain, “addresses” can either refer to an externally owned account (EOA) or Smart Contract. Most users use EOA, which are wallets where you have direct access to the private keys, to access their tokens and make transactions on chain. Another kind of “accounts” on blockchain is a smart contract wallet. Smart contract wallets can potentially unlock many benefits, such as better recoverability and enhanced user experience via gas fee abstraction, in-built automation, and 1-click transactions via batched transactions. To read more about Account Abstraction, you can visit https://ethereum.org/en/roadmap/account-abstraction.

BasedApp uses the smart contract infrastructure provided by Safe (safe.global) - an open-source interoperability protocol for modular smart contract-based accounts (“smart accounts”). Safe smart contract wallets are battle-tested and have secured billions of assets since 2018. Although it is commonly used for DAOs and multisigs, it can also be used as a consumer product. 

To read more about Safe and Account Abstraction, refer to this post for more details. https://safe.mirror.xyz/9KmZjEbFkmI79s28d9xar6JWYrE50F5AHpa5CR12YGI

How do you use the BasedApp Smart Contract Wallet?

A smart contract wallet is a piece of code on the blockchain and there are no private keys for that address. However, users can control the wallet by adding “account owners” to that smart contract that can sign and execute transactions. On BasedApp, the execution logic for owners is 1 out of N, where N is the number of owners that are added to the smart contract account. As long as one of the owners can sign the transaction, assets in the smart contract can be moved or transferred. 

On BasedApp, users can either choose to use social logins (powered by Magic.link) or any web3 wallets like Metamask, Ledger, Trezor or WalletConnect. BasedApp works with more than 100+ mobile wallets via WalletConnect.

To make it easy for consumers to use BasedApp on-the-go, we have integrated Magic.link, a leading web3 Wallet-as-a-Service (WaaS) to provide social logins for users. When users login with Google, Email or Phone Number, their keys are derived from these logins by magic.link, a Web3 wallet provider.Magic.link securely derives a users' private key given their social login such as Google account, Email or Phone number.

To date, Magic has created more than 20 million unique wallets, and is trusted by brands such as Mattel, Macy's, Xsolla, Immutable, and many others. Magic.link's delegated key management service provides scalability and enterprise-grade security, with SOC2 Type 2, CCPA, GDPR, HIPAA, ISO compliance. To read more about the security of magic.link, please visit trust.magic.link.

Backup addresses

BasedApp smart contract wallets also allows you to add other addresses as "backup addresses". These address can execute transactions on your behalf - so be careful who you add as a backup address! Backup addresses are useful for recoverability of your account.

For example, you can login to BasedApp with Google login (powered by magic.link). Then you can also add another address from your hardware wallet as a backup. This way, you can still access your funds in the event that you lose access to your Google account or if magic.link were to go down unexpectedly one day.

Backup addresses should be an address that you have control over the private key. Do not add your exchange address (e.g. Binance, Coinhako, Coinbase, etc) as a backup addresses - exchange addresses cannot control the BasedApp account on your behalf.

How do i add a backup address?

To add a backup address,

  1. Go under "Profile" (accessible from top-right of the screen)

  2. Click "Add Backup Address"



  3. Enter your new backup address. Add an address where you control the keys. Do not add an exchange deposit address or another smart contract wallet address.