Skip to main content

Portkey Glossary


An Externally Owned Account (EOA) is a type of account that is controlled by private keys, and can be created at no expense. EOAs enable users to initiate transactions, swap tokens, and interact with DApps and smart contracts. However, EOAs can be challenging to use and pose security risks due to the complexity of the private key, which is susceptible to theft or hacking. If the private key is compromised and falls into the wrong hands, EOAs become irrecoverable, and users will lose control over them.


Account Abstraction (AA) is a technology that allows users to use programmable wallets instead of EOAs as their on-chain accounts. Different blockchains may choose different methods to implement AA, as Ethereum adopts the ERC-4337 approach while aelf invents its own approach to realise AA, which is Virtual Address (VA).


ERC-4337 is an Ethereum Request for Comments (ERC) in which it describes an approach to realise account abstraction on the Ethereum network and EVM-compatible blockchains, without any consensus-layer changes. ERC-4337 enables the use of contract account wallets where each user's account is deployed as an individual smart contract. When initiating a transaction, AA wallets on Ethereum interact with multiple components like UserOperation, Bundler, EntryPoint, Aggregator, and Paymaster.


Virtual Address (VA) is aelf's approach to enable account abstraction, similar to what ERC-4337 accomplishes on Ethereum, but with a simpler and more cost-effective method.

To understand aelf's VA approach, one needs to know how virtual addresses are generated. Users' virtual addresses are generated using two key elements: the AA contract address and caHash. When a user requests VA account creation, a transaction is initiated. The ID of this transaction, along with the hash of the previous block, is used to calculate caHash. This caHash is then utilised, in conjunction with the Portkey AA contract address, to generate the user's virtual address.

Different from ERC4337, users' addresses are not direct contract addresses, rather, they are on-chain virtual addresses generated by AA contract. Users can manage their VA addresses via manager addresses, which are assigned by AA contract and linked with users private keys stored on their local devices.

ERC-4337 vs VA

Account Creation Individual on-chain contract deployment for each user's accountAddress is generated based on Portkey AA contract and caHash, no need for individual contract deployment.
Private Key Not needed to log inNot needed to log in
Cost of Account Creation Comparatively high cost due to contract deployment feesThe cost is less given each account does not need the deployment of a separate smart contract, and fees incurred for account creation with VA approach can be covered for users via aelf's delegation mechanism
Transaction Processing Process Complex processing flow with various roles involved, such as UserOperations, Bundler, EntryPoint, Aggregator, and PaymasterSimpler approach by interacting only with the Portkey AA contract via Manager Address
Transaction Fee High gas fee on Ethereum0.003 ELF per transaction on aelf
Account Recoverable YesYes
Third Parties Covering Transaction FeesCan be done via PaymasterCan be done via delegation mechanism
More Functions Can be programmedCan be programmed

Social Recovery

Social Recovery is an idea that first introduced by Vitalik Buterin, the Ethereum blockchain's founder, aiming to help crypto users overcome the risk of potential loss of wallets and safeguard their investments from theft. It eliminates a crypto wallet' absolute depenency on the private keys for wallet access and security. Instead, it resorts to other accounts with which the account owner has social connections with (in most cases they are called "guardians") to manage wallet access and safeguard wallet security. The nature of this design also enables social recovery of crypto wallets since users can regain access to their wallet with the help of their socially connected accounts.

Portkey's social recovery relies on two key roles: guardians and verifiers. It is applied during the processes of account creation, login and logout , restoring an account when it's lost, and adding or removing guardians. When users make requests of these aforementioned, Portkey will resort to verifiers to send verification code to guardians, and guardians will then collect the verification results and compelet the user identity verification. After the user identity is successfully verified, Portkey will then create and assign a new manager address via which users control their locally stored private keys, and further manage their virtual addresses corresponding to their wallet accounts.


Guardians are essentially accounts socially associated with the wallet owner. They play the key roles in social recovery process of an AA wallet. They can belong to someone the user trusts or can be directly owned by the user themselves. Guardians can be of different types, such as email, social credentials, other wallet accounts, and so forth.

Portkey's Guardians serve to secure the user's wallet and assist in the social recovery process by helping to collect identity verification results and complete the identity verification. Portkey allows various account types for guardians, including emails, Google Accounts, Apple IDs, and Telegram accounts.


In Portkey, verifiers are external verification service providers involved in the authentication process for social recovery. They offer verification options such as Email, SMS OTP, Google, or Apple verification. When users create an account, a verifier is randomly assigned to it. However, users have the flexibility to manually select verifiers for each guardian when adding more guardians to their accounts. This customisation strengthens the overall security of social recovery in Portkey and enables users to tailor the level of decentralisation for their wallet according to their preferences.


Delegatees are third parties that voluntarily cover transaction fees for users, playing a crucial role in Portkey's unique delegation payment mechanism. This mechanism is essential for providing low-cost services and a user-friendly experience on Portkey.

Projects integrating Portkey SDKs can also leverage this mechanism by inviting interested parties, whether they are companies or individuals, to become delegatees. Delegatees have the flexibility to choose the types of transaction fees they want to cover, whether it's fees associated with account sign-up, token transfers, or others. In return for their contributions, projects can collaborate with delegatees, creating a mutually beneficial delegation process that benefits users, projects, and the delegatees themselves.