--- tags: Spec-Revenue-Sharing --- # Definitions / Glossary These definition tables are for making sure all vocabulary is synced across the implementation, math spec and the cadCAD model. ## TO-DO for Streamr 1. Review all names/possible names and give feedback on preferred naming 2. Decide whether there should be further definitions of the policy names, payload names, etc or those are not important to come to terminology on right now ## Actor Definitions The actual human actors within the system. | Actor Name | Description | Actions | | ---------- | ----------- | ------- | | Sponsor | Sponsors create **Bounty** contracts that hold tokens and distribute them to brokers that promise to service the sponsor's stream(s) | `sponsor` | Broker | Brokers do the work within the streamr system: relaying data points, backbone of the p2p network (staying online for long periods), 1-to-1 relationship with **BrokerPool** contract; brokers stake to bounties and earn rewards | `stake`, `unstake`, `withdrawEarnings` | | Delegator | These actors are those that put money towards different broker agreements in delegation; "invests" into brokers, provides capital for staking, earns part of the yields | `delegate`, `undelegate` | `sponsor` = send DATA to Bounty, increase sponsorships `stake` = send DATA to Bounty, increase stake `unstake` = receive DATA from Bounty, decrease stake `withdrawEarnings` = receive DATA from Bounty, decrease earnings `delegate` = send DATA to BrokerPool, receive pool tokens `undelegate` = announce you exit (a number of) pool tokens from BrokerPool; once DATA is available (BrokerPool receives delegation or withdraws from a Bounty) burn pool tokens and receive DATA ## Contract Definitions | Smart contract | Description | Notes | | ------ | ----- |----- | | BrokerPool | This is the contract that takes of delegation, yield disbursement and any interactions between brokers + delegators | 1-to-1 relationship with broker actors, stake tokens into **Bounties** to earn yields | | Bounty | These contracts are outside of this system except for broker interactions in terms of staking, slashing, and revenue earning. These streams are where the brokers do their work. | Generate earnings | ## Variable Type Definitions Variable types held within different states or messages. Different variables might refer to the same variable types. % = fraction, smart contract handles these in "wei" (10^18) | Variable | Contract | Description | Notes | | ------- | ----- |----- | ---- | | Earnings | Bounty | Sponsorship gradually turns into the stakers' earnings | DATA | | BrokerCut | BrokerPool | % of withdrawEarnings that goes to broker directly | %, paid in DATA | | BrokerPool tokens | BrokerPool | These are the tokens that a delegator gets from delegating into a broker agreement; also broker has some "margin" of tokens | | | Margin | BrokerPool | % of BrokerPool tokens held by broker itself | BrokerPool has minimumMargin that can prevent delegation (delegation ) | | UndelegateQueue | BrokerPool | | | | BrokerPool value | BrokerPool | free funds + stake in bounties + earnings | DATA | ## Outdated terms, perhaps used in specification TODO: go through the specs, fix these | Past specification naming | Smart contract | Description | Notes | | --------|------- | ----- |----- | | Vault | Vault | This is the overarching accounting system used for all the contracts | There is one single global vault contract which all brokers and delegators use | | Broker Agreement | BrokerPool | This is the contract that takes of delegation, yield disbursement and any interactions between brokers + delegators | 1-to-1 relationship with broker actors, stake tokens into **Bounties** to earn yields | | Stream Agreement | Bounty | These contracts are outside of this system except for broker interactions in terms of staking, slashing, and revenue earning. These streams are where the brokers do their work. | Generate yields | These are the variable names attatched to different states + messages. | Current Proposed Variable Type Name | Possible Variable Names | Description | Notes | Units | | --------|------- | ----- |----- |----- | | Funds | Funds, Free Funds | The actual physical funds held denoted in DATA in a state | | DATA | | Stake | Stake | A virtual account for tracking the stake in streams in DATA.| *Virtual* | DATA | | Internal Balances | Internal Balances | The vault's accounting of DATA balances in the vault per delegator | | DATA | | Token Balances | Token Balances | The vault's accounting of pool token balances in the vault per delegator | | Pool Tokens | | Debits | Debits, Debts | The amount that a broker agreement owes in the future to delegators because they do not have liquidity at the moment to disburse funds. Denoted in DATA. | | DATA | | Revenue | Revenue | What a broker has earned | | DATA | | Pool Value | Pool Value | The value of the pool in a broker pool/agreement. This can be used to derive what delegating/~~withdrawing~~ is worth using bonding curves. The pool value is not liquid because some of the funds contributing to it may be staked by the broker. | *Virtual* | DATA | | Slash Value | Slash Value | A specific type of value which references values that was staked on a stream but subsequently slashed. It does not change funds because the funds were already moved out for staking, but may impact pool value as the accounting of it needs to still be taken care of | *Virtual* | DATA | | Delegator ID | Delegator ID | The ID of a delegator | | Address | | Broker ID | Broker ID | The ID of a broker | | Address | | Broker Agreement ID | Broker Agreement ID, Pool ID | The ID of a broker agreement | | Address | | Stream ID | Stream ID | The ID of a stream | | Address |