magicblock-labs / magicblock-labs/magicblock-validator

Remove the global validator authority keypair

Open
#1,535 0 comments 0 reactions 1 assignee View on GitHub

@snawaz is already working on this.

Since Sep 1, 2026.

P2 techdebt
Dominant language
Rust
Stars
58
Forks
58
Avg merge
22h 1m
Merged PRs (30d)
53

Description

## Outcome

Remove the global validator authority keypair after scheduling no longer depends on it.

## Scope

Blocked by #1547, which moves `ScheduledCommitSent` pre-signing out of Magic Program while preserving signature correlation and authorization.

After #1547 is complete:

- delete the global `VALIDATOR_AUTHORITY` static and `validator_authority()` accessor;
- remove production initialization that copies `engine.signer()` into Magic Program;
- reshape test/dev helpers so they set only the thread-local authority pubkey needed by builtin checks;
- keep `engine.signer()` as the only owner and source of the validator keypair.

Programs must continue using `nucleus::tls::AUTHORITY` for validator pubkey checks. Do not weaken any validator-signed instruction or authority check.

## Acceptance criteria

- [ ] #1547 is complete.
- [ ] MBV has no global or static validator `Keypair`.
- [ ] Magic Program does not expose or retain the validator keypair.
- [ ] Only Engine owns and signs with the validator keypair.
- [ ] Existing validator authority checks continue to use the Engine-provided thread-local pubkey.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.