# Feature 1: Content Staking

## What is Content Staking

Content Staking is the first feature launched on the Huddln Protocol. This feature aims to create monetization opportunities for content creators as well as their patrons/fans. In the most basic sense "Content Staking" allows creators to create content and allow other users on the network to purchase "stakes" in that content. Each stake a user places on a piece of content allows them to claim part of the future earnings of that content. Think of this like purchasing shares in a company. Instead of investing in companies you are investing in content creators.

## User Steps

1. Creator creates a **post** object
2. Stakers places **stakes** on content
3. Users place **tips** on content
4. Stakers/Creator can **claim** their earnings from the staker fee pool & tip pools respectively

In addition to the simple steps above, there is a concept of a **Round** that needs to be taken into consideration as well.

![](https://3307179561-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMxkhXYvIu1Gm5L2yJZ%2F-MOOioQfysiFmUR9Y4B-%2F-MOOpmBiMoS_xAGdAZFc%2FScreen%20Shot%202020-12-12%20at%206.03.40%20PM.png?alt=media\&token=6faea0b9-f71b-480b-a709-0527f04e667b)

## Staker Payout

When a staker closes their stake the contract will send them two things.&#x20;

1. Their original stake **minus** the staking fee that went to the owner.
2. Their earnings which is equivalent to their stake compared to other stakes.

   $$
   Staker Earnings=  ((Staked Amount- Staking Fee)/
   TotalStakedAmount))\* (Total Tipped Amount)
   $$

## Enforced Checks

To limit the contract attacks and ensure easy math there are a number of limitations

* A content creator cannot stake on their own post
* A staker cannot stake more than once on a post, once a stake is placed it is final.
* Stakers cannot sell their stake until the **Live Round** has begun ( this block number can be found in post).
* A user cannot send 0 value when calling a function that requires you to stake or tip.
* To ensure easy Basis Points calculations and round off error, when calling the staking function a user must past at least **10,000** currency units of the native chain. (Ethereum Chain -> wei)
* When adding a stake the user must pass in a valid **post ID.**

## Upgrades&#x20;

*Very important that Dapp creators read this !*

It should be noted for Huddln Protocol V2 the update process requires that the Huddln organization close down all staked posts.

The Huddln organization will make an announcement of any upgrades to the network at least **2 weeks prior** to an upgrade.&#x20;

If this upgrade requires larger changes from the partner end to their logic then a notification more than 2 weeks will be made and a list of changes will be presented. These changes will be announced both on the home website and in the telegram channel.

The current upgrade process does involve closing down all posts. When a post is created there are two distinctive rounds of that post. One is the **Staking Round,** and the second is the Live Round. During the planned upgrade all posts will be **FORCED** into the Live Round and all Stakers/Creators will be **forcefully** payed out their earnings.

This strategy ensures that all participants in the network receive all funds tied in the current contract before moving to a new contract. V2 does not have a fully implemented storage upgradeable mechanism therefore upgrades to the network cannot be migrated to newer versions.

*Huddln Protocol V3+ will have upgradeable storage.*
