The existing scenarios are small, self-contained validators. CIP-113 programmable tokens are a different weight class: a contract pattern that behaves like an account model with its own mini-ledger layered on top of Cardano's native UTxO tokens. It sits at the center of a lot of Cardano DeFi (regulated stablecoins, freeze/seize, transfer restrictions), so its cost profile is more representative of what production DeFi actually pays than any of the current benchmarks.
It is a good CAPE candidate for a second reason: it already exists in more than one language. There are Plutarch and Aiken implementations to measure against, so adding a Plinth implementation gives an immediate cross-language comparison on a realistic workload rather than a toy one.
References:
Scope note: this is larger than the current scenarios and needs a proper spec before measurement — datums, redeemers, the set of transaction contexts, and both accept and reject cases. Defining that spec is the first task, not writing the validator. I'd contribute the Plinth implementation once the scenario shape is agreed.
The existing scenarios are small, self-contained validators. CIP-113 programmable tokens are a different weight class: a contract pattern that behaves like an account model with its own mini-ledger layered on top of Cardano's native UTxO tokens. It sits at the center of a lot of Cardano DeFi (regulated stablecoins, freeze/seize, transfer restrictions), so its cost profile is more representative of what production DeFi actually pays than any of the current benchmarks.
It is a good CAPE candidate for a second reason: it already exists in more than one language. There are Plutarch and Aiken implementations to measure against, so adding a Plinth implementation gives an immediate cross-language comparison on a realistic workload rather than a toy one.
References:
Scope note: this is larger than the current scenarios and needs a proper spec before measurement — datums, redeemers, the set of transaction contexts, and both accept and reject cases. Defining that spec is the first task, not writing the validator. I'd contribute the Plinth implementation once the scenario shape is agreed.