Cycle Compensation

This post is a WIP…I just want to get it out and will update it soon.


Canisters should pay for their software dependencies, many of which will be open source libraries. This can be achieved by distributing some portion of cycles from a canister to its software dependencies.

A simple implementation could for example distribute a quantity of 10% of cycles burned over a period of a time to all software dependencies.

IMO the system should be ~0 friction and voluntary, but on by default.

Prior Discussion within ICP

Similar Ideas in Other Ecosystems

EIP-6969: EIP-6968: Generalized CSR Protocol - EIPs - Fellowship of Ethereum Magicians

Contract Secured Revenue: Contract Secured Revenue (CSR) | Canto

Main Idea

High-level Rough MVP Design


As a developer, i would benefit from this in any form, but i can’t see a clear picture of a good model

How would you approach the following issues

Compensation metrics
Is compensation based on
Instructions executed in the library?
Equally distributed between each library for the canister?
How many times each library is called?
I can see big cons for each

Gaming the system
Depending on what metrics are used for compensation, i could see developers changing what they develop, for better or worse, based on compensation/incentives
Also i could see bad actors forking libraries or other things to try to get compensated for no work

How would libraries and owners be identified. Is there a sign up process to get an account to be paid?

How can each canister know each library if compiled down to wasm?

What if there are many contributers. Does each library need a DAO to compensate the contributers in a fair way?

Also I’m concerned about backlash for the opt out process for developers and social pressures to compensate

To me this sounds like a process where maybe we can build in some metrics around library usage, then have some DAO/NNS process for picking who to compensate and how much. Though NNS has its own political issues. But something like gitcoin grants/retroactive funding using metrics added in to get insight into what is used