Canton Network Token Standard APIs (CIP-0056)
Refer to the Token Standard documentation section.Featured App Activity Markers API (CIP-0047)
- See the text of the CIP-0047 for its background on its design and its specification.
-
The Daml interfaces that are part of the Featured App Activity Markers API are defined in:
- splice-api-featured-app-v2 — current API
- splice-api-featured-app-v1 — previous API
-
The utility package
splice-util-featured-app-proxiesprovides templates that allow to delegate the usage of featured app rights to other parties for the purpose of executing token standard actions. Use these templates to earn app rewards on token standard operations, and to potentially share some of them with your users.
How to earn featured app rewards for wallet user activity
Assuming you are a wallet provider that runs a validator node for your users, then there are two options for you to earn featured app rewards for the activity of your wallet users. They are complementary, so you probably want to implement both of them:- Have your wallet users request your featured wallet provider party to maintain Canton Coin transfer preapproval contracts for them. Whenever such a contract is used to directly transfer CC to one of your wallet users, a featured app coupon is created for your wallet provider party.
-
Setup your wallet frontend such that the transactions submitted by your users create a featured app activity marker for your wallet provider party.
For token standard interactions, we recommend to use the
WalletUserProxytemplate as explained below. It enables you to earn featured app rewards on sending all CN tokens (including CC) and to earn featured app rewards when your users accept, reject, or withdraw a CN token transfer offer. It further provides the option to execute bulk transfers of CN tokens. If required, you can also write custom Daml code that creates the featured app activity markers for your wallet provider party on the relevant user actions. Feel free to reuse parts of theWalletUserProxyimplementation for that purpose. Make sure to publish your code using a package name under your control to avoid upgrading conflicts.