Rico Reflex Bond System

The Rico Reflex Bond System is a spiritual successor to the Dai and Rai systems, built with an emphasis on automation and market rate discovery.

A reflex bond is a synthetic asset that is mechanically similar to a collateralized stablecoin, but uses a moving par price relative to an external reference asset to balance supply and demand. See bank.dev/vox for details about price vs quantity rate and par price adjustment mechanism.


One of the primary design principles and differences from earlier iterations of the Rico system is an emphasis on minimalism. This makes it not only easier to audit, but easier to understand the entire system at once. Everyone using the system, and not just developers, should understand all the components and how they fit together.

There are only three core components:

And three auxiliary systems, defined by interface:

Finally, there are two tokens:


RISK is the system’s risk-share. It represents the present value of future interest from all RICO loans, minus bad debt bailouts. All profits and losses are immediately realized via RISK buy/burn or mint/sell.

Pricing Risk

The model for ROI on RISK is buy/burn, offset by mint/sell when bad debt must be covered. Buy/burn is like a share buyback, and leads to the same present value as a dividend model. To see how they are equivalent, consider a strategy that sells a fraction of its risk share equal to the fraction of global risk share burned. The seller’s cashflow from these sales are analagous to receiving a dividend for their fraction of the risk share, on a recurring basis.

Charging Interest in Real Time

There is some nuance related to how interest is calculated and charged. Interest is collected in real time. Every drip (which anyone can call) charges interest to all CDPs of a given type. drip adjusts the internal debt unit so that the amount owed reflects all interest up to present.

Because it can be called at any time, the debt owed can be considered a continuously prorated value. A less efficient but “more correct” implementation could force a drip before every single interaction, which would make all values actually prorated in real time.

Every drip also results in the creation of rico equal to the amount charged, which is immediately released into the market through the RISK buy/burn mechanism.

Effectively “principal plus interest” becomes just “principal” in real time, and this equals the amount of rico in existence. The value comes out of the value of the CDP. If the CDP becomes unsafe because the growing debt amount exceeds the minimum collateral ratio, it can be liquidated just like if the collateral value falls too much.

Again, the amount of credit and debt in the system are equal at all times. In a naive implementation, the amount of debt owed exceeds the amount of credits in the system, which combined with lack of way for setting a negative effective rate, would cause the system to inevitably collapse, when interest owed is greater than what the system can actually pay.


Vat is the main CDP accounting module. It holds collateral tokens and mints/burns rico.

In the Dai and Rai systems, the vat was carefully designed to perform all logic without external calls and without loss of precision. In the Rico system, these two properties are broken, but in a controlled manner which mitigates their side effects:


Vow is the module responsible for keeping the system solvent. It performs liquidations of unsafe CDPs and bails out bad debt with mint-and-sell, which is offset by the buy-and-burn flow from interest charged.

There are two big conceptual differences from the equivalent mechanics in the Dai system.

In this model, flop auctions are not treated as rare, exceptional events. Instead, buy/burn and mint/sell are two continuous processes, whose net flow determines the moment-to-moment NPV of RISK.


Vox is the par price adjustment mechanism. The difference between a pegged stablecoin system like Dai and a reflex bond system like Rai or Rico is the moving par price, which is the system’s internal definition of the price of the synthetic in terms of some external reference asset.

The rate of change of par, called way, is the primary monetary lever of the system used to balance supply and demand, and is adjusted automatically in response to market price deviation from par.

Changes in this price rate adjust the present value of the asset in the same way that changes in the interest rate on a variable rate bond adjusts its present value. This is in contrast to using the quantity rate or fee, which is a per-collateral-type risk parameter which should be understood more like an insurance fee.

The main advantage of this model is that price rate be negative (way < 1), which gives the system the ability to deal with “squeezes” or “hoarding” without the problem of the quantity rate zero bound, the inability of the bank to charge a negative quantity rate in a sustainable manner. In other words, the system can make the effective rate of borrowing vs the external reference asset negative, while still maintaining positive cashflow for the system.

Vox calls the feed subsystem to find the market price of rico in terms of REF, adjusts way depending on the difference between the market price and par, then calls vat to prorate par according to way.


Flow is the subsystem that contains implementations of the abstract auction interface used by vow. It is defined by interface, and can have different implementations for different collateral types.

There are three different auction types, serving different roles.

Note that a liquidation results in both a flip auction, selling collateral to buy rico, and a flop auction, minting RISK to buy rico.

Rico will initially use a naive “auction” implementation which simply trades through an AMM. This intentionally inefficient mechanism is designed to catch the attention of MEV seekers. Once keepers are aware that the Rico system is primarily driven by incentivized actions and a healthy competitive market develops, more efficient mechanisms like gradual dutch auctions can be used.

Part of the problem with the Maker system is that the actions designed for incentivized keepers were made opaque and not presented to the market in a way that incentivized competition. This was part of the problem on “black thursday”, when some collateral was sold for 0 dai.


Feed is the subsystem responsible for providing price feeds. Feedbase is a generic object that serves as a point of coordination that makes it easier to compose various receivers, adapters, and combinators.