makeContractDeploy

Constructs and signs a smart contract deployment transaction. Deploys a Clarity smart contract to the Stacks blockchain.


Usage

import { makeContractDeploy, ClarityVersion } from '@stacks/transactions';

const codeBody = `
(define-public (say-hello)
  (ok "hello world"))
`;

const transaction = await makeContractDeploy({
  contractName: 'hello-world',
  codeBody,
  senderKey: 'b244296d5907de9864c0b0d51f98a13c52890be0404e83f273144004b81874603',
  network: 'testnet',
  fee: 10000n,
  nonce: 0n,
  clarityVersion: ClarityVersion.Clarity3,
});

const serializedTx = transaction.serialize();

Notes

  • The codeBody should be a valid Clarity source code string.

  • If clarityVersion is omitted, the latest available version is used.

  • If fee is omitted, the fee is estimated automatically.

  • If nonce is omitted, the nonce is fetched automatically.

Reference Linkarrow-up-right


Signature


Returns

Promise<StacksTransactionWire>

A promise that resolves to a signed StacksTransactionWire object, ready to be broadcast.


Parameters

txOptions (required)

  • Type: SignedContractDeployOptions | SignedMultiSigContractDeployOptions

For single-sig, provide senderKey. For multi-sig, provide publicKeys, numSignatures, and signerKeys.

Last updated

Was this helpful?