Infrastructure as CodeSVM Addon
SVM Signers
Signers for Solana and SVM Compatible Blockchains
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.mnemonic
derivation_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.