Configurable Rights Pool
The Bunicorn Configurable Rights Pool is the reference implementation of a smart contract-controlled Bunicorn Flexible Pool. It is flexible enough to be used directly to create customizable Smart Pools. Like the Flexible Core Pool (BPool), it is created from a factory - and as the name implies, its functionality can be customized to meet the needs of your project.
For example, the first template is Ampleforth's Elastic Supply Pool, which features a different mechanism for updating weights, consistent with its daily rebase operation. We will add more templates as we discover further interesting use cases!
As explained in Core Concepts, a core Flexible Pool's parameters can be changed at will while in the "controlled" state - when only the pool creator can add liquidity. The only way to "open" the pool to outside investment is to "finalize" it - after which all pool parameters are fixed. This is great for security and trust minimization - but what if you want to do liquidity bootstrapping, dynamically adjust swap fees, handle a token with unique properties (such as AMPL), or implement a complex investment strategy? For that, you'll need to change parameters dynamically on "live" pools - and that requires a Smart Pool.
In summary, a Flexible Core Pool has "all rights" while controlled, and then "no rights" after finalization. A Configurable Rights Pool has whatever rights you give it, for all time.