Smart Contracts in Action: The First Vendor Contracts Go On-Chain

8 min

Wow, what a week it has been here at Intersect. The first on-chain vendor smart contract has been signed, and the first vendor milestone has been successfully withdrawn!

This milestone is not just a win for Cardano, but for our entire ecosystem as well. It's a testament to the collective effort of hundreds of individuals who have contributed to this process. Your role in making this a reality is invaluable. Thank you all for your contributions. 

In the following blog, we will talk you through what has happened and where to find the details.

Treasury Reserve Contract 

Firstly, over the last couple of weeks, as treasury withdrawal governance actions have been enacted, treasury funds have been withdrawn into the Treasury Reserve Contract (TRC) specified in the governance actions. This first smart contract holds treasury funds until they can be proportioned out to vendors as per their individual proposals. 

You can verify these funds successfully arriving at the following address and associated reward address:

And payment address

Inspecting the payment address, you will see a number of transactions taking place, a few test transactions, 10 ada in and out, followed by three withdrawal (initalize) transactions, where funds from the enacted treasury withdrawals were moved from the staking address to the payment address.

 

Metadata has been provided for each UTXO specified in these transactions to make them easily readable. Example from 96cb…b6ef;

"body": {
    "event": "initialize",
    "reason": [
      "Withdrawing Intersect administered funds for treasury withdrawal",
      " governance actions enacted at the start of Epoch 576"
    ],
    "outputs": {
      "0": {
        "label": "MLabs: Plutarch & Cardano.nix, Elliptical Curves Research",
        "identifier": "UTXO-EC-0015-0022-ER-0005-25"
      },
      "1": {
        "label": "Blockfrost Platform Community Budget Proposal",
        "identifier": "UTXO-EC-0003-25"
      },
      "2": {
        "label": "zkFold ZK Rollup",
        "identifier": "UTXO-EC-0009-25"
      },

 

At the time of writing, five more proposals are currently in a state of ratification; shortly after these pass enactment, a similar transaction will take place to proportion these proposals into usable UTXOs.

This TRC holds all treasury funds on-chain and not directly by any single administrator or custodian.

Vendor Smart Contracts

Once off-chain contracts have been agreed with the vendor, a required constitutional step, a PSSC instance of a smart contract will be created. 

A PSSC instance is effectively a vendor-specific smart contract. The vendor contract takes the proposal value from the TRC, using the UTXOs defined in the previous step. The vendor contract associates a delivery schedule that includes a milestone name, deliverables, payment date, and payment amount, which matches the signed legal contract.

The vendor contract is then sent out for signature. This fund action signature is the permissioned MofN specified within the TRC; it requires Intersect, our independent oversight committee, and the vendor to sign the smart contract on-chain. The first vendor smart contract has now been successfully signed, and you can verify this in the transaction that follows.

 

A record of funding for this vendor contract is also seen at the TRC address. Over the coming days, approximately fifty vendor smart contracts may be funded, corresponding to the treasury withdrawal governance actions and the UTXOs at the TRC address.

There are some constraints in these early smart contract deployments. There is a maximum number of milestones that can be specified per smart contract, and only one vendor withdrawal address can be specified. Multiple vendor smart contracts will be used where these constraints are encountered. This accounts for the higher number of vendor smart contracts than approved proposals. 

Each Vendor contract again has metadata associated, including project name, ID, and description, making it easily identifiable, even in cases where multiple smart contracts may have been deployed. 

Milestone Withdrawal 

Following the successful signing of a vendor smart contract, the payment schedule becomes live. Once payment dates have matured, the vendor will be able to withdraw the milestone amount. 

The first milestone for the first contract has now been withdrawn, and you can verify this in the following transaction.

 

This withdrawal amount aligns with the vendor's smart contract schedule, including the payment date and amount. The transparency of this process is further reinforced by the fact that this vendor contract can be traced back to the TRC instance, and the TRC funds can be traced back to the treasury withdrawal actions.

Next Steps

We understand that the funds associated with these treasury withdrawals are crucial to many in the ecosystem. In many cases, they trickle down to subcontractors, other users, and actors within the ecosystem. Over the coming weeks, Intersect will work with all successful vendors to ensure that legal and smart contracts are processed and signed as expeditiously as possible. We will provide ongoing support, especially in the early stages of smart contract adoption and use, to ensure they best serve the community as a whole.

Stay Informed and Engaged

Over the coming weeks, we will continue to share updates and success stories from the projects under our administration. We will also be holding open delivery assurance sessions for vendors and soliciting input on our feature backlog for smart contract development. Follow @IntersectMBO for all of the above.