A Next.js-based web application for constructing and signing EVVM (Ethereum Virtual Virtual Machine) transactions using Reown AppKit and Wagmi. This tool provides a user-friendly interface for creating payment and staking signatures for the EVVM ecosystem.
- Node.js 18 or later
- pnpm (recommended) or npm
- Clone the repository:
git clone <repository-url>
cd front-tool- Install dependencies:
pnpm install- Set up environment variables:
cp .env.example .env- Get your Project ID from Reown Cloud and add it to
.env:
NEXT_PUBLIC_PROJECT_ID=your_project_id_here- Run the development server:
pnpm run dev- Open http://localhost:3000 in your browser.
- Click the "Connect Wallet" button
- Select your preferred wallet from the Reown AppKit modal
- Approve the connection in your wallet
- Navigate to the "Payment signatures" section
- Choose between username or address for the recipient
- Enter the recipient information
- Fill in token address, amount, and priority fee
- Generate a random nonce or enter a custom one
- Select priority (Low for synchronous, High for asynchronous)
- Click "Create signature" and approve in your wallet
- Select the number of recipients (1-5)
- For each recipient, choose username/address and enter details
- Set token address, total amount, and priority fee
- Configure executor settings if needed
- Generate signature and approve in wallet
- Navigate to "Staking signatures"
- Select staking or unstaking action
- Enter staking address and amount
- Generate nonce and set priority
- Create signature
- Choose staking/unstaking action
- Enter staking address and amount
- Generate both EVVM and staking nonces
- Set priority fee and priority level
- Create dual signatures (EVVM + staking)
- Sepolia
- Arbitrum Sepolia
- Hedera Testnet
- Base Sepolia
- Mantle Sepolia Testnet
- Monad Testnet
- zkSync Sepolia Testnet
- Celo Sepolia
- opBNB Testnet
- Scroll Sepolia
- Zircuit Garfield Testnet
- Optimism Sepolia
- Avalanche Fuji
- Flare Testnet
NEXT_PUBLIC_PROJECT_ID: Your Reown Cloud project ID
The constructMessage.tsx utility handles building properly formatted messages for different signature types:
buildMessageSignedForPay: Single payment signaturesbuildMessageSignedForDispersePay: Batch payment signaturesbuildMessageSignedForPresaleStaking: Presale staking signaturesbuildMessageSignedForPublicStaking: Public staking signatures
The hashData.tsx utility provides:
hashPreregisteredUsername: Username hashing with clown numbershashDispersePaymentUsersToPay: Payment data hashing for disperse operations
Random nonce generation using Mersenne Twister algorithm for secure, non-predictable values.
pnpm testpnpm buildpnpm lint- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
- Go to Reown Cloud and create a new project.
- Copy your
Project ID - Rename
.env.exampleto.envand paste yourProject IDas the value forNEXT_PUBLIC_PROJECT_ID - Run
pnpm installto install dependencies - Run
pnpm run devto start the development server