useSignAndSendTransactions

Call Signature

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

Use this to get a function capable of signing one or more serialized transactions with the private key of a UiWalletAccount and sending them to the network for processing. This supports wallets that allow batching multiple transactions in a single request.

Type Parameters

Type Parameter
TWalletAccount extends UiWalletAccount

Parameters

ParameterType
uiWalletAccountTWalletAccount
chainOnlySolanaChains<TWalletAccount["chains"]>

Returns

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

Parameters

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

Returns

Promise<readonly SolanaSignAndSendTransactionOutput[]>

Example

import { useSignAndSendTransactions } from '@solana/react';
 
function SignAndSendTransactionsButton({ account, transactionBytes1, transactionBytes2 }) {
    const signAndSendTransactions = useSignAndSendTransactions(account, 'solana:devnet');
    return (
        <button
            onClick={async () => {
                try {
                    const [first, second] = await signAndSendTransactions(
                        { transaction: transactionBytes1 },
                        { transaction: transactionBytes2 },
                    );
                    window.alert(
                        `Transaction signatures: ${first.signature.toString()}, ${second.signature.toString()}`,
                    );
                } catch (e) {
                    console.error('Failed to send transactions', e);
                }
            }}
        >
            Sign and Send Transactions
        </button>
    );
}

Call Signature

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

Use this to get a function capable of signing one or more serialized transactions with the private key of a UiWalletAccount and sending them to the network for processing. This supports wallets that allow batching multiple transactions in a single request.

Type Parameters

Type Parameter
TWalletAccount extends UiWalletAccount

Parameters

ParameterType
uiWalletAccountTWalletAccount
chain`solana:${string}`

Returns

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

Parameters

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

Returns

Promise<readonly SolanaSignAndSendTransactionOutput[]>

Example

import { useSignAndSendTransactions } from '@solana/react';
 
function SignAndSendTransactionsButton({ account, transactionBytes1, transactionBytes2 }) {
    const signAndSendTransactions = useSignAndSendTransactions(account, 'solana:devnet');
    return (
        <button
            onClick={async () => {
                try {
                    const [first, second] = await signAndSendTransactions(
                        { transaction: transactionBytes1 },
                        { transaction: transactionBytes2 },
                    );
                    window.alert(
                        `Transaction signatures: ${first.signature.toString()}, ${second.signature.toString()}`,
                    );
                } catch (e) {
                    console.error('Failed to send transactions', e);
                }
            }}
        >
            Sign and Send Transactions
        </button>
    );
}

On this page