These signers are available when using the SVM addon for transaction signing.
secret_key
The svm::secret_key signer can be used to synchronously sign a transaction
using a secret key, mnemonic, or keypair file.
Inputs
| Name | Required | Type | Description |
|---|---|---|---|
secret_key | optional | string | The secret key used to sign messages and transactions |
mnemonic | optional | string | The mnemonic phrase used to generate the secret key |
derivation_path | optional | string | The derivation path used to generate the secret key |
keypair_json | optional | string | A path to a keypair.json file containing the secret key |
Outputs
| Name | Type | Description |
|---|---|---|
public_key | string | The public key of the account |
address | string | The SVM address (alias for public_key) |
signer "deployer" "svm::secret_key" {secret_key = input.secret_key}
You can also use a mnemonic:
signer "deployer" "svm::secret_key" {mnemonic = input.mnemonicderivation_path = "m/44'/501'/0'/0'"}
Or a keypair file:
signer "deployer" "svm::secret_key" {keypair_json = "~/.config/solana/id.json"}
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 | Required | Type | Description |
|---|---|---|---|
expected_address | optional | string | The SVM address expected to connect (omit to allow any) |
Outputs
| Name | Type | Description |
|---|---|---|
address | string | The address of the connected account |
public_key | string | The public key of the connected account |
signer "alice" "svm::web_wallet" {expected_address = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
This signer will prompt the user in the Web UI to:
- Connect their wallet
- Provide a public key via message signature
- Sign all transactions requiring this signer
squads
The svm::squads signer can be used to sign transactions with a Squads multisig
vault.
Inputs
| Name | Required | Type | Description |
|---|---|---|---|
address | optional | string | The squad vault address |
Outputs
| Name | Type | Description |
|---|---|---|
public_key | string | The public key of the squad vault |
address | string | The SVM address (alias for public_key) |
signer "deployer" "svm::squads" {address = input.address}
Using Squads multisig allows for secure, multi-party transaction signing without exposing individual private keys.
Is this page helpful?