Kit
Functions

useWalletAccountTransactionSigner

Call Signature

useWalletAccountTransactionSigner<TWalletAccount>(uiWalletAccount, chain): TransactionModifyingSigner<TWalletAccount["address"]>

Use this to get a TransactionSigner capable of signing serialized transactions with the private key of a UiWalletAccount

Type Parameters

Type Parameter
TWalletAccount extends UiWalletAccount

Parameters

ParameterType
uiWalletAccountTWalletAccount
chainOnlySolanaChains<TWalletAccount["chains"]>

Returns

TransactionModifyingSigner<TWalletAccount["address"]>

A TransactionModifyingSigner. This is a conservative assumption based on the fact that your application can not control whether or not the wallet will modify the transaction before signing it (eg. to add guard instructions, or a priority fee budget). Otherwise this method could more specifically return a TransactionSigner or a TransactionPartialSigner.

Example

import { useWalletAccountTransactionSigner } from '@solana/react';
 
function SignTransactionButton({ account, transaction }) {
    const transactionSigner = useWalletAccountTransactionSigner(account, 'solana:devnet');
    return (
        <button
            onClick={async () => {
                try {
                    const [{ signatures }] = await transactionSigner.modifyAndSignTransactions([transaction]);
                    const signatureBytes = signatures[transactionSigner.address];
                    window.alert(`Signature bytes: ${signatureBytes.toString()}`);
                } catch (e) {
                    console.error('Failed to sign transaction', e);
                }
            }}
        >
            Sign Transaction
        </button>
    );
}

Call Signature

useWalletAccountTransactionSigner<TWalletAccount>(uiWalletAccount, chain): TransactionModifyingSigner<TWalletAccount["address"]>

Use this to get a TransactionSigner capable of signing serialized transactions with the private key of a UiWalletAccount

Type Parameters

Type Parameter
TWalletAccount extends UiWalletAccount

Parameters

ParameterType
uiWalletAccountTWalletAccount
chain`solana:${string}`

Returns

TransactionModifyingSigner<TWalletAccount["address"]>

A TransactionModifyingSigner. This is a conservative assumption based on the fact that your application can not control whether or not the wallet will modify the transaction before signing it (eg. to add guard instructions, or a priority fee budget). Otherwise this method could more specifically return a TransactionSigner or a TransactionPartialSigner.

Example

import { useWalletAccountTransactionSigner } from '@solana/react';
 
function SignTransactionButton({ account, transaction }) {
    const transactionSigner = useWalletAccountTransactionSigner(account, 'solana:devnet');
    return (
        <button
            onClick={async () => {
                try {
                    const [{ signatures }] = await transactionSigner.modifyAndSignTransactions([transaction]);
                    const signatureBytes = signatures[transactionSigner.address];
                    window.alert(`Signature bytes: ${signatureBytes.toString()}`);
                } catch (e) {
                    console.error('Failed to sign transaction', e);
                }
            }}
        >
            Sign Transaction
        </button>
    );
}

On this page