Frequently asked questions about CAPE
What is CAPE?
Configurable Asset Privacy for Ethereum (CAPE) is a smart contract application that enables the creation of digital assets with configurable privacy properties. The protocol supports both entirely new assets that are created directly within CAPE, as well as granting configurable privacy properties to pre-existing Ethereum tokens.
What types of operations are supported in CAPE?
The operations that are supported in CAPE are as follows:
- Create and mint operations creates a new digital asset native to CAPE with properties configured by the asset creator, a unique identifier that lets users differentiate between asset types, and an initial owner's public key.
- A sponsor wrapped asset operation creates a new digital asset type in CAPE for a designated Ethereum token, enabling units of this token on Ethereum to be wrapped into units of the CAPE asset type. The asset sponsor sets the viewing and freezing policies that apply to this sponsored asset type.
- A wrap operation wraps an Ethereum token into a sponsored CAPE asset type.
- An unwrap operation converts a CAPE asset back into its original form (e.g., ERC-20 or ERC-721).
- A transfer operation modifies the owner of the digital asset. Asset transfers nullify existing records of ownership and create new records of ownership.
- A freeze/unfreeze operation allows a designated party to prevent/enable an owner transferring their assets.
What types of policies are currently supported in CAPE?
CAPE supports viewing policies as well as freezing/unfreezing policies for each asset type. Viewing policies currently entail:
- Specified sets of view keys so that designated parties can see any combination of:
- sender and recipient addresses
- input and output amounts
- credentials or attestations attributed to the sender
Freezing policies are designed to reflect the type of controls that entities like stablecoin providers currently have over their assets. CAPE freezing policies entail:
- Designated parties preventing the transfer of an individual asset record for any given asset type until that asset record is unfrozen
The CAPE graphical user interface will disclose to users what policies are associated with given assets. This information will also be visible to those examining the code associated with any CAPE asset.
What roles are being fulfilled within CAPE?
Description of roles:
- Asset Creator – Parties that mint digital assets natively on CAPE or that sponsor wrapped asset templates for users to port their Ethereum based digital assets to. Asset creators configure tracing and/or freezing policies appropriate to their and their users’ needs.
- Asset Owner – Party that owns a digital asset on CAPE and has the ability to transfer ownership of this asset to a new owner.
- Viewer – A party that is able view certain information about transactions transferring an asset for which they hold a view key, as determined by the viewing policy of that asset.
- Freezer – A party that is designated by a freezing policy to be able to prevent or re-enable the transfer of an individual asset record.
- CAPE Service Providers (Relayers) – Protocol participants that collect transactions from users and submit them to the CAPE contract on the Ethereum blockchain.
- Credential Issuers – Parties that issue digital credentials to users (e.g., to asset owners). A digital credential is a signed attestation that includes a list of attributes about the user. Credentials may be private, viewable by a designated set of parties, or viewable by anyone. Credential issuers are identified by public key certificates.
How do I create a new asset on CAPE?
Anyone can create a new asset with configurable privacy through the CAPE GUI. Assets on CAPE privately secure all transactional data by default (i.e asset type, sender and receiver, amounts, and credentials). The asset creator can choose to enable viewing or freezing policies for their assets.
What kind of Ethereum tokens work with CAPE?
Users can wrap any existing ERC-20 (and soon ERC-721) tokens to use within CAPE. This allows users to add all of CAPE’s configurable privacy features to their Ethereum tokens.
How do I create a new wrapped ERC-20 asset type?
Creating a new wrapper for Ethereum assets in CAPE is permissionless, so in case the asset you want to wrap isn’t available yet you can freely add it to CAPE yourself.
What is a viewing key and how is it used in CAPE?
Viewing keys allow asset creators to view certain transactional data that is confidential to the public. i.e if you own a viewing key for a specific asset, you can see amounts and/or addresses involved in transactions with that asset type depending on how the viewing policy was set up.
What is a freezing key and how is it used in CAPE?
Freezing keys allow asset creators to freeze the asset records(a single spendable 'coin' within CAPE) for an asset type corresponding to the freezing key they own. Asset records that are frozen cannot be spent until they are unfrozen.
What does the faucet do?
For the testnet deployment of CAPE, (non-value) CAPE testnet “fee” tokens can be obtained from the CAPE Faucet by providing a valid CAPE address.
Please note that this is a testnet token only, not for value transfer or swapping. There is no CAPE token sale or other distribution happening or currently planned.
Why are relayers needed?
The purpose of the CAPE Relayer is to prevent Ethereum gas fees, which must be paid transparently by an Ethereum account, from being linked to CAPE users.
Is there a native CAPE token?
There are only (non-value) testnet tokens, which can be requested solely through the faucet. The testnet fee token cannot be transacted for actual value and are solely used to simulate “paying” for transaction fees within CAPE. They are not for sale, swapping, or redeeming. There is no CAPE token sale or other distribution happening or currently planned.
When will mainnet be released?
We have a lot of exciting product releases coming up. Please check back to our site or sign up for our newsletter to receive any updates.
Where can I learn more?
Visit us at the Espresso Systems website and come by our Github. Please also join the conversation on Twitter and Discord!
What happens when the CAPE smart contracts are upgraded?
When the CAPE smart contracts are upgraded to test out new features or fix bugs, the old ledger states will be lost. This means that any token balances and created assets will disappear when a new version of CAPE is deployed to testnet. The Espresso Systems team will notify users of planned updates ahead of time.
Why do I see a RPC error when I request $CAPE tokens during setup?
We are actively working on improving RPC reliability. Your $CAPE tokens should be processing if you see this message.
Why do certain operations (such as wrapping an ERC20 asset) take so long in CAPE?
In the case of wrapping, the extra time is needed for the relayer to push another transaction to the CAPE contract before the wrapped assets can be released.
Other operations may take longer due to EQS processing time and the fact that CAPE requires 6 confirmations before reflecting the results of a transaction. This will not be an issue once the Espresso chain is live. What are the assets (capedUSDC, etc) that I see in the asset registry when I first created my wallet?
The capedUSDC and other pre-existing "caped" assets are demo assets that the Espresso team has created to let the users interact with existing ERC20 tokens. This is NOT formally affiliated with USDC or DAI tokens in any way.
Why am I getting an error saying this asset already exists during asset creation?
You have already created the asset type (same view policy and freezing policy configuration of an ERC20 token) in the asset library. ERC20 asset of the same contract address and view/freezing configuration can only be sponsored once by the same user. I skipped the faucet. How do I get $CAPE tokens to make transactions?
You can request test $CAPE tokens by clicking on the "Faucet" section in the left hand bar. You can request more tokens from the faucet anytime. You can also always ask people in the Discord to send some tokens to your CAPE address! I am trying to create an asset or sponsor an asset type that requires viewing or freezing keys. Where do I get these keys?
You can obtain the viewing and freezing keys by going to the “Account” section and generating the keys in the freezing and view key section.