POST
/setSolanaProgramAuthority
Change or remove the upgrade authority of a deployed Solana program.
This function creates a SetAuthority instruction to transfer upgrade control to a new address or set the authority to None to make the program immutable (finalized).
Once finalized, a program cannot be upgraded or have its authority changed again.
Return: JSON object containing the Solana smart contract transaction data.
-----------Request--------------
# Transfer authority to a new address
setSolanaProgramAuthority(
account_id=1,
program_address="0x2182Fe2b3Ca1DFD39CB9A4C8218aE3ea79748A4F",
new_authority_address="BZGxzQsgr8qffNJApTrvd8CuLtfTfb2u1ogQuDYcYPFs",
description="Transfer program authority to new multisig"
)
# Finalize program (make it immutable)
setSolanaProgramAuthority(
account_id=1,
program_address="0x2182Fe2b3Ca1DFD39CB9A4C8218aE3ea79748A4F",
new_authority_address=None,
description="Finalize program - make immutable"
)
# Use different authority to sign
setSolanaProgramAuthority(
account_id=1,
program_address="0x2182Fe2b3Ca1DFD39CB9A4C8218aE3ea79748A4F",
current_authority_address="BfNW4pMQatzsy6X1ojJG3JKtg5btUJM6J3Yk6f8NHiEi",
new_authority_address="BZGxzQsgr8qffNJApTrvd8CuLtfTfb2u1ogQuDYcYPFs",
description="Transfer authority"
)
----------------Response ------------
{
Function Data:{
"ApprovalRequestStatus": 3,
"CoinType": "SOL",
"Transactions": [
{
"AmountToTransfer": "0",
"DestinationAddress": "egQf....Q5DA"
}
]
},
"Meta": {
"AccessToken": "6276...79fe",
"Destination": "0453...9d56",
"Source": "fc581...42f3",
"Time": "2025-02-10 13:05:23.729"
}
}
account_idintegerThe account ID to get the main Solana address from.
program_addressstringThe deployed program account address.
new_authority_addressstring<p>New upgrade authority address, or None to finalize the program. Setting to None makes the program permanently immutable.</p>
current_authority_addressstring<p>Current upgrade authority (must sign). If None, uses the account's main SOL address.</p>
specific_from_addressstring<p>The payer address for transaction fees. If None, uses the account's main SOL address.</p>
descriptionstringText for describing the transaction in your records.
acceptstringGenerated from available response content types
200success
curl --request POST \
--url '/setSolanaProgramAuthority?account_id=1&program_address=0x2182Fe2b3Ca1DFD39CB9A4C8218aE3ea79748A4F¤t_authority_address=BfNW4pMQatzsy6X1ojJG3JKtg5btUJM6J3Yk6f8NHiEi&description=New%20authority%20assigned' \
--header 'accept: application/json'