Solana and SVM Compatible Blockchains (beta) Signers
secret_key
The svm::secret_key signer can be used to synchronously sign a transaction.
Inputs
- Name
 secret_key- Required
 - optional
 - Type
 - string
 - Description
 The secret key used to sign messages and transactions.
- Name
 mnemonic- Required
 - optional
 - Type
 - string
 - Description
 The mnemonic phrase used to generate the secret key. This input will not be used if the
secret_keyinput is provided.
- Name
 derivation_path- Required
 - optional
 - Type
 - string
 - Description
 The derivation path used to generate the secret key. This input will not be used if the
secret_keyinput is provided.
- Name
 keypair_json- Required
 - optional
 - Type
 - string
 - Description
 A path to a keypair.json file containing the secret key. This input will not be used if the
secret_keyormnemonicinputs are provided.
- Name
 is_encrypted- Required
 - optional
 - Type
 - bool
 - Description
 Coming soon
- Name
 password- Required
 - optional
 - Type
 - string
 - Description
 Coming soon
Outputs
When the secret_key action is successfully executed, the following outputs are attached to the action
- Name
 public_key- Type
 - string
 - Description
 The public key of the account generated from the secret key, mnemonic, or keypair file.
- Name
 address- Type
 - string
 - Description
 The SVM address generated from the secret key, mnemonic, or keypair file. This is an alias for the
public_keyoutput.
Example using secret_key
signer "deployer" "svm::secret_key" {
    secret_key = input.secret_key
}
web_wallet
The svm::web_wallet signer will allow a Runbook operator to sign the transaction with the browser signer of their choice.
Inputs
- Name
 expected_address- Required
 - optional
 - Type
 - string
 - Description
 The SVM address that is expected to connect to the Runbook execution. Omitting this field will allow any address to be used for this signer.
Outputs
When the web_wallet action is successfully executed, the following outputs are attached to the action
- Name
 address- Type
 - string
 - Description
 The address of the account. This is an alias for the
public_keyoutput.
- Name
 public_key- Type
 - string
 - Description
 The address of the account.
Example using web_wallet
signer "alice" "svm::web_wallet" {
    expected_address = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"
}
squads
The svm::squads signer can be used to sign a transaction with a squads multisig.
Inputs
- Name
 multisig_account_public_key- Required
 - optional
 - Type
 - addon(svm::pubkey)
 - Description
 The Squad multisig account pubkey. This is found on the settings page in the Squads app. This is not the vault address. Rather, this multisig account address will be used to derive the vault address and all transaction PDAs.
- Name
 create_key- Required
 - optional
 - Type
 - addon(svm::pubkey)
 - Description
 The create key used to derive the Squad multisig address.
- Name
 vault_index- Required
 - optional
 - Type
 - integer
 - Description
 The index of the vault to be created. If omitted,
0will be used.
- Name
 initiator- Required
 - required
 - Type
 - string
 - Description
 A reference to a signer construct, which will be used to create the Squads Vault Transaction & Proposal. This signer must have the
Initiatepermission in the Squads Multisig.
- Name
 payer- Required
 - optional
 - Type
 - string
 - Description
 A reference to a signer construct, which will be used to pay for the Squads Vault Transaction & Proposal creation. If omitted, the
initiatorwill be used.
- Name
 program_id- Required
 - optional
 - Type
 - addon(svm::pubkey)
 - Description
 The program ID of the Squad program. If omitted, the default program ID will be used.
- Name
 squads_frontend_url- Required
 - optional
 - Type
 - string
 - Description
 The URL of the Squads frontend. If omitted, the default URL 'https://app.squads.so' will be used.
Outputs
When the squads action is successfully executed, the following outputs are attached to the action
- Name
 public_key- Type
 - string
 - Description
 The public key of the Squad vault for the provided vault index. This is an alias for the
vault_public_keyoutput
- Name
 address- Type
 - string
 - Description
 The public key of the Squad vault for the provided vault index. This is an alias for the
vault_public_keyoutput
- Name
 vault_public_key- Type
 - string
 - Description
 The public key of the Squad vault for the provided vault index.
- Name
 vault_address- Type
 - string
 - Description
 The public key of the Squad vault for the provided vault index. This is an alias for the
vault_public_keyoutput
- Name
 multisig_account_public_key- Type
 - string
 - Description
 The public key of the Squad multisig pda. This address should not be funded.
- Name
 multisig_account_address- Type
 - string
 - Description
 The public key of the Squad multisig pda. This address should not be funded. This is an alias for the
multisig_account_public_keyoutput
Example using squads
signer "initiator" "svm::web_wallet" {
    expected_address = input.initiator_address
}
signer "deployer" "svm::squads" {
    multisig_account_public_key = input.squads_multisig_address
    initiator = signer.initiator
}