> For the complete documentation index, see [llms.txt](https://allovr.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://allovr.gitbook.io/docs/whitepaper/a-next-generation-decentralized-autonomous-art-network/staking-functionality.md).

# Staking Functionality

Upon successful artwork sales and weekly inflation runs on AOVR tokens, the ovr-program requires a mechanism for distributing the appropriate SPL tokens to the corresponding recipients. As it is not feasible to keep large lists of addresses on chain$$^{18}$$, nor possible to present large numbers of accounts to the ovr-program function call, it is not possible for the ovr-program to transfer tokens directly to a large number of recipients.

A proposed solution is to extend the ovr-program (or a separate program), henceforth the staking program, which in essence would allow a large number of balances to be updated in an atomic fashion without the need to pass in a large number of accounts into the function call. Instead of transferring tokens directly, a balance on a ledger that represents the balance owed to a specific account would be increased. This allows the staking program to update a large number of balances, limited only by computation limits. The stakes would be stored in one of N staking slots, grouped into a number M of staking pools. Each pool would provide rebalancing and withdrawal functions, such that at any time the rightful owner of the stake could withdraw their tokens or read their balance. The solution would not allow for an infinite number of stakeholders, but a reasonable number, e.g. 100 staking pools with 100 slots within could provide 10,000 individual staking slots. The full details of the proposal are found in [Appendix 1](/docs/whitepaper/a-next-generation-decentralized-autonomous-art-network/appendix-1-proposed-allovr-staking-mechanism.md) to this document.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

$$^{18}$$Storing large data sets on Solana accounts is limited due to high rent costs. Solana program request size limits mean not all accounts that would need to be written to could be passed into the function call.<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://allovr.gitbook.io/docs/whitepaper/a-next-generation-decentralized-autonomous-art-network/staking-functionality.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
