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

NameRequiredTypeDescription
secret_keyoptionalstringThe secret key used to sign messages and transactions
mnemonicoptionalstringThe mnemonic phrase used to generate the secret key
derivation_pathoptionalstringThe derivation path used to generate the secret key
keypair_jsonoptionalstringA path to a keypair.json file containing the secret key

Outputs

NameTypeDescription
public_keystringThe public key of the account
addressstringThe 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

NameRequiredTypeDescription
expected_addressoptionalstringThe SVM address expected to connect (omit to allow any)

Outputs

NameTypeDescription
addressstringThe address of the connected account
public_keystringThe 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:

  1. Connect their wallet
  2. Provide a public key via message signature
  3. Sign all transactions requiring this signer

squads

The svm::squads signer can be used to sign transactions with a Squads multisig vault.

Inputs

NameRequiredTypeDescription
addressoptionalstringThe squad vault address

Outputs

NameTypeDescription
public_keystringThe public key of the squad vault
addressstringThe 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.

On this page