Skip to content

Auction admin rotation via multisig + timelock #165

Description

@truthixify

Tier: M (2-4 days) | Type: security

Context. Wave 7 shipped sealed-bid auctions at stellar/wraith-names/src/auction.rs. The AuctionConfig { admin, treasury, token, reserve_price, launch_time, commit_secs, reveal_secs } sets admin to a single Address at init_auctions, and there is no rotation path. If the auction admin key is lost or compromised there is no on-chain remedy short of the WASM upgrade entrypoint, which is not yet implemented (see wraith-names/tests/upgrade_auth.rs with 4 #[ignore] cases). The rest of wraith-names already has the 7-day multisig rotation flow from Wave 7 #5; auctions should reuse it.

Scope.

  • Add rotate_auction_admin(new_admin) gated by the existing wraith-names/src/multisig.rs signer set + 7-day timelock (reuse RotationProposal).
  • Emit AuctionAdminRotated(old, new) event.
  • Reject rotation while an auction is in the reveal or settle phase (prevents mid-auction admin swap).
  • Update stellar/wraith-names/README.md and stellar/MULTISIG.md with the rotation runbook.

Acceptance.

  • cargo test -p wraith-names --test auction covers happy-path rotation, timelock enforcement, and rejection during active reveal
  • AuctionAdminRotated event emitted with correct topics + data
  • stellar/MULTISIG.md runbook rehearsed against futurenet (linked run)
  • stellar/wraith-names/README.md documents the rotation surface

Files. stellar/wraith-names/src/auction.rs, stellar/wraith-names/src/multisig.rs, stellar/wraith-names/tests/auction.rs, stellar/wraith-names/README.md, stellar/MULTISIG.md.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programdripsFunded via Drips NetworkgovernanceProcess / governancehelp wantedExtra attention is needednamessecuritySecurity-sensitive workstellarTouches Stellar / Soroban codestellar-waveAuto-created for Wave 8wave-8Auto-created for Wave 8

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions