> For the complete documentation index, see [llms.txt](https://docs.soniclabs.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.soniclabs.com/sonic/build-on-sonic/integrating-staking.md).

# Integrating Staking

You can build apps on top of Sonic's staking system, such as liquid staking tokens or vaults. All staking operations are managed by the SFC (Special Fee Contract).

* **SFC Address:**\
  `0xFC00FACE00000000000000000000000000000000`
* **Key Functions:**
  * `delegate(validatorID)`: Delegate stake to a validator.
  * `undelegate(validatorID, wrID, amount)`: Begin the withdrawal process.
  * `withdraw(validatorID, wrID)`: Claim unlocked stake after the withdrawal period.
  * `pendingRewards(delegator, validatorID)`: Check claimable rewards.
  * `claimRewards(validatorID)`: Claim pending rewards.
* **Constants**\
  Economic parameters like withdrawal period and reward rates are available by calling the `constsAddress()` on the SFC to get the `ConstantsManager` contract address.
* See [SonicScan](https://sonicscan.org/address/0xFC00FACE00000000000000000000000000000000#code:~:text=Contract-,ABI,-API) for the full SFC ABI.
