COMPLYR LogoComplyr

Getting Started

How to run Complyr locally and config environment variables.

Getting Started

Prerequisites

  • Node.js 18+
  • pnpm
  • Foundry (for contract development)

Clone and install

git clone https://github.com/Stoneybro/complyr
cd complyr
pnpm install

Run the web application

pnpm dev

The application runs at http://localhost:3000.

Environment variables

Create apps/web/.env.local:

# Privy authentication
NEXT_PUBLIC_PRIVY_APP_ID=your_privy_app_id

# Neon PostgreSQL (for contacts)
COMPLYR_DATABASE_URL=postgresql://...

# Relay wallet private key (for Zama transactions)
RELAY_PRIVATE_KEY=0x...

# Envio GraphQL API
NEXT_PUBLIC_ENVIO_API_URL=https://indexer.dev.hyperindex.xyz/86c2f35/v1/graphql

Build contracts

# Flow EVM contracts
pnpm forge:build

# Run tests
pnpm forge:test

Run the keeper

The keeper script polls the IntentRegistry for executable intents and triggers execution.

cd packages/keeper
cp .env.example .env
# Fill in PRIVATE_KEY and RPC_URL
pnpm dev

The keeper runs on a 30-second poll interval. For production use, deploy it as a persistent service (Railway, Fly.io, or a self-hosted VM).


Account abstraction setup

Complyr uses a self-hosted Skandha bundler deployed on Railway because no public bundler currently supports Flow EVM testnet. The bundler endpoint is configured in apps/web/src/lib/bundler.ts.

If you are deploying to a new environment, you will need to:

  1. Fork complyr-bundler and deploy it
  2. Update bundlerUrl in bundler.ts
  3. Fund the VerifyingPaymaster deposit on the EntryPoint

Contacts database

The contact book requires COMPLYR_DATABASE_URL to be set — see the Architecture page for a full description of how the contact system works.

On this page