Skip to main content

How it Works

CIP-68

We are exploring concepts intiailly laid out in Cardano Improvement Proposal 68

About Inline Datum

Inline datum is stored in UTxOs on the Cardano blockchain. It can be queried via GraphQL and displayed in applications. Inline datum is more than just "mutable metadata", it can also be validated against with Plutus.

About Reference Validators

Inline datum can be added to a UTxO at any Cardano address. This includes regular wallet addresses, multi-sig addresses, Plutus validator addresses, and even unspendable addresses. The implications are different for each, and present options from which developers can choose.


Outlining Process for Mesh Integration

  1. Minting the token pair
  • mintBoth
  • add ref token to existing contrib -- must be same policy id
  • add contrib token to existing ref -- must be same policy id
  1. Naming Conventions:
// grab demo code here
const contribToken = wallet.getPolicyIdAssets(contribTokenPolicyId)
const _contribHex = contribToken.unit.substring(62);
const refToken = contribToken.unit.substring(0, 56) + "313030" + _contribHex;

// Asset.unit: <policyId><REF | CONTRIB><tokenName>
// For ref instance - maybe we can configure REF and CONTRIB values?

our goal is to make it easy to find Reference Token given a Contrib Token. There are some options for parameters

  1. Variables

    1. useContribToken hook: when Contributor Token is connected, a hook could be configured to automatically grab the associated datum. What does it expect about where to look for this datum?
      1. referenceTokenAddress
      2. naming convention details
      3. ...?
  2. Rules for Changing: What are the rules for changing the datum with the ref token?

    Outside of Mesh

    1. Immutable? Has value: accessible to validator
    2. Arbitrary Address: signing keys can be used to change the datum
    3. Contract: customized validation rule
  3. Schema for datum

    1. CIP-68 compliance -- boilerplate in Mesh
    2. Options for experimentation

What doesn't work yet

Potential Changes

What is the best way to associate a contributor-token from a reference-token?

  • Testing Code
  • Writing our proposals