Account contracts are smart contracts that provide users with programmable access to funds. They replace the need for a user to manage funds in keys and provide wallet creation, permission control, and account recovery functionality to Web 3 applications.
Account contracts are made possible by taking advantage of a smart contract's ability to hold funds. Instead of requiring a private key that ensures the proper ownership of accessible funds, a smart contract uses the logic written into it to provide access control. A developer simple needs to write into the smart contract codebase the logic by which funds can be deposited, withdrawn, secured, and recovered.
This means that new users can easily interact with Web 3 applications without being hindered by the possibility of losing access to funds through the mismanagement of keys.
Abridged's account contract implementation is counterfactually instantiated, which means that a new user is automatically provided with a reserved account address that can receive funds. Using any account contract typically requires a small deployment fee to gain full access to the funds, but having it counterfactually instantiated means the user can immediately gain entry to your application without the upfront deployment fee requirement.