Hi everyone,
I’ve been learning Daml/Canton by extending the cn-quickstart app. I added a sealed-bid auction mechanism for renewing software licenses, entirely on-chain. I’d love feedback from the community.
Instead of direct license renewal, a provider can auction a RenewalRight. The flow is:
- Provider creates a RenewalRightAuction
- Registered users get a BidSlot and submit sealed bids (each bid is a separate RenewalRightBid contract implementing AllocationRequest)
- The provider determines the winner in a new contract with no observers
- Settlement executes payment and creates a new RenewalRight that must be used to renew the license.
Design choices:
- One contract per bid to avoid write collisions between competing bidders.
- Privacy: losing bidders only see their own bid, not the other bids or the auction result.
I searched a bit for projects involving auctions in canton but didn’t find a lot. I saw that in the HKMA’s Project Evergreen, they kept the bookbuilding off-chain and only used DLT for settlement. Are there technical reasons that would favor keeping auction logic off-chain on Canton?
