Skip to content

chore: solana role transfer release doc#1213

Open
Sean329 wants to merge 4 commits into
mainfrom
chore/solana-role-transfer
Open

chore: solana role transfer release doc#1213
Sean329 wants to merge 4 commits into
mainfrom
chore/solana-role-transfer

Conversation

@Sean329

@Sean329 Sean329 commented Nov 25, 2025

Copy link
Copy Markdown
Contributor

Note

Adds a Solana devnet release document detailing role transfer plans, commands, and verification for Operators, Governance, Gateway, ITS, Gas Service, and Memo programs.

  • Documentation:
    • New release guide: releases/solana/2025-11-Solana-Role-Transfers-Release-v1.0.0.md.
      • Outlines role transfer plan for solana-devnet (Devnet Amplifier), including temporary assignment of UpgradeAuthority to Contract Owner EOA.
      • Provides current role owners, target role addresses (TBD), and a role transfer summary across Operators, Governance, Gateway, ITS, Gas Service, and Memo.
      • Includes CLI procedures to:
        • Transfer operatorship for Gateway (to Emergency Operator EOA), ITS (to Rate Limiter EOA), and Governance (to Relayer Operators EOA).
        • Update program UpgradeAuthority for all programs to Contract Owner EOA (interim) with verification commands.
      • Adds verification checklist and operational notes (PDAs, token manager responsibilities, emergency procedures, future governance migration).

Written by Cursor Bugbot for commit a7cae62. This will update automatically on new commits. Configure here.

@Sean329 Sean329 requested a review from a team as a code owner November 25, 2025 23:18
Comment thread releases/solana/2025-11-Solana-Role-Transfers-Release-v1.0.0.md Outdated

@nbayindirli nbayindirli left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

  1. use anchor everywhere you can instead of solana

  2. install markdownlint: https://marketplace.cursorapi.com/items/?itemName=DavidAnson.vscode-markdownlint

  3. prior to any action, the same values in this doc should be confirmed on-chain via

    by the deployment owner

  4. be specific about CLUSTER setting and which cluster related to which env/address/program

| | **Owner** |
| -------------- | ---------------------------------- |
| **Created By** | @sean329 <sean.xu@interoplabs.io> |
| **Deployment** | |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
| **Deployment** | |
| **Devnet Deployment** | |
| **Stagenet Deployment** | |
| **Testnet Deployment** | |
| **Mainnet Deployment** | |

(we should do this everywhere, so let's start here)


| **Environment** | **Chain** | **Deployment Status** | **Date** |
| -------------------- | --------------- | --------------------- | -------- |
| **Devnet Amplifier** | `solana-devnet` | - | TBD |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

add other envs and include CLUSTERs

```bash
# Set environment variables
export CHAIN=solana-devnet
export CLUSTER=devnet # or use full RPC URL

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

include all cluster options, not just devnet


# Ensure you have the solana-axelar-cli built
cd solana
cargo build --release

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

what is this command doing? see how GMP/ITS release doc build

CURRENT_OPERATOR=<CURRENT_OPERATOR_ADDRESS>

# Transfer Gateway operatorship
cargo run --release --bin solana-axelar-cli -- \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

see how GMP/ITS release docs use the solana/cli

Comment on lines +123 to +125
```bash
EMERGENCY_OPERATOR_EOA=<EMERGENCY_OPERATOR_EOA_ADDRESS>
CURRENT_OPERATOR=<CURRENT_OPERATOR_ADDRESS>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

keep in own code block like other release docs

# Verify Gas Service configuration
cargo run --release --bin solana-axelar-cli -- \
--chain solana-devnet \
query gas-service config

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this is hard to read

Comment on lines +301 to +319
1. **Solana Program Model**: Solana uses a different permission model compared to EVM chains. Programs have an `UpgradeAuthority` that can upgrade the program code, while contracts within programs have `operator` or `owner` roles for operational tasks.

2. **Temporary UpgradeAuthority Assignment**: All UpgradeAuthority roles are **temporarily** assigned to Relayer Operators EOA because the Governance contract is not yet production-stable. **Once the Governance contract is stabilized**, these UpgradeAuthority roles should be transferred to the Governance program for proper decentralized governance.

3. **Program Derived Addresses (PDAs)**: The Gas Service operator is a PDA controlled by the Operators Program. PDAs are deterministic addresses derived from program IDs and seeds, and they cannot be transferred in the traditional sense.

4. **Token Manager Roles**: TokenManager Operator, Minter, and Flow Limiter roles are specific to individual token projects. Axelar does not manage these roles - they are owned and operated by the respective token project teams.

5. **Emergency Response**: The Emergency Operator EOA for Gateway is designated for rapid response scenarios where compromised signers need to be rotated quickly using the `rotate_signers` operation.

6. **ITS Pause Status**: The `set_pause_status` operation in ITS requires rapid response capability, which is why the ITS operator is assigned to the Rate Limiter EOA rather than going through governance.

7. **Operators Owner**: The Operators program owner is configured at initialization and should be set to the Relayer Operators EOA for operational registry management (adding/removing operators).

8. **Future Governance Migration**: When the Governance contract becomes stable, a follow-up release document should be created to transfer all UpgradeAuthority roles from Relayer Operators EOA to the Governance program.

9. **Solana CLI Requirements**: Ensure you have the Solana CLI installed and configured with the appropriate RPC endpoint and fee payer for executing these operations.

10. **Multi-Signature Requirements**: Depending on your operational security model, some of these operations may require multi-signature approval. Coordinate with the appropriate signers before executing transfers.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

only use 1., don't use all numbers

CURRENT_OPERATOR=<CURRENT_OPERATOR_ADDRESS>

# Transfer Gateway operatorship
cargo run --release --bin solana-axelar-cli -- \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

i don't think solana-axelar-cli exists?

- **Gas Service Operator PDA**: The Gas Service Operator is a Program Derived Address (PDA) controlled by the Operators Program, not a regular account.
- **Funder and Upgrade Authority Wallets**: These are utility wallets used for funding operations and do not have transferable roles.

## Prerequisites

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

how will the below commands be used? assume deployment owner has nothing installed, i.e. anchor, solana, rust

see solana GMP/ITS release docs for guidance

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