Skip to content

Repository files navigation

EVVM Fisher

A Nitro v3 server that acts as an EVVM fisher — receives signed actions (built with @evvm/evvm-js), signs them with the fisher's private key, and executes them on-chain. Fishers are the execution layer that enables gasless transactions for EVVM users. Learn more about EVVM.

Environment Variables

Variable Required Default Description
NITRO_FISHER_PRIVATE_KEY Yes EVM private key of the fisher signer
NITRO_RPC_URL No Sepolia public RPC JSON-RPC endpoint
PORT No 3000 (80 in Docker) HTTP server port

Getting Started

npm install
cp .env.example .env   # edit with your fisher private key
npm run dev

Building a SignedAction

Use @evvm/evvm-js to build a SignedAction and send it to POST /execute:

import { Core } from "@evvm/evvm-js";

const signedAction = await core.pay({
  toAddress, tokenAddress, amount,
  priorityFee, nonce, isAsyncExec,
});

await fetch("https://your-fisher/execute", {
  method: "POST",
  body: JSON.stringify({ signedAction }),
});

API

POST /execute

Request: { signedAction: ISerializableSignedAction, gas?: number }

Response: { success: true, data: { txHash } } or { success: false, message }

Docker

# Build
docker build -t evvm-fisher .

# Run with inline env vars
docker run -d -p 3000:80 \
  -e NITRO_FISHER_PRIVATE_KEY=0xYourPrivateKeyHere \
  evvm-fisher

# Or using a .env file
docker run -d -p 3000:80 --env-file .env evvm-fisher

Deploying

npm run build

See the Nitro deployment docs for available presets.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages