chore: solana role transfer release doc#1213
Conversation
There was a problem hiding this comment.
-
use
anchoreverywhere you can instead ofsolana -
install markdownlint: https://marketplace.cursorapi.com/items/?itemName=DavidAnson.vscode-markdownlint
-
prior to any action, the same values in this doc should be confirmed on-chain via
- devnet/stagenet/testnet: https://explorer.solana.com/?cluster=devnet
- mainnet: https://explorer.solana.com/?cluster=mainnet-beta
by the deployment owner
-
be specific about CLUSTER setting and which cluster related to which env/address/program
| | | **Owner** | | ||
| | -------------- | ---------------------------------- | | ||
| | **Created By** | @sean329 <sean.xu@interoplabs.io> | | ||
| | **Deployment** | | |
There was a problem hiding this comment.
| | **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 | |
There was a problem hiding this comment.
add other envs and include CLUSTERs
| ```bash | ||
| # Set environment variables | ||
| export CHAIN=solana-devnet | ||
| export CLUSTER=devnet # or use full RPC URL |
There was a problem hiding this comment.
include all cluster options, not just devnet
|
|
||
| # Ensure you have the solana-axelar-cli built | ||
| cd solana | ||
| cargo build --release |
There was a problem hiding this comment.
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 -- \ |
There was a problem hiding this comment.
see how GMP/ITS release docs use the solana/cli
| ```bash | ||
| EMERGENCY_OPERATOR_EOA=<EMERGENCY_OPERATOR_EOA_ADDRESS> | ||
| CURRENT_OPERATOR=<CURRENT_OPERATOR_ADDRESS> |
There was a problem hiding this comment.
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 |
| 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. |
There was a problem hiding this comment.
only use 1., don't use all numbers
| CURRENT_OPERATOR=<CURRENT_OPERATOR_ADDRESS> | ||
|
|
||
| # Transfer Gateway operatorship | ||
| cargo run --release --bin solana-axelar-cli -- \ |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
Co-authored-by: Noah B. 🥂 <15343884+nbayindirli@users.noreply.github.com>
Note
Adds a Solana devnet release document detailing role transfer plans, commands, and verification for Operators, Governance, Gateway, ITS, Gas Service, and Memo programs.
releases/solana/2025-11-Solana-Role-Transfers-Release-v1.0.0.md.solana-devnet(Devnet Amplifier), including temporary assignment ofUpgradeAuthorityto Contract Owner EOA.Operators,Governance,Gateway,ITS,Gas Service, andMemo.Gateway(to Emergency Operator EOA),ITS(to Rate Limiter EOA), andGovernance(to Relayer Operators EOA).UpgradeAuthorityfor all programs to Contract Owner EOA (interim) with verification commands.Written by Cursor Bugbot for commit a7cae62. This will update automatically on new commits. Configure here.