Stacks Blockchain Signers

signer

secret_key

The stacks::secret_key signer can be used to synchronously sign a transaction.

Inputs

  • Name
    secret_key
    Description

    The secret key used to sign messages and transactions.

  • Name
    mnemonic
    Description

    The mnemonic phrase used to generate the secret key. This input will not be used if the secret_key input is provided.

  • Name
    derivation_path
    Description

    The derivation path used to generate the secret key. This input will not be used if the secret_key input is provided.

  • Name
    is_encrypted
    Description

    Coming soon

  • Name
    password
    Description

    Coming soon

Outputs

  • Name
    public_key
    Description

    The public key of the account generated from the secret key.

Example using secret_key

// we can create a secret key signer by providing a mnemonic and computing the secret key
signer "bob" "stacks::secret_key" {
    mnemonic = "board list obtain sugar hour worth raven scout denial thunder horse logic fury scorpion fold genuine phrase wealth news aim below celery when cabin"
    derivation_path = "m/44'/5757'/0'/0/0"
}
// or we can create one by providing the secret key directly
signer "bob_again" "stacks::secret_key" {
    secret_key = "03b3e0a76b292b2c83fc0ac14ae6160d0438ebe94e14bbb5b7755153628886e08e"
}


signer

web_wallet

The stacks::web_wallet signer will route the transaction signing process through Stacks.js connect. This allows a Runbook operator to sign the transaction with the browser signer of their choice.

Inputs

  • Name
    expected_address
    Description

    The Stacks address that is expected to connect to the Runbook execution. Omitting this field will allow any address to be used for this signer.

Outputs

  • Name
    address
    Description

    The address of the account generated from the public key.

Example using web_wallet

signer "alice" "stacks::web_wallet" {
    expected_address = "ST12886CEM87N4TP9CGV91VWJ8FXVX57R6AG1AXS4"
}


signer

multisig

The multisig signer creates an ordered, n of n multisig. Each of the specified signers can be any other supported signer type, and will be prompted to sign in the appropriate order.

Inputs

  • Name
    signers
    Description

    A list of signers that make up the multisig.

  • Name
    expected_address
    Description

    The multisig address that is expected to be created from combining the public keys of all parties. Omitting this field will allow any address to be used for this signer.

  • Name
    required_signatures
    Description

    The number of signatures required. This value must be between 1 and the number of signers. If this value is equal to the number of signers, an n of n multisig address is generated. If this value is less than the number of signers, an m of n multisig address is generated. If omitted, the number of signers will be used.

Outputs

  • Name
    signers
    Description

    The list of signers that make up the multisig.

  • Name
    address
    Description

    The address of the account generated from the public key.

Example using multisig

signer "alice" "stacks::web_wallet" {
    expected_address = "ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC"
}

signer "bob" "stacks::web_wallet" {
    expected_address = "ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND"
}

signer "alice_and_bob" "stacks::multisig" {
    signers = [signer.alice, signer.bob]
}


Was this page helpful?