Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

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
}

Related

Copyright © 2023-present Alamas Labs, Inc