mirror of
https://github.com/status-im/sticker-market-blog.git
synced 2025-02-22 16:58:11 +00:00
update
This commit is contained in:
parent
6839c1c7c1
commit
99f5bb75a0
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
|||||||
div {
|
|
||||||
/* max-width: 80% !important; */
|
|
||||||
}
|
|
257
src/App.jsx
257
src/App.jsx
@ -30,18 +30,18 @@ class App extends Component {
|
|||||||
if (name === 'viewof ensUserbar') {
|
if (name === 'viewof ensUserbar') {
|
||||||
return new Inspector(this.ensUserbarRef.current);
|
return new Inspector(this.ensUserbarRef.current);
|
||||||
}
|
}
|
||||||
if (name === 'viewof amountDepositSnt') {
|
if (name === 'viewof dollarPriceDomain') {
|
||||||
return new Inspector(this.amountDepositSntRef.current);
|
return new Inspector(this.dollarPriceDomainRef.current);
|
||||||
}
|
}
|
||||||
if (name === 'viewof lockedSntBar') {
|
if (name === 'viewof discountRate') {
|
||||||
return new Inspector(this.lockedSntBarRef.current);
|
return new Inspector(this.discountRateRef.current);
|
||||||
}
|
|
||||||
if (name === 'viewof sntPrice') {
|
|
||||||
return new Inspector(this.sntPriceRef.current);
|
|
||||||
}
|
}
|
||||||
if (name === 'viewof lockedUsdBar') {
|
if (name === 'viewof lockedUsdBar') {
|
||||||
return new Inspector(this.lockedUsdBarRef.current);
|
return new Inspector(this.lockedUsdBarRef.current);
|
||||||
}
|
}
|
||||||
|
if (name === 'viewof netPresentUtility') {
|
||||||
|
return new Inspector(this.netPresentUtilityRef.current);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -60,14 +60,14 @@ class App extends Component {
|
|||||||
|
|
||||||
ensUserbarRef = React.createRef();
|
ensUserbarRef = React.createRef();
|
||||||
|
|
||||||
amountDepositSntRef = React.createRef();
|
dollarPriceDomainRef = React.createRef();
|
||||||
|
|
||||||
lockedSntBarRef = React.createRef();
|
discountRateRef = React.createRef();
|
||||||
|
|
||||||
sntPriceRef = React.createRef();
|
|
||||||
|
|
||||||
lockedUsdBarRef = React.createRef();
|
lockedUsdBarRef = React.createRef();
|
||||||
|
|
||||||
|
netPresentUtilityRef = React.createRef();
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
@ -89,22 +89,22 @@ class App extends Component {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
There is currently quite a bit of work being done in this field, but
|
There is currently quite a bit of work being done in this field, but
|
||||||
it is mostly for investment firms to make appropriate capital allocation
|
it is mostly for investment firms to make appropriate capital
|
||||||
decisions among a diversified portfolio of cryptoassets. While this is
|
allocation decisions among a diversified portfolio of cryptoassets.
|
||||||
drastically important for growth and project funding, there is great lack
|
While this is drastically important for growth and project funding,
|
||||||
of research on capital and resource allocation inside of a single network.
|
there is great lack of research on capital and resource allocation
|
||||||
More specifically, any utility token needs to be able to objectively evaluate
|
inside of a single network. More specifically, any utility token needs
|
||||||
various features and utilities of their platform, and how they affect the
|
to be able to objectively evaluate various features and utilities of
|
||||||
entirety of their ecosystem. For instance, we need to be able to ask
|
their platform, and how they affect the entirety of their ecosystem.
|
||||||
questions like the following: “How can we objectively measure the use
|
For instance, we need to be able to ask questions like the following:
|
||||||
of SNT if it gets used in feature X as a function of our user base?
|
“How can we objectively measure the difference in the rate users use
|
||||||
Based on that measurement, is its development cost justified, or
|
feature X in Status and its respective impact on the ecosystem?”
|
||||||
should we focus on something else?”
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
We will be launching Status with the following SNT use-cases, as
|
We will be launching Status with the following SNT use-cases, as
|
||||||
described in the{' '}
|
described in the{' '}
|
||||||
<a href="https://status.im/whitepaper.pdf">whitepaper</a>:
|
<a href="https://status.im/whitepaper.pdf">whitepaper</a> and{' '}
|
||||||
|
<a href="https://www.status.im">the website</a>:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Teller Network</li>
|
<li>Teller Network</li>
|
||||||
<li>Tribute to Talk</li>
|
<li>Tribute to Talk</li>
|
||||||
@ -112,26 +112,41 @@ class App extends Component {
|
|||||||
<li>Sticker Market</li>
|
<li>Sticker Market</li>
|
||||||
<li>SNT Curated Dapp Store</li>
|
<li>SNT Curated Dapp Store</li>
|
||||||
<li>Network Incentivization (may not be available at launch)</li>
|
<li>Network Incentivization (may not be available at launch)</li>
|
||||||
|
<li>Liquid Funding (may not be avaialble at launch)</li>
|
||||||
|
<li>User Acquisition Engine (will not be available at launch)</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Each of these use-cases make use of the SNT token, but in very
|
Each of these use-cases leverage the SNT token, but in very different
|
||||||
different ways. This means each will have differing effects on the
|
ways. For instance, some will lock up large amounts, some will
|
||||||
supply and demand of the token itself. It doesn’t stop there, as
|
actually burn the token, and some will incentivize sending and
|
||||||
Status is an open and permissionless platform for developers to build
|
receiving. This means each will have differing effects on the supply
|
||||||
on and use, which means that anyone can build SNT use-cases that
|
and demand of the token itself, and will need to be modeled
|
||||||
affect the overall supply and demand. But how do we know what effect a
|
differently. It doesn’t stop there as Status is an open and
|
||||||
utility has? Where do we go to try and evaluate its usefulness?
|
permissionless platform for developers to build on and use, which
|
||||||
|
means that anyone can build SNT use-cases that affect the overall
|
||||||
|
supply and demand. But how do we know what effect a utility has? Where
|
||||||
|
do we go to try and evaluate its usefulness?
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
To this end, we would like to start a blog series detailing some of
|
To this end, we would like to start a blog series detailing some of
|
||||||
the research we are doing within Status to objectively evaluate the
|
the research we are doing within Status to objectively evaluate the
|
||||||
value flows of SNT, the potential effects of our implemented (and upcoming)
|
value flows of SNT, the potential effects of our implemented (and
|
||||||
SNT use cases within Status, and how our potential user growth changes
|
upcoming) SNT use cases within Status, and how our potential user
|
||||||
things. This work will encompass traditional economic and finance
|
growth changes things. This work will encompass traditional economic
|
||||||
theory, work currently being done in crypto-economics, and novel
|
and finance theory, work currently being done in crypto-economics, and
|
||||||
methodology. That means a part of this endeavor is an attempt to get
|
novel methodology. That means a part of this endeavor is an attempt to
|
||||||
peer review and evaluation of what we do by you, the community!
|
get peer review and evaluation of what we do by you, the community!
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
DISCLAIMER: The work in this article (and mentioned notebooks) is
|
||||||
|
for modeling purposes only. The numbers herein are not to project
|
||||||
|
actual values locked up in Status and should not be used for
|
||||||
|
investment advice. It is our strict desire to create and improve
|
||||||
|
models that describe value flow of SNT use-cases (and similar token
|
||||||
|
use-cases), and how these use-cases compare to each other.
|
||||||
|
</b>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Let’s start with the ENS naming system. In Status, for a little SNT,
|
Let’s start with the ENS naming system. In Status, for a little SNT,
|
||||||
@ -159,25 +174,25 @@ class App extends Component {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The use case and token flow are both relatively simple, but what are
|
The use case and token flow are both relatively simple, but what are
|
||||||
the effects on the network? Let’s first try and model what value
|
the effects on the network? Let’s first try and model what value this
|
||||||
this could potentially accrue over time. We can start by picking out
|
could potentially accrue over time. We can start by picking out the
|
||||||
the variables in this process to see how things depend on each other.
|
variables in this process to see how things depend on each other.
|
||||||
Furthermore, the above values are what we currently use, but in terms
|
Furthermore, the above values are what we currently use, but in terms
|
||||||
of modeling, we should turn those into variables that allow us to see
|
of modeling, we should turn those into variables that allow us to see
|
||||||
what effect each has on the overall mechanism. This can help inform us
|
what effect each has on the overall mechanism. This can help inform us
|
||||||
(and you) on appropriate choices.
|
(and you) on appropriate choices.
|
||||||
</p>
|
</p>
|
||||||
<h2>Disucssion of variables</h2>
|
<h2>Discussion of variables</h2>
|
||||||
<h3>Number of Users</h3>
|
<h3>Number of Users</h3>
|
||||||
<p>
|
<p>
|
||||||
It is clear that this all depends on how many users Status has in the
|
It is clear that this all depends on how many users Status has in the
|
||||||
app. If they are not using Status, then they won’t use the feature.
|
app. If they are not using Status, then they won’t use the feature.
|
||||||
This is our base metric, and we will model it using compounding growth
|
This is our base metric, and we will model it using compounding growth
|
||||||
and loss. We can start with a number of users that are using the network,
|
and loss. We can start with a number of users that are using the
|
||||||
and set additional growth and loss variables (in percentages) that
|
network, and set additional growth and loss variables (in percentages)
|
||||||
define how this number changes over the next 10 years. This means that
|
that define how this number changes over the next 10 years. This means
|
||||||
every year, we expect a certain percentage change in users based on
|
that every year, we expect a certain percentage change in users based
|
||||||
the numbers of the previous year. Depending on how you set those
|
on the numbers of the previous year. Depending on how you set those
|
||||||
percentages, the number of users can grow very rapidly! Go ahead and
|
percentages, the number of users can grow very rapidly! Go ahead and
|
||||||
play with the following variables to see how the number of users
|
play with the following variables to see how the number of users
|
||||||
change over the years.
|
change over the years.
|
||||||
@ -210,40 +225,141 @@ class App extends Component {
|
|||||||
<div ref={this.userConversionRef} />
|
<div ref={this.userConversionRef} />
|
||||||
<div ref={this.removalRateRef} />
|
<div ref={this.removalRateRef} />
|
||||||
<div ref={this.ensUserbarRef} />
|
<div ref={this.ensUserbarRef} />
|
||||||
<h3>Amount of SNT required to deposit</h3>
|
<h3>
|
||||||
|
US Dollar Amount of SNT to Deposit, Discount Rate, and Net Present
|
||||||
|
Value
|
||||||
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
Now we have the amount of users that will (or have) use(d) this
|
Now the contract itself locks up a specific amount of SNT per
|
||||||
utility. Let’s figure out how that translates to SNT. In order to do
|
username, but the goal is to model around a reasonable target price in
|
||||||
that, we have another variable to define: The amount of SNT required
|
US dollars and have the contract change over time to adapt as the
|
||||||
to register an ENS username. By multiplying each user by this
|
price of SNT changes. Why do we do this? In order to evaluate value
|
||||||
variable, we can show how much SNT is being locked up every year which
|
flow overtime we need a relatively stable unit by which to measure and
|
||||||
effectively takes it out of the circulating supply, i.e.
|
normalize the value flows. We use US dollars due to the size,
|
||||||
|
stability and data availability for that market. While one can argue
|
||||||
|
that US dollars do not maintain their value in the long term, they at
|
||||||
|
least depreciate at a stable and predictable rate. The mechanisms and
|
||||||
|
governance around how this price change works is a subject still under
|
||||||
|
discussion and will be addressed in future articles (but we’ve got
|
||||||
|
some really cool ideas). So the knob we choose to tweak here is the US
|
||||||
|
dollar amount of SNT to be locked up.
|
||||||
|
</p>
|
||||||
|
<div ref={this.dollarPriceDomainRef} />
|
||||||
|
<p>
|
||||||
|
An additional factor in using the US Dollar equivalent of SNT here is
|
||||||
|
that we can add a discounted cash flow analysis based on historical
|
||||||
|
data of USD. Future notebooks and articles will look into deriving and
|
||||||
|
modeling a discount rate purely in cryptocurrency. For brevity, this
|
||||||
|
article will only introduce the concept and gloss over a good portion
|
||||||
|
of the details and derivation of the terms within. For more
|
||||||
|
information, please visit the{' '}
|
||||||
|
<a href="https://observablehq.com/@bgits/status-cost-of-capital">
|
||||||
|
more detailed workbook
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
A simple surface level description of a discount rate is the rate you
|
||||||
|
use to figure out how much present value a known future cash flow is
|
||||||
|
worth. In other words, how to presently evaluate the amount of money
|
||||||
|
you know will come in the future. Once you have the discount rate, you
|
||||||
|
can calculate the <em>Net Present Value</em>, which is given by the
|
||||||
|
following formula:
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<Latex displayMode>
|
<Latex displayMode>
|
||||||
{
|
{
|
||||||
'$$N_{\\text{SNT locked}} = N_{\\text{registrations}} * N_{\\text{SNT per registration}}$$'
|
'$$NPV = \\sum^n_{t=1} \\frac{R_t}{(1+i)^t} - \\text{initial cost}$$'
|
||||||
}
|
}
|
||||||
</Latex>
|
</Latex>
|
||||||
</p>
|
</p>
|
||||||
<div ref={this.amountDepositSntRef} />
|
|
||||||
<div ref={this.lockedSntBarRef} />
|
|
||||||
<h3>How to assign value to all of this?</h3>
|
|
||||||
<p>
|
<p>
|
||||||
Having the amount of SNT locked up is quite useful by itself. From
|
where <Latex>$$t$$</Latex> is the number of time periods (10 in this
|
||||||
there, we can look at the circulating supply and see how this use-case
|
article),
|
||||||
affects its availability. It is also interesting to see how this maps
|
<Latex>$$R_t$$</Latex>
|
||||||
to more traditional assets by looking at the current price of SNT in US Dollars
|
is the cashflow of that particular time period , and{' '}
|
||||||
(USD). Since most evaluation mechanism use a market capitalization
|
<Latex>$$i$$</Latex> is the discount rate. The concept of discounting
|
||||||
(cap) metric to compare different networks and tokens, mapping each
|
future value has been around for along time. The earliest known
|
||||||
use-case , and eventually the whole network, allows us to see how much
|
reference was in the 6th century BCE{' '}
|
||||||
they contribute to a given market cap. By converting value flows to USD
|
<a href="http://www.aramaic-dem.org/English/History/The%20proverbs%20of%20the%20Aramean%20Ahikar.pdf">
|
||||||
we can also make use of established measures by which to discount future
|
Proverbs of Ahiqar
|
||||||
value flows (10-year US Treasury rate) which are currently non-existant
|
</a>
|
||||||
among crypto assets.
|
:
|
||||||
</p>
|
</p>
|
||||||
<div ref={this.sntPriceRef} />
|
<blockquote>
|
||||||
|
A sparrow in thy hand is better than a thousand sparrows flying
|
||||||
|
</blockquote>
|
||||||
|
<p>
|
||||||
|
You have probably heard a more common version is this, and Warren
|
||||||
|
Buffet does a good job of{' '}
|
||||||
|
<a href="https://www.youtube.com/watch?v=BP_TUDOYDrg">
|
||||||
|
explaining it:
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
How many birds are in the bush? When are you going to get them out?
|
||||||
|
and how sure are you?
|
||||||
|
</blockquote>
|
||||||
|
<p>
|
||||||
|
Either way, more details on how we can do this will be explained in a
|
||||||
|
future article. Below is a knob to change this discount rate. The
|
||||||
|
higher the rate, the more unsure you are about the future income. Play
|
||||||
|
with both of these knobs to find out how much money will be locked up
|
||||||
|
in the ENS username contract over 10 years.
|
||||||
|
</p>
|
||||||
|
<div ref={this.discountRateRef} />
|
||||||
<div ref={this.lockedUsdBarRef} />
|
<div ref={this.lockedUsdBarRef} />
|
||||||
|
<p>
|
||||||
|
and all of this gets summed together to give you the following Net
|
||||||
|
Present Value of ENS Usernames within Status:
|
||||||
|
</p>
|
||||||
|
<div className="slide">
|
||||||
|
<div ref={this.netPresentUtilityRef} />
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
In other words, after setting all of the above model inputs we have
|
||||||
|
finally come to a way of looking at how "impactful" ENS
|
||||||
|
usernames are in a single value. This value will become more useful as
|
||||||
|
we build out other models for other use cases so we can compare them
|
||||||
|
and see relative differences. Eventually, we will be able to see the
|
||||||
|
relatively impact a given utility within Status has within the entire
|
||||||
|
ecosystem.
|
||||||
|
</p>
|
||||||
|
<h2>Example Scenario Analysis</h2>
|
||||||
|
<p>
|
||||||
|
It is also useful to look at how this number changes as we tweak the
|
||||||
|
input variables to see their impact. As an example, let's look at
|
||||||
|
what happens if we are able to do something to increase the number
|
||||||
|
Status users who actualy register an ENS username (actually currently
|
||||||
|
in the works). This is an example of the question we postuated in the
|
||||||
|
beginning of this article. The default value is 50%, which leads to a
|
||||||
|
Net Present Utility Value of $8,527,197.00 (holding all default values
|
||||||
|
constant).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
What happens if we're able to increase this number, say, to 75%?
|
||||||
|
Keeping all other variables equal, this change alone changes the Net
|
||||||
|
Present Utility Value to $12,815,797.00, which is a 50.3% growth and
|
||||||
|
would constitute a linear relationship.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
As another example, let's look at what happens if we increase our
|
||||||
|
yearly growth rate, going from 300% per year to 350% per year. holding
|
||||||
|
everything else constant, with a 350% growth rate per year, we come to
|
||||||
|
Net Present Utility Value of $24,157,021.00, a 183% growth and would
|
||||||
|
constitue a superlinear relatinoship due to the effects of compounding
|
||||||
|
growth. Based on these two simple examples, it is clear we should
|
||||||
|
spend more time on user acquisition and continuious growth over
|
||||||
|
increasing ENS username conversion rates (OR BOTH!).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
As you can see, by making models of our SNT use-cases, we can start to
|
||||||
|
ask questions and get numbers to give us actionable data (assuming a
|
||||||
|
decent accuracy of the model). Even if the actual numbers are
|
||||||
|
drastically wrong, but the relationships are correct, we can still
|
||||||
|
come away with quality information on how we spend our time, money,
|
||||||
|
and effort.
|
||||||
|
</p>
|
||||||
<h2>Thoughts and Conclusions</h2>
|
<h2>Thoughts and Conclusions</h2>
|
||||||
<p>
|
<p>
|
||||||
So what have we learned from all of this? How can we change the model
|
So what have we learned from all of this? How can we change the model
|
||||||
@ -274,11 +390,12 @@ class App extends Component {
|
|||||||
means we would love to get feedback from you, the community. If we
|
means we would love to get feedback from you, the community. If we
|
||||||
have done something incorrectly, or you know of some way to better
|
have done something incorrectly, or you know of some way to better
|
||||||
model various aspects herein, please join the discussion. We will be
|
model various aspects herein, please join the discussion. We will be
|
||||||
posting all of these articles in [DISCUSS WHERE WE WANT THIS TO LIVE].
|
posting all of these articles in{' '}
|
||||||
|
<a href="https://discuss.status.im">our discuss</a> and linking around
|
||||||
|
the internet in relevant places.
|
||||||
</p>
|
</p>
|
||||||
<h3>Future Improvements</h3>
|
<h3>Future Improvements</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>discounted value rate</li>
|
|
||||||
<li>probability of failure</li>
|
<li>probability of failure</li>
|
||||||
<li>justifications using historical data</li>
|
<li>justifications using historical data</li>
|
||||||
<li>assign variables and create equations for each</li>
|
<li>assign variables and create equations for each</li>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user