Skip to content

iam-protocol/executor-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

executor-node

IAM Protocol executor node. Validation server and relayer service for the IAM Protocol. Generates signed challenges, validates behavioral features server-side using proprietary models, issues SAS attestations, and relays walletless verification transactions to Solana.

Architecture

The executor serves two roles:

  1. Validation server — receives 134 statistical features from the Pulse SDK, runs proprietary validation models (loaded from the private iam-validation crate), performs cross-wallet Sybil detection via the fingerprint registry, and issues signed challenges.

  2. Walletless relayer — accepts ZK proofs and submits on-chain transactions for users without wallets (liveness-check tier). API key required.

API

POST /verify

Accepts a Groth16 proof for walletless verification. Submits create_challenge + verify_proof on-chain.

Request:
{
  "proof_bytes": [0, 1, 2, ...],
  "public_inputs": [[0, 1, ...], ...],
  "commitment": [0, 1, ...]
}

Response:
{
  "success": true,
  "tx_signature": "5abc..."
}

Requires X-API-Key header (walletless tier only).

POST /attest

Issues a Solana Attestation Service (SAS) attestation for a verified wallet.

GET /status

Returns service metrics (uptime, relayer balance, verifications processed).

GET /health

Returns service status (no auth required).

Setup

# Prerequisites: Rust, Solana CLI

# Configure environment
cp .env.example .env
# Edit .env: set RPC_URL, RELAYER_KEYPAIR_PATH

# Build
cargo build --release

# Run
cargo run

# Test
cargo test

Environment Variables

Variable Default Description
RPC_URL https://api.devnet.solana.com Solana RPC endpoint
WS_URL wss://api.devnet.solana.com Solana WebSocket endpoint
RELAYER_KEYPAIR_PATH ./relayer-keypair.json Path to relayer keypair JSON
LISTEN_ADDR 0.0.0.0:3001 Server bind address
API_KEYS [] JSON array of valid API keys
RATE_LIMIT_PER_MINUTE 60 Max requests per minute per API key
CORS_ORIGINS [] JSON array of allowed origins (permissive if empty)
SAS_CREDENTIAL_PDA SAS credential PDA for attestation issuance
SAS_SCHEMA_PDA SAS schema PDA for attestation issuance

License

MIT

About

Validation service that manages challenge issuance, ring formation, and on-chain attestation relay

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors