Asset Creation + Definition
How to bring customized privacy to assets new and old
Each asset on CAPE has an associated asset type definition which defines the privacy properties of the asset. These properties are configured as policies that are set by the asset creator and apply to all transfers of asset records of the type. In addition to the asset viewing policies, CAPE also supports additional controls via asset freezing policies.
In order to create a domestic CAPE asset, the asset creator will first define the asset type by configuring these policies and then will mint the asset, bringing tokens of that asset type into existence. Please note that when you mint a CAPE asset, the minted token amount is public. i.e. users cannot mint unlimited amount of token in private.
In order to enable users to wrap tokens from Ethereum into CAPE, an asset creator sponsors a wrapped asset type that defines these policies. Users can then wrap Ethereum tokens into those wrapped asset types.
Asset viewing policies enable the holder of a viewing key to view select details regarding the transfers and holders of all of the assets of a given type.
The viewing key is configurable and does not necessarily reveal all the transaction details. There are a three options. If address viewing is enabled, a viewing key holder can follow assets from the original creator to all subsequent recipients. If amount viewing is enabled, a viewing key holder can see the volume of the asset being transferred at the level of individual transactions, but cannot see recipients. If both are enabled, a viewing key holder can see the complete transaction graph for the asset. Another attribute that can be revealed is the hiding factor of the record commitment. This is important for freezing policies described below.
Asset freezing enables the holder of a freezing key to prevent the transfers of specific asset records by publishing a freeze transaction on them. The frozen assets maintain their ownership, however transfers of frozen asset records are invalid. An unfreeze transaction allows transfers to be validated as normal. Freezing policies require a full viewing policy that reveals the records’ addresses, amounts and hiding factors. This is like the controls that many major stablecoin providers retain over their assets on Ethereum.