Arcadia DeFi Accounts
Last updated
Last updated
Arcadia Accounts sit at the center of the Arcadia Protocol. They are build to optimise management of assets and financial contract within DeFi.
The Accounts are responsible for the following actions:
They hold their owners assets.
They are the interface to manage assets (either by the owner itself, by automations, by trusted third parties or by any other type of asset manager).
They can be used as margin Accounts, where the total value of the assets held by the Accounts is used to back liabilities issued against the Account.
Users can create one or more Arcadia Accounts through the Arcadia Factory. Each Arcadia Account is a separate smart contract, owned by one single user. When creating an Account, the user can specify a number of parameters:
A salt, which can be used to precalculate the Account address or to create a vanity address.
The Account Version, more on that in section Versioning and Types of Accounts.
Optionally, the user can set a Creditor, if they create a Margin Account.
Arcadia Accounts are assets of their own and have a single owner. Initially the creator of the Account is also it owner, but ownership can be changed.
To keep track of ownership, the Arcadia Factory uses the ERC721 standard, where each ID maps one-to-one with a specific Account. Since the ERC721 standard is used, Arcadia Accounts are composable with existing infrastructure to change ownership, or even to sell Accounts.
The Arcadia Protocol can work with multiple Account versions. Different implementations of the Account logic can (co)exist and each implementation is uniquely identified with a specific version in the Account Factory.
Under certain circumstances, Account Owners can even choose to upgrade their Account to a different version, see Upgradability.
There are two main types of Accounts (Spot Accounts and Margin Accounts). But versioning is more granular, for each type there can exist multiple versions, for instance to offer new features, or to enable the Account to hold a new asset type of a new ERC standard.
Spot Accounts are the simplest type of Accounts, they offer all the main features of an Arcadia DeFi Account except the ability to back liabilities. They can for example not be used to borrow assets against.
The advantage of Spot Accounts over margin Accounts is that they are truly permissionless and can hold any asset or asset type. Unlike Margin Accounts, which work with allowlists for the assets they can hold.
Margin Accounts are Accounts that can have liabilities to one or more Creditor(s). Current Margin Account have maximally one Creditor per Account, but future versions might be multi-Creditor.
The Margin Account mitigates the counterparty risk borne by the Creditor, by guaranteeing that the total value of all assets within the Account is always bigger than the liabilities against the Account (it is over-collateralized).
An example of a Creditor is a Lending Pool. The Account Owner can borrow funds from the Lending Pool on the condition that the total value of the assets held by the Account is always bigger than the liabilities against the Account. A more detailed explanation about the margin requirements and calculations can be found on the Page Margin Calculations and Requirements
Since the assets held by the Account serve as collateral backing liabilities, there are some restrictions which assets can held by Margin Accounts. It are the Creditors who choose which assets are allowed as collateral, and set appropriate risk parameters for these assets.
The following versions are deployed:
Spot Accounts:
Margin Accounts:
Arcadia Accounts are based on the ERC-1967 standard for proxy contracts. Each Account contract points to a certain Account logic contract. It is the logic contract that implements the features to: deposit/withdraw assets, do flash actions, manage assets, authorise delegations...
Creditors can determine which Account logic versions are allowed to be used by their Debtors. As such, they can block version with certain features or highly-customized Account logic can be implemented for Creditor-specific versions should this be required.
The Account logic is upgradable, enabling existing Accounts to make use of newly introduced features in a new Account version if they wish. Upgrading Account logic is always on an opt-in basis, it can never be enforced by the Arcadia Protocol. The Accounts can only be upgraded to a different version if both the Account owner and the Creditor (if a margin account is opened) accept the specific version.
When users upgrade their Accounts, they don't have to migrate any assets or close liabilities and the Accounts keep the same contract address.