Bonding Curve Contract Dynamics in Investment and Sale Operations
Last updated
Last updated
buy()
Investors have the option to purchase at any time by invoking the buy()
function of the . When an investor chooses to buy , they receive a certain amount of , for a specified price
There are two ways someone can buy COTs:
External Investors: These are people outside the organization who buy COTs with specificied reserve.
The cOrg(Beneficiary Organization) Itself: Sometimes, the organization itself might buy COTs using funds they already have.
When an investor buys COTās for a price , he receives COTās , with being equal to:
with the amount used to buy COTs, the buy slope and the number of COTās already in circulation before the transaction
: The number of received by the investor after purchasing for a given price.
: The amount of reserve tpused by the investor to buy .
: The buy slope, representing the rate at which the price of increases with each unit purchased.
: The number of already in circulation before the transaction, serving as a factor in the calculation of the number of COTs received.
Each investment induces two key changes:
Supply Increase: The total supply of COTs increases by the number of tokens purchased (a + x).
Reserve Growth: The amount of reserve tokens held by the organization's Decentralized Autonomous Trust (DAT) increases by the investment amount (d).
A distinction exists between investments from external sources and purchases made by the cOrg itself in their respective contribution ratio to the DAT's reserve:
Investment by external investor: External investors typically have a contribution ratio (I) less than 100%. This means they contribute a portion () to the reserve while minting the equivalent value (M) in COTs.
Beneficiary Organization Contribution Ratio: When the cOrg purchases COTs
, their contribution ratio is 100%. They contribute the full investment amount (M) to the reserve while minting the equivalent value (M) in COTs
.
The contribution ratio directly affects the impact on the bonding curve's slope (). Since the cOrg contributes the entire investment (M) to the reserve, it can lead to a steeper increase in the slope compared to external investor purchases with lower contribution ratios ()
Reserve Update
The total reserve () after a transaction is simply the sum of the previous reserve (R_t-1) and the investment amount (M):
With each investment, the number of COTs in circulation () increases, and the reserve () grows. As reflected in the slope (), the price of subsequent COT purchases increases due to the rising supply and a potentially steeper slope for cOrg purchases.
sell()
Investors can decide to sell their COTs at any time to receive reserve. They do this by calling the sell()
function of the DAT
. When the DAT
receives COTs
, it burns the received COTs
and sends reserve back to the selling investor according to a function (for sell). has a slope ( ) that increases discretely over time, each time the DAT
receives a payment. The reserve sent back to the investor is taken from the DAT's
"buyback
" cash reserve and does not affect the organization's treasury.
Selling COTs has a dual effect on the bonding curve:
Reduced Supply: Burning COTs
removes them from active circulation, lowering the total available supply (). This can lead to a slight increase in the price of remaining COTs due to lower overall supply and potentially constant demand.
Decreased Buyback Reserve: The buyback reserve () shrinks as it's used to pay selling investors. This reduces the amount of reserve available for future buybacks, potentially dampening the upward price pressure created by the bonding curve mechanism.
The net effect on the curve hinges on the relative strengths of these opposing forces. In some scenarios, the decrease in supply might outweigh the shrinking reserve, leading to a slight price increase despite the downward shift in the curve.
When an investor sells x
COTs, assuming no COTs were previously burnt, he receives an amount , with being equal to:
with the sell slope and a
the number of COTs
in circulation before the transaction.
A COT
holder can decide to burn their COTs at any time by calling the burn()
function.
Burning COTs does not technically destroy them (the total supply of COTs, including burnt COTs, remains the same), but it ensures that no one will ever be able to use them again. This action redistributes their marginal value equally to other COT holders.
It may not make much sense for an investor to burn their COTs, but it does make sense for the beneficiary organization to do so in the following situations:
If the organization has no use for the COTs.
If the organization wants to increase the value of all other COTs.
When a COT is burnt, its lowest possible value is equally redistributed to all COT holders. Therefore, when an investor sells their COTs, they receive a fraction of the cash reserve plus a pro-rata share of the value locked in burnt COTs. See the sell()
section below for the exact calculation.
The direct consequence of this is that there is never value locked forever in the cash reserve: selling 100% of the non-burnt COTs will deplete the cash reserve of 100% of its value.
where is the number of burnt COTs
When an investor sells COTs:
Supply Reduction: The total supply of COTs (a) experiences a slight decrease as sold COTs are burned (removed from active circulation). However, the total supply technically remains constant since burned COTs are still accounted for.
Reserve Impact: The buyback reserve (R_b) used for repurchasing COTs diminishes as it's used to compensate the selling investor.
The buyback reserve () is updated after a sell transaction using the following formula (assuming no prior burning):
where:
: Updated buyback reserve after the sale
: Buyback reserve before the sale
: Amount paid to the investor for selling COTs (calculated as explained below)
The overall price impact of selling is depends on the interplay of several factors:
Magnitude of Sale: Larger sales will have a more significant impact on the curve and price compared to smaller sales.
Burning Activity: If a substantial portion of COTs are burned, the decrease in supply can lead to a price increase despite the sale.
Reserve Replenishment: If the cOrg replenishes the buyback reserve through other means (e.g., revenue), the downward pressure on the price can be mitigated.
Revenues - pay()
In cOrgs , the pay()
function of the Data Autonomous Trust (DAT) allows for the direct reception of customer payments. A percentage of these payments, denoted as D (Distribution), is allocated to the DAT's cash reserve, increasing the value of COT's corresponding fraction of the revenues
This formula shows that the fraction of the payment going to the reserve depends on both the total payment received and the designated distribution percentage .
P (Payment): This represents the total amount of money received by the Decentralized Autonomous Trust (DAT). This could come from various sources, depending on the specific system, such as:
User fees
Token sales
Revenue generated by the organization
D (Distribution): This represents the percentage of the total payment (P) that is allocated to the DAT's cash reserve. It's essentially a ratio between 0 and 1 (often expressed as a decimal) that determines the portion of the revenue funneled into the reserve.
d (Fraction of Payment): It represents the actual amount of money from the payment that is directed towards the cash reserve. In essence, it's the specific dollar amount or token value being saved.
Upon calling pay()
, new COTs
are issued equivalent to those generated by buy(d)
. These COT's are initially directed to the organization unless specified otherwise by the customer.
Optionally, customers can designate an alternative recipient address for newly minted COT's, typically their own wallet address. ForcOrgs
without a legal entity, receiving payments via the DAT can be advantageous. However, it's not obligatory for revenues to funnel through the DAT; organizations may opt to reward COT
holders solely through COT
purchases.
Established businesses may prefer to receive payments in fiat currency and subsequently purchase COTs to boost their value, without altering existing selling processes. This approach maintains a seamless user experience for customers while enhancing COT's value and operational efficiency for cOrgs