Revnets 101

by Jango – originally shared on HackMD

Revnets help you establish financial rules for your open source project, without governance, ops, or management overhead.

Revnets are useful for:

Parameters

A revnet is defined in sequential stages.

Each stage specifies the following parameters:

A revnet also specifies a Boost operator and optionally a Boost premint once at the time it is deployed.

Duration

The amount of time a stage lasts for before the next stage takes effect.

A revnet’s last stage remains in effect forever.

Initial price

The number of $TOKENs that’ll be issued per 1 unit of a base currency received, at the time the stage begins.

Price increase rate

The rate at which the price increases.

The price increases predictably during each stage, allowing open, fair, and predictable entries for anyone interested.

Examples

Price Visualization

Revnet with a price starting at 1 $TOKEN per ETH contributed, increasing 5% every 24 hours.

0.81450625 $TOKENs per ETH                            ----->
                                                      ↑
0.857375 $TOKENs per ETH                        ----->
                                                ↑
0.857375 $TOKENs per ETH                  ----->
                                          ↑
0.9025 $TOKENs per ETH              ----->
                                    ↑
0.95 $TOKENs per ETH          ----->
                              ↑
1 $TOKEN per ETH        ----->
                        0   24h   48h   72h   96h   120h

Boost

The percent of newly issued $TOKENs that will be routed to a predefined destination determined by the boost operator. The remainder is always routed to the payer.

The boost also consists of an optional one-time premint to the boost operator at the time the revnet is deployed.

Examples

Boost Visualization

Revnet with a price of 1,000 $TOKENs per ETH contributed and a boost of 50%.

               --->  500 $TOKENs issued to the payer.
1 ETH paid ---|
               --->  500 $TOKENs issued to the boost.

Boost Operator

The address that can change the destination of subsequent boost $TOKENs within the predetermined percent.

The Boost operator can transfer this role to another operator at any time, or revoke the role altogether to ensure the boost allocation no longer changes.

Examples

Exit tax

$TOKENs are the only way to access a revnet’s funds.

The exit tax intensity determines what percentage of funds that $TOKENs can then access at any point in time, benefiting the remaining $TOKENs who can now each be turned in for a larger share.

The intensity can range from 0 to 1, 0 being no tax.

                       total-funds                           intensity
access-per-$TOKEN = -----------------  * ((1-intensity) + --------------- )
                      $TOKEN-supply                        $TOKEN-supply

Examples

With a total of 10 outstanding $TOKENs and 1 ETH in the revnet, 1 $TOKEN (10% of supply) can access:

Exit tax visualization

Revnet with an exit tax intensity of 0.5, a total of 10 outstanding $TOKENs, and 1 ETH in the revnet to start.

0.0736 ETH per next $TOKEN                             ------>
                                                       ↑
0.06729 ETH per next $TOKEN                       ---->
                                                  ↑
0.062346 ETH per next $TOKEN          ----------->
                                      ↑
0.0583 ETH per next $TOKEN       ---->
                                 ↑
0.055 ETH per next $TOKEN     -->
                               exit exit         exit exit   exit

Buyback pool

If there exists liquidity in an AMM that offers a $TOKEN / ETH price better than what the revnet offers for new mints, inbound revenues will be fulfilled by the AMM instead of issuing new $TOKEN.

This buyback pressure fills the space between the ever-increasing price ceiling from the issuance price and ever-increasing price floor from exits.

image

Stages

A revnet is deployed with a sequence of stages specified up front.

Stages allow for timeboxed rules to incentivize participation.

Example

Stage 1 (fundraise): 72 days, 1 $TOKEN per ETH increasing 1% every 24 hours, 100 $TOKENs upfront and 50% boost to your-multisig.eth, 10% exit tax intensity.

Stage 2 (execute): Forever after, 0.01 $TOKENs per ETH increasing 1% every 3 days, no more boost, 50% exit tax intensity.

>> Home