Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design Cardano USDC minting policy #66

Closed
Tracked by #63
serejke opened this issue Aug 2, 2023 · 2 comments
Closed
Tracked by #63

Design Cardano USDC minting policy #66

serejke opened this issue Aug 2, 2023 · 2 comments
Milestone

Comments

@serejke
Copy link
Contributor

serejke commented Aug 2, 2023

Overview

USDC on Cardano is a mint/burn token:

  • when a Khalani protocol message (authorized by ISM) from Khalani chain hits Cardano, N USDC tokens must be minted to a recipient address
  • when user exits Cardano, the USDC token gets burned and a Khalani protocol message to Khalani chain gets dispatched in the same transaction

Task

This task is to design the USDC minting policy taking into account Khalani protocol mechanics and necessary off-chain infrastructure.

@serejke serejke mentioned this issue Aug 2, 2023
5 tasks
@serejke serejke changed the title design Cardano USDC minting policy Design Cardano USDC minting policy Aug 2, 2023
@serejke serejke added this to the Cardano USDC milestone Aug 2, 2023
@hai-kreate
Copy link
Contributor

hai-kreate commented Aug 3, 2023

Here are the steps needed to implement this USDC minting policy:

  • Implement an Inbox script: Reject duplicate inbound messages #50 (comment).
  • Parameterize the multi-sig ISM with the Inbox script and requires a nonce check & update when issuing an authentic message.
  • Allow burning the authentic token (when consumed) in the ISM minting policy.
  • Implement the USDC minting policy parameterized by a multi-sig ISM (Khalani's in this case). A mint must burn an authentic message with the minting number read from the burned message. A burn is always accepted.
  • (Optional) Parameterize the USDC minting policy with the Outbox script and requires a burn transaction to dispatch a valid message to the Outbox.

Note that we can share the minting policy for any wrapped token by reading the token name (USDC, USDT, etc.) from the (authentic) message body.

@hai-kreate
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants