useSignTransactions

Call Signature

function useSignTransactions<TWalletAccount>(
    uiWalletAccount,
    chain,
): (...inputs) => Promise<readonly SolanaSignTransactionOutput[]>;

Use this to get a function capable of signing one or more serialized transactions with the private key of a UiWalletAccount. This supports batching multiple transactions in a single wallet prompt when the wallet implementation allows it.

Type Parameters

Type Parameter
TWalletAccount extends UiWalletAccount

Parameters

ParameterType
uiWalletAccountTWalletAccount
chainOnlySolanaChains<TWalletAccount["chains"]>

Returns

(...inputs): Promise<readonly SolanaSignTransactionOutput[]>;

Parameters

ParameterType
...inputsreadonly Readonly<Omit<SolanaSignTransactionInput, "account" | "chain" | "options"> & object>[]

Returns

Promise<readonly SolanaSignTransactionOutput[]>

Example

import { useSignTransactions } from '@solana/react';
 
function SignTransactionsButton({ account, transactionBytes1, transactionBytes2 }) {
    const signTransactions = useSignTransactions(account, 'solana:devnet');
    return (
        <button
            onClick={async () => {
                try {
                    const [first, second] = await signTransactions(
                        { transaction: transactionBytes1 },
                        { transaction: transactionBytes2 },
                    );
                    window.alert(
                        `First transaction bytes: ${first.signedTransaction.toString()}, second transaction bytes: ${second.signedTransaction.toString()}`,
                    );
                } catch (e) {
                    console.error('Failed to sign transactions', e);
                }
            }}
        >
            Sign Transactions
        </button>
    );
}

Call Signature

function useSignTransactions<TWalletAccount>(
    uiWalletAccount,
    chain,
): (...inputs) => Promise<readonly SolanaSignTransactionOutput[]>;

Use this to get a function capable of signing one or more serialized transactions with the private key of a UiWalletAccount. This supports batching multiple transactions in a single wallet prompt when the wallet implementation allows it.

Type Parameters

Type Parameter
TWalletAccount extends UiWalletAccount

Parameters

ParameterType
uiWalletAccountTWalletAccount
chain`solana:${string}`

Returns

(...inputs): Promise<readonly SolanaSignTransactionOutput[]>;

Parameters

ParameterType
...inputsreadonly Readonly<Omit<SolanaSignTransactionInput, "account" | "chain" | "options"> & object>[]

Returns

Promise<readonly SolanaSignTransactionOutput[]>

Example

import { useSignTransactions } from '@solana/react';
 
function SignTransactionsButton({ account, transactionBytes1, transactionBytes2 }) {
    const signTransactions = useSignTransactions(account, 'solana:devnet');
    return (
        <button
            onClick={async () => {
                try {
                    const [first, second] = await signTransactions(
                        { transaction: transactionBytes1 },
                        { transaction: transactionBytes2 },
                    );
                    window.alert(
                        `First transaction bytes: ${first.signedTransaction.toString()}, second transaction bytes: ${second.signedTransaction.toString()}`,
                    );
                } catch (e) {
                    console.error('Failed to sign transactions', e);
                }
            }}
        >
            Sign Transactions
        </button>
    );
}

On this page