Skip to content

Conversation

@lcovar
Copy link
Contributor

@lcovar lcovar commented Feb 12, 2026

Marinade activate: CreateAccount + StakeInitialize (no Delegate). Staker authority is the validator address, withdrawer is the user.

Marinade deactivate: SystemProgram.transfer to recipient address. The PrepareForRevoke memo is handled by the existing memo path.

Makes staking_address optional on UnstakeIntent (Marinade doesn't use it), adds recipients field for Marinade unstake.

BTC-3025

Marinade activate: CreateAccount + StakeInitialize (no Delegate).
Staker authority is the validator address, withdrawer is the user.

Marinade deactivate: SystemProgram.transfer to recipient address.
The PrepareForRevoke memo is handled by the existing memo path.

Makes staking_address optional on UnstakeIntent (Marinade doesn't
use it), adds recipients field for Marinade unstake.

BTC-3025
@lcovar lcovar requested a review from a team as a code owner February 12, 2026 09:29

// Marinade staking: CreateAccount + Initialize (no Delegate)
// Staker authority is the validator, withdrawer is the user
if intent.staking_type.as_deref() == Some("MARINADE") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we could use an enum for these magic strings on the right hand side


let stake_pubkey: Pubkey = intent
// Marinade unstake: SystemProgram.transfer to recipient (no stake account involved)
if intent.staking_type.as_deref() == Some("MARINADE") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dito

@@ -178,7 +178,9 @@ pub struct StakePoolConfig {
#[serde(rename_all = "camelCase")]
pub struct UnstakeIntent {
pub intent_type: String,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this can probably be typed better with an enum

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants