@kagamidigital/salt-sdk-mirror
    Preparing search index...

    Interface DeployTransactionParams

    Parameters for a contract deployment transaction. to must be omitted; data (the compiled bytecode) and gas are required.

    interface DeployTransactionParams {
        accountId: string;
        chainId: number;
        data: string;
        gas: string | bigint;
        maxFeePerGas?: string | bigint;
        maxPriorityFeePerGas?: string | bigint;
        nonce?: number;
        notes?: string;
        publicClient: ViemPublicClientLike;
        requireRoboQuorum?: boolean;
        to?: undefined;
        userAddress: `0x${string}`;
        value: bigint;
        walletClient: AttachedWalletClient;
    }

    Hierarchy

    • TransactionParamsBase
      • DeployTransactionParams
    Index

    Properties

    accountId: string

    ID of the Salt account to use for the transaction

    '507f1f77bcf86cd799439010'
    
    chainId: number

    Chain ID of the destination network (integer).

    11155111
    
    data: string

    Compiled contract bytecode to deploy.

    '0x608060...'
    
    gas: string | bigint

    Gas limit for the deployment. Required for contract deployment because the Salt API cannot currently estimate gas for a null recipient.

    maxFeePerGas?: string | bigint

    Optional EIP-1559 max fee per gas override. Fetched from the Salt API if omitted. If provided, both fee caps are set to this value unless maxPriorityFeePerGas is also provided.

    maxPriorityFeePerGas?: string | bigint

    Optional EIP-1559 priority fee override. Fetched from the Salt API if omitted.

    nonce?: number

    Optional nonce override. Fetched from the Salt API if omitted.

    notes?: string

    Free-form notes stored on the transaction record. Empty string if omitted.

    publicClient: ViemPublicClientLike

    Viem PublicClient for the destination chain. Used to broadcast the signed transaction via eth_sendRawTransaction and to wait for the receipt. Caller owns the RPC transport.

    requireRoboQuorum?: boolean

    Whether to require the account's robo quorum before signing. The expected signing flow is one human plus the account's robos, so by default the ceremony fails fast with a RoboStatusError when too few of the account's enrolled robos are online (rather than stalling to a timeout). Set to false to skip the check — e.g. when enough human co-signers are available to meet the threshold without the full robo set.

    true
    
    to?: undefined

    Omit, or set to null/undefined, for contract deployments.

    userAddress: `0x${string}`

    EVM address of the calling user (one of the account's human signers). Used to determine the caller's party index in the signing ceremony.

    value: bigint

    Amount to send, in wei (the smallest native unit). For human-readable amounts, convert with viem: parseEther('0.5') for ETH, or parseUnits('100', 6) for tokens with non-18 decimals like USDC.

    0n // none
    
    300_000_000_000_000n // ~$1 at ~$3300/ETH
    
    parseEther('0.0003') // ~$1 at ~$3300/ETH
    
    parseUnits('1', 6) // 1 USDC
    
    walletClient: AttachedWalletClient

    Viem wallet client for the calling user. Required for keyshare decryption during signing.