PIP-49: Validator Delegation
| Authors | Pactus Development Team [[email protected]] |
|---|---|
| Discussion | View Discussion PIP-49 |
| Category | Core |
| Created | 2026-03-08 |
Table of Contents
Abstract #
This PIP proposes a validator delegation mechanism that allows a stake owner to authorize another party to operate a validator on their behalf. In return, block rewards are split between the validator operator and the stake owner based on a predefined share.
Motivation #
Currently, only the stake owner can run a validator. Some users may not have the technical capability or infrastructure to operate validator nodes, while still wanting to participate in staking.
This proposal enables stake owners to delegate validator operations to an operator and receive a configurable portion of rewards without running validator infrastructure themselves.
Specification #
This proposal introduces two explicit roles:
- Stake Owner: the account that owns the bonded stake.
- Validator Operator: the key/entity that runs validator duties.
Validator structure #
The Pactus validator data structure is extended with an optional delegation section.
type validatorData struct {
PublicKey *bls.PublicKey
Number int32
Stake amount.Amount
LastBondingHeight uint32
UnbondingHeight uint32
LastSortitionHeight uint32
// Optional delegation fields.
DelegateOwner crypto.Address // Stake owner account address
DelegateShare int64 // Owner share in nano PAC (portion of 1.0 PAC block reward)
DelegateExpiry uint32 // Block height at which delegation expires
}
If delegation fields are absent, the validator is treated as non-delegated.
Bond transaction #
The bond transaction includes optional delegation fields. If provided, the resulting validator is considered delegated and must satisfy all delegation validation rules (share bounds, expiry validity, and owner address presence).
Unbond transaction #
For delegated validators, only the stake owner can submit an unbond transaction.
Withdraw transaction #
Only the stake owner can receive principal stake in withdrawal transactions.
Reward distribution #
DelegateShare defines the stake owner’s reward share and MUST be within [0, 0.7 PAC],
represented in nano PAC (10^9 units per PAC).
The total block reward remains 1.0 PAC and is distributed as:
- Protocol share:
0.3 PAC - Stake owner share:
DelegateShare - Validator operator share:
0.7 PAC - DelegateShare
The three outputs MUST sum to exactly 1.0 PAC.
Backward compatibility #
To activate this proposal, the protocol block version is increased to 3 once
more than 75% of the committee’s total power supports the upgrade.
Copyright
Copyright and related rights waived via CC0.