Conversation
This was referenced Sep 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds source-level support for Wit/2.1 delegated staking across the Witnet Rust node, wallet, storage, validation, RPC/CLI layers, and TypeScript SDK.
Delegated staking allows one validator to aggregate stake from multiple independent withdrawers while preserving each withdrawer’s ownership and withdrawal rights.
What changed
(validator, withdrawer).Reasoning
Delegated staking requires explicit ownership and authorization boundaries because a validator may control stake belonging to many unrelated withdrawers.
Collateral reservations use exact debit vectors so refunds and slashes remain deterministic even when balances change after a Commit. Reward weights are fixed at commitment time to prevent later stake changes from altering an existing entitlement.
The activation and snapshot changes preserve legacy chain behavior while preventing ambiguous ownership, malformed migration state, nondeterministic schedule hashing, or untrusted snapshot data from producing divergent node state.
Compatibility and release safety
DELEGATED_STAKING_RELEASE_READY = false.Verification
Previously reported verification includes:
A full Rust rebuild, complete Rust test suite, live SDK-to-node delegated-staking lifecycle, and non-genesis signed snapshot import still require final verification.
Remaining follow-up
Deferred legacy collateral and reward records are intentionally non-spendable until an approved recovery policy and claim path are defined.