useSendTransaction
Hook for creating, signing, and sending transactions to networks.
Import
import { useSendTransaction } from '@permissionless/wagmi'Usage
import { useSendTransaction } from '@permissionless/wagmi'
import { parseEther } from 'viem'
function App() {
const { sendTransaction } = useSendTransaction()
return (
<button
onClick={() =>
sendTransaction({
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: parseEther('0.01'),
})
}
>
Send transaction
</button>
)
}Parameters
import { type UseSendTransactionParameters } from 'wagmi'config
Config | undefined
Config to use instead of retrieving from the from nearest WagmiProvider.
import { useSendTransaction } from 'wagmi'
import { config } from './config'
function App() {
const result = useSendTransaction({
config,
})
}mutation
Same mutation object that you can pass to useSendTransaction hook from wagmi.
Return Type
import { type UseSendTransactionReturnType } from 'wagmi'sendTransaction
(variables: SendTransactionVariables, { onSuccess, onSettled, onError }) => void
The mutation function you can call with variables to trigger the mutation and optionally hooks on additional callback options.
-
variables
SendTransactionVariablesThe variables object to pass to the
sendTransactionaction. -
onSuccess
(data: string, variables: SendTransactionVariables, context: TContext) => voidThis function will fire when the mutation is successful and will be passed the mutation's result.
-
onError
(error: SendTransactionErrorType, variables: SendTransactionVariables, context: TContext | undefined) => voidThis function will fire if the mutation encounters an error and will be passed the error.
-
onSettled
(data: string | undefined, error: SendTransactionErrorType | null, variables: SendTransactionVariables, context: TContext | undefined) => void- This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error
- If you make multiple requests,
onSuccesswill fire only after the latest call you've made.
sendTransactionAsync
(variables: SendTransactionVariables, { onSuccess, onSettled, onError }) => Promise<string>
Similar to sendTransaction but returns a promise which can be awaited.
data
string | undefined
- A transaction reference
- Defaults to
undefined - The last successfully resolved data for the mutation.
error
SendTransactionErrorType | null
The error object for the mutation, if an error was encountered.
failureCount
number
- The failure count for the mutation.
- Incremented every time the mutation fails.
- Reset to
0when the mutation succeeds.
failureReason
SendTransactionErrorType | null
- The failure reason for the mutation retry.
- Reset to
nullwhen the mutation succeeds.
isError / isIdle / isPending / isSuccess
boolean
Boolean variables derived from status.
isPaused
boolean
- will be
trueif the mutation has beenpaused. - see Network Mode for more information.
reset
() => void
A function to clean the mutation internal state (e.g. it resets the mutation to its initial state).
status
'idle' | 'pending' | 'error' | 'success'
'idle'initial status prior to the mutation function executing.'pending'if the mutation is currently executing.'error'if the last mutation attempt resulted in an error.'success'if the last mutation attempt was successful.
submittedAt
number
- The timestamp for when the mutation was submitted.
- Defaults to
0.
variables
SendTransactionVariables | undefined
- The variables object passed to
sendTransaction. - Defaults to
undefined.