use7702Authorization
Sign EIP-7702 authorization payloads, allowing EOAs to temporarily behave like smart accounts for gasless transactions and batch operations.
Usage
import { use7702Authorization } from '@openfort/react';
import { usePublicClient } from 'wagmi';
import { sepolia } from 'viem/chains';
function Authorize7702() {
const { signAuthorization } = use7702Authorization();
const publicClient = usePublicClient();
const handleAuthorization = async () => {
const nonce = await publicClient.getTransactionCount({ address: '0x...' });
const signedAuth = await signAuthorization({
contractAddress: '0xe6Cae83BdE06E4c305530e199D7217f42808555B',
chainId: sepolia.id,
nonce,
});
console.log('Authorization signed:', signedAuth);
};
return <button onClick={handleAuthorization}>Sign Authorization</button>;
}Return type
type Use7702AuthorizationReturn = {
signAuthorization(params: SignAuthorizationParams, options?: SignOptions): Promise<SignedAuthorization>
}
type SignAuthorizationParams = {
contractAddress: Address // Implementation contract to authorize
chainId: number // Chain ID for the authorization
nonce: number // Current transaction count
}
type SignOptions = {
hashMessage?: boolean // Hash message before signing (default: false)
arrayifyMessage?: boolean // Arrayify message before signing (default: false)
}
type SignedAuthorization = {
address: Address
chainId: number
nonce: number
r: Hex
s: Hex
v: bigint
yParity: number
}