Mutation hook for signing a transaction without broadcasting it. Produces a signed serialized transaction that can be submitted later or inspected by permissions/transaction-review flows.
Requires @getpara/viem-v2-integration and viem as peer dependencies.
Import
import { useParaViemSignTransaction } from "@getpara/react-native-wallet/evm/viem";
Usage
import { useParaViemClient, useParaViemSignTransaction } from "@getpara/react-native-wallet/evm/viem";
import { sepolia } from "viem/chains";
import { http, parseEther } from "viem";
import { View, Text, Button } from "react-native";
function SignTransaction() {
const { viemClient } = useParaViemClient({
walletClientConfig: { chain: sepolia, transport: http() },
});
const { signTransactionAsync, isPending, data: signedTx } = useParaViemSignTransaction(viemClient);
const handleSign = async () => {
const signed = await signTransactionAsync({
to: "0x...",
value: parseEther("0"),
type: "eip1559",
chain: sepolia,
});
console.log("Signed transaction:", signed);
};
return (
<View>
<Button title={isPending ? "Signing..." : "Sign Transaction"} onPress={handleSign} disabled={isPending} />
{signedTx && <Text>Signed: {signedTx}</Text>}
</View>
);
}
mutate/mutateAsync are also available alongside the named aliases. All other UseMutationResult fields (data, error, isSuccess, isError, reset, etc.) work as expected.