// & yarn tsc --project tsconfig.cjs.json", # @nfight/signer
npm install @essential-dapps/react// & yarn tsc --project tsconfig.cjs.json",
@nfight/signer offers an ethers-based Signer for implementing nFight's meta-transaction stack in your dapp.
Provide an EssentialSigner to an ethers Contract or wagmi contract hook and user transactions will seamlessly become meta-transactions.
- Cross-chain NFT auth: pass an NFT's chainId, contractAddress and tokenId to Contract calls - CCTG authorizes ownership and forwards this data to your L2 contract for building cross-chain experiences without bridging.
- Network Agnostic UX: EssentialSigner lets users sign meta-transactions with their Ethereum wallet from any network - no network switching or L2 gas tokens needed.
- Burner Wallets: nFight supports localized on-chain delegation for NFT auth. Pass a burner Wallet to EssentialSigner so users sign meta-transactions without a popup, while your L2 contract receives the primary address as the _msgSender().
- Simple Integration: EssentialSigner is based on ethers, written in typescript and can be used in testing environments like hardhat.
The package is available via NPM:
``bash``
yarn install @nfight/signer
The SDK expects you to set some ENV vars in your dApp's environment:
The chain ID value for the chain where your implementation contract lives. 0xEssential currently supports Polygon's Mumbai testnet (80001) and Matic mainnet (137).
The SDK will handle submitting meta-transaction requests to your relayer. To do so the SDK needs to know the URI of the relaying service. This can be a fully qualified URL or a relative path.
nFight provides an OpenZeppelin Defender autotask that can be used as your relayer, but we recommend proxying the call to your autotask webhook to keep the URL secret.