Developers
Program reference
Planned accounts and instructions of the VIVI staking program, for review ahead of deployment.
Last updated 11 November 2026
Accounts
| Account | Seeds | Holds |
|---|---|---|
| StakeAccount | "stake", owner | Staked amount, lock period, unlock time, reward checkpoint. |
| DelegationAccount | "delegation", owner, provider | Amount delegated to a single provider. |
| ProviderAccount | "provider", authority | Commission, reputation and attested uptime. |
| RewardsVault | "vault" | Token account holding rewards available for distribution. |
| GlobalConfig | "config" | Admin multisig, emission schedule and tier thresholds. |
Instructions
| Instruction | Behaviour |
|---|---|
| stake(amount, lock_months) | Transfers tokens to the vault and records the lock. Locks can be extended but not shortened. |
| unstake(amount) | Fails if the lock has not expired or if the amount is delegated. |
| claim_rewards() | Pays accrued rewards from the vault to the owner. Never mints new supply. |
| delegate(provider, amount) | Assigns undelegated stake to a provider. Zero removes the delegation. |
| slash(provider, amount) | Callable only by the verified dispute process. Burns a share of operator stake. |
Admin controls
- Administrative authority is held by a multi-signature wallet, not a single key.
- Parameter changes are subject to a published time lock before they take effect.
- No instruction allows an administrator to move user stakes or change a user lock.
These controls are targets for the audited release. Review the Security practices and the Token Disclosure for what is and is not in place today.