As a model developer, I want to register my model in reppo protocol so that I can track usage, as well as earn tokens for modeling and revenue from usage.
Acceptance criteria:
A Reppo ID is associated with each model in the model pool
Each model in the model pool has a unique model CID, which of course changes each time the model is updated
The model developer is able to claim/prove ownership of the model
The modeler can write metadata about the model in the model pool
If the modeler wishes, the model’s intellectual property is kept private
It should take no more than one day to deploy the model
The model is on a server where model inference customers can access the inference results
Sprint planning notes
Assumptions
The modeler arrives at Reppo model registration with a completed model
The modeler has chosen a model execution framework, and implemented it
~~The modeler is capable of setting the (non-protocol) token and cost required to execute the model
Core workflow
Step one:
The modeler must have a blockchain account on the same chain as the registration contract
The modeler’s account must have the correct funds for paying for transactions
As a model developer, I want to easily setup a blockchain account so that I can interact with the Reppo protocol.
Optional step:
If the modeler would like to earn $REPPO rewards, they must stake $REPPO in the staking contract.
As a model developer, I want to buy $REPPO tokens so that I can stake the required amount in the model registration contract in order to earn $REPPO model contribution rewards.
As a model developer, I want to stake enough of my $REPPO tokens in the model registration contract so that I can earn $REPPO tokens when I contribute a model to the model pool
Step two:
The modeler must connect their blockchain account to the Reppo model registration contract using the Reppo SDK (or front-end UI)
As a model developer, I need some code (or a front-end UI) that helps me connect to the Reppo model registration contract using my blockchain account so that I can update the contract.
Step three:
The modeler gathers the required metadata for writing to the Reppo model registration contract
As a model developer, I need a UI workflow that tells me what model metadata is required and in what format so that I can ensure my model is properly registered.
As a model developer, I need to know what metadata is required for me to qualify for $REPPO contribution rewards so that I can earn the reward when I register my model in the registry contract.
Step four:
The modeler uses their blockchain account to write model metadata to the Reppo onchain contract. The following metadata is written:
(1) model execution instructions
(2) Execution NFT requirements (i.e., access token) Price of execution and acceptable tokens
(3) Training data provenance/proof
(4) Tell the registration contract about the model’s terms and conditions of use (Licensing and royalties for remixing)
As a model developer, I need an immutable record of model metadata and model usage instructions that is easy for model consumers to access so that my model can accrue reputation and I can earn revenue from the usage of the model.
System requirements:
The contract creates/updates the following metadata:
Number of executions
Model CID
The $REPPO reward contract sends $REPPO rewards to the coinbase account specified in the registration contract, iff all requirements for earning $REPPO model contribution rewards have been met.
$REPPO model contribution reward requirements:
1k $REPPO tokens have been staked in the registration contract
A training data provenance proof is included in the model registration
An execution proof has been specified in the model registration
Discussion notes:
Tell the registration contract about the model execution instructions
Specify the execution interface (how to initiate the inference request)
We would prefer that the interface be a model-specific Reppo onchain contract (capture this as a dev task)
Execution NFT requirements (i.e., access token)
Do we need an NFT (why not just use a USDC fee at the time of request)? Yes, yes NFT
Batch minting (lower price at higher batch count)
Modeler can subsidize NFT for specific audiences
Decision 9/1/2024: after further discussion, it is simpler and more straightforward for the user to pay in an erc20 token specified by the model developer. Also, the benefits cited for using an NFT are features that have not been proven high priority.
Should this be a model-specific NFT (or generalized Reppo NFT)? Yes, model specific
If generic the cost to mint (execute the model) is the same across all models. This doesn’t reflect reality.
Model specific makes more sense.
How is the price of execution determined? Modeler can set/update this outright in the registration contract
Will the execution env will act as the model supply? Execution can scale and increase the price of execution the NFT to account for their higher costs.
Why should this information be onchain? If not, onchain where will it exist?
Censorship resistance, interoperability with Ritual, and easier to track the history of inference requests.
The burden shouldn’t be too heavy for the modeler, since it is a low freq transaction
What metadata needs to exist in registration contract?
Training data provenance/proof
Number of executions
Model CID
Tell the registration contract about the model’s terms and conditions of use
@DavideSilva I removed any a.c. related to model asset IP, execution/data proofs, and #REPPO rewards. I added the Epic category label to this issue, and have us completing the epic by Nov 6th
As a model developer, I want to register my model in reppo protocol so that I can track usage, as well as earn tokens for modeling and revenue from usage.
Acceptance criteria:
Sprint planning notes
Assumptions
Core workflow
Step one:
The modeler must have a blockchain account on the same chain as the registration contract
The modeler’s account must have the correct funds for paying for transactions
As a model developer, I want to easily setup a blockchain account so that I can interact with the Reppo protocol.
Optional step:
If the modeler would like to earn $REPPO rewards, they must stake $REPPO in the staking contract.
As a model developer, I want to buy $REPPO tokens so that I can stake the required amount in the model registration contract in order to earn $REPPO model contribution rewards.
As a model developer, I want to stake enough of my $REPPO tokens in the model registration contract so that I can earn $REPPO tokens when I contribute a model to the model pool
Step two:
The modeler must connect their blockchain account to the Reppo model registration contract using the Reppo SDK (or front-end UI)
As a model developer, I need some code (or a front-end UI) that helps me connect to the Reppo model registration contract using my blockchain account so that I can update the contract.
Step three:
The modeler gathers the required metadata for writing to the Reppo model registration contract
As a model developer, I need a UI workflow that tells me what model metadata is required and in what format so that I can ensure my model is properly registered.
As a model developer, I need to know what metadata is required for me to qualify for $REPPO contribution rewards so that I can earn the reward when I register my model in the registry contract.
Step four:
The modeler uses their blockchain account to write model metadata to the Reppo onchain contract. The following metadata is written:
(1) model execution instructions
(2)
Execution NFT requirements (i.e., access token)Price of execution and acceptable tokens (3) Training data provenance/proof (4) Tell the registration contract about the model’s terms and conditions of use (Licensing and royalties for remixing)As a model developer, I need an immutable record of model metadata and model usage instructions that is easy for model consumers to access so that my model can accrue reputation and I can earn revenue from the usage of the model.
System requirements:
Discussion notes:
Tell the registration contract about the model execution instructions
Execution NFT requirements (i.e., access token)
Do we need an NFT (why not just use a USDC fee at the time of request)?
Yes, yes NFTBatch minting (lower price at higher batch count)Modeler can subsidize NFT for specific audiencesDecision 9/1/2024: after further discussion, it is simpler and more straightforward for the user to pay in an erc20 token specified by the model developer. Also, the benefits cited for using an NFT are features that have not been proven high priority.
Should this be a model-specific NFT (or generalized Reppo NFT)? Yes, model specificIf generic the cost to mint (execute the model) is the same across all models. This doesn’t reflect reality.Model specific makes more sense.How is the price of execution determined? Modeler can set/update this outright in the registration contract
the NFTto account for their higher costs.