Guides to get started on our current testnet in links below
This repo contains detailed guides and help for users to interact with our current testnet.
If you find something that is wrong or missing, please make an Issue, or better yet, fork the repo and make a PR to help us improve! It might even qualify for a reward. For more information on this, please see the bounties repo.
The Joystream testnet tokens (tJOY) are backed by a USD denominated fiat pool, and redeemable via monero. More information about how this works can be found below. If you want to find the current exchange rate, when the fiat pool is getting topped up, and verify pending exchanges, go here.
To exchange your tokens, follow these steps.
- In order for us to know what address to pay, you must tie your Joystream address to your monero address. The easiest way to do this is in the
My memo
tab under theMy Keys
sidebar:
# Only the part in the line below goes in the memo:
4or8YourXmrAddressInDoubleQuotesAndNothingElse
- Send your testnet tokens (tJOY) to the following address:
5CktGSAEApx6Z2fK5NnK3dZNwD3Hi1YHhna3aTDHULSAXGdg
Once the tokens have been received to this address, the time, date, your address, your memo and the current tJOY/USD exchange rate is logged. Your tokens are then burned (reducing the tJOY issuance), and the USD amount is deducted from the fiat pool. This means that the exchange rate is not affected. Your monero should arrive within 24 hours, as we are batching the transactions. Also note that the XMR/USD exchange rate is at the time of the monero transfer.
In order for us to know what address to pay, you must tie your Joystream address to your monero address. The easiest way to do this is in the My memo
tab under the My Keys
sidebar.
To get started and participate on the Joystream testnets, you must first generate Key(s)
, and sign up for a Membership
. This requires no software or downloads, and can be done in your browser here.
Click My Keys
in the sidebar, and then select the Create Keys
tab. The choices you make from here, depends a little on how you want to participate. If you just want to play around, you can just follow the defaults. If you have a specific role in mind, you might want to follow the links to the instructions in the header, or access them via Active Roles.
In any event, the Keys
will be stored in your browser for your convenience, but it's safest to save your Raw seed
(you need it for certain roles) and save the .json file. The Mnemonic
can also be used to restore your Keys
, but will not do you any good if you want to become a Validator
.
To become a Member
of the platform, you need some tokens. Either click the Free Tokens
link, or click here. After you solved the captcha, your tokens should be on their way.
Note All transactions (extrinsics) cost 1 Joy token, so you should always keep a little in reserve, as this also applies to such actions as voting, unstaking, and posting in the new forum.
Now, click Members
in the sidebar, and select the Register
tab. Choose a Handle/nickname
. Optionally, provide a link to an image file for your avatar, and fill in the markdown enabled About
field.
The Joystreams testnets are incentivized, meaning users can earn real money for participating. There are many reasons for this, but the most important one is to build a community that understands the network. After the platform goes live on mainnet, Jsgenesis will not be around to run critical infrastructure, occupy the roles needed for the platform to work, or drive innovation.
Previous testnets had weekly payouts for all roles, with the magnitude of rewards and slots decided by Jsgenesis. The old incentive scheme has worked in the sense that it has gotten a small group of users to participate and earn monero for their contribution. However, the testnet tokens (tJOY) has only been a means to an end. Users only needed a small amount to stake for roles, and get the recurring monero reward, without having to consider tJOY as an asset.
When Joystream goes live on mainnet, there will be no one there to pay these (monero) rewards, and the platform must rely on JOY tokens as the single value carrier for maintaining critical infrastructure, continued development, governance, and incentives for content creators. In order to get a structure that reflects the mainnet incentives in a better way, we have decided to have the token issuance be backed by a fiat pool, where users can convert their tokens to cover their real costs, time and hardware. The basics of the new scheme is outlined below:
- At launch, the token issuance will be set/calculated, and an initial fiat pool will be created to back it.
- Each week, an amount of USD will be added to fiat pool, thus increasing the value of each token, if one were to assume the issuance would stay the constant.
- However, all roles on the platform will be compensated by newly minted tJOY tokens, effictively inflating the supply.
- In addition to a weekly replenishment, a set of KPIs (Key Performance Indicators), will be set by us, to ensure the network is working as intended.
- If a KPI is reached, the fiat pool will increase by the amount computed based on the level success for each KPI, new tJOY will be minted proportionally, and distributed to the voters that elected the Council Members. As a consequence, this will not affect the value of token holders not participating in the governance.
- Other ways both the tJOY supply, and the fiat pool can increase, is through bounties, competitions, spending proposals, etc.
An overview on how the new incentive scheme works, and how it interacts with the new proposal model that gives far more power and responsibility to users via the council, can be found here.
The specifics on what will happen with the upgrade from Rome
(old incentive scheme) to Constantinople
(new incentive scheme) is outlined here. A broader guide on how the incentives will work
The list below shows the currently active roles available at our current testnet. In order to know how to best allocate your tokens, consider trying the tokenomics spreadsheet.
In proof of stake systems, block producers, or Validators
, are typically paid a fixed amount for each block produced. Validators
must run a full node.
A detailed guide to setting up the Validator
node and settings can be found here.
Active Validators
are rewarded in tJOY every new era
(600 blocks). The size of the reward for each Validator
depends on a couple of variables:
- The number of
Validators
- The total amount rewarded are independent of the number of active
Validators
. This means that the individual tJOY reward is the total reward divided by the number ofValidators
in the lastera
.
- The total amount rewarded are independent of the number of active
- The total supply of tJOY
- The rewards for
Validators
are calculated as a percentage of the total tJOY issuance.
- The rewards for
- The ratio of tokens at stake for the
Validator
set compared to the issuance- By summing up the stake of the individual
Validators
and theirNominators
, you get the amount at stake. - Divide by the tJOY issuance and you get the ratio.
- The ideal number (for the
Validators
) is 30%. - If this number is higher or lower, than 30%, the rewards "drop off"
- By summing up the stake of the individual
The rewards for the last era
will show up as an event, and can be seen in the explorer, if you keep a window open. Fairly precise estimates can be found using the tokenomics spreadsheet.
If you want to exchange your tokens, you need to unbond them first. Check the guide for instructions on how to do this.
Council Members
are elected by the stakeholders in the system to act in the interest of their constituency. The council is responsible for allocating the platform's resources, and hire executive personnel to run the day-to-day operations.
An overview of the proposal system can be found here A detailed explanation of the election cycle and responsibilities can be found here.
Council Members
receive recurring rewards in tJOY. Unlike the other recurring rewards for roles, this is not something the Council
can vote on, as it could lead to some unfortunate outcomes. The size of the reward can be found can be found in the chain state.
You can't have a video platform without videos, so someone has to take the role of storing the data. In the future, this will be a highly specialized role, focusing on what is implied by the name of the role. Currently, it will in practice also entail the future Bandwidth Provider
role.
Unlike Validators
that can come and go without too much friction (at least for now), a new Storage Provider
will currently need to replicate the entire content directory. As a consequence, the platform needs some stability for this role to avoid providing a poor user experience, or worse, loss of data.
After an upgrade of the Constantinople
network, the Storage Provider
role will now be within its own working group, with a lead overseeing the day to day operations, while being accountable to the Council.
After an upgrade of the Constantinople
network, the Storage Provider
role will now be its own working group, with a lead overseeing the day to day operations, while being governed by the Council.
The Storage Lead
can only be hired (or fired) by the Council through the proposal system. The Lead should maintain sufficient storage and distribution capacity by employing Storage Providers
, and paying them sufficiently. The Lead will also need to run a storage node themselves. Another important task is to keep an eye on the working group's financing.
The current status of this role can be found here.
Content Curators
will one day be essential for ensuring that the petabytes of media items uploaded to Joystream are formatted correctly and comprehensively monitored and moderated. Our upcoming testnet allows this content monitoring to take place by giving users who are selected for the role administrative access to the Joystream content directory to make changes where necessary.
Content Curators
are hired by the Curator Lead
. The Council
is responsible for setting the budget for the Curators
by providing the lead with a so called mint. The lead can hire and fire as they choose, but if the capacity of the mint runs out, the rewards will stop flowing. This means that both the Council
and the lead must pay attention to the mint capacity.
The group and its lead is governed through the proposal system, where any member can propose to "Set Content Working Group Mint Capacity", and "Set (Curator) Lead".
The former, if executed, will simply set the capacity of the mint to the number proposed, regardless of previous capacity. To avoid workers "striking" due to the lack of payments (including for themselves), the lead must ensure the mint does not run out of capacity. If the lead goes rogue, or simply spends too much, the capacity can be set to zero to avoid further spending.
When making a new "Set (Curator) Lead" proposal, one can propose to
- replace the old lead
- hire a lead if there are currently none
- fire the current lead, without setting a new one.
The lead will initially be a member of the Jsgenesis team, but the Council
will have to find a replacement. This can be done by making a proposal to Set Curator Lead
.
This section covers other things you can do after getting started, that isn't a paid role as of now.
The CLI tool is under development, but is already needed for the Storage Lead and can be useful for Storage Providers. Go here for more information and guides.
This is the first step in providing users, infrastructure role participants, Council Members
and future stakeholders a way to communicate and coordinate. Hopefully, this method of interaction will further help develop a strong community around Joystream. Note that you have to be a member
to post, and only the forum moderator (forum sudo) can create categories.