Skip to content

Repository files navigation

POW

POW is an autonomous discovery agent that executes committed research programs with verifiable compute guarantees.

Problem

Labs struggle to raise because backers can't verify the work. Funds risk being misused — classic counterparty risk.

Solution

Fund an agent that provably does what it's funded to do. Verifiable compute (EigenAI / Eigen TEE) ensures the research program is executed as committed. Funds are held in an escrow contract and released only when a verifier submits a proof; the agent then withdraws.

Value Proposition

Removes counterparty risk and unlocks new capital formation for science.

Why POW Exists

Scientific research funding suffers from structural inefficiencies:

  • Backers cannot verify actual work performed
  • Funds may be misused
  • Milestone reporting is subjective
  • Capital formation relies on social trust

This creates persistent counterparty risk.

POW replaces discretionary trust with deterministic enforcement.


Core Idea

Instead of funding a lab, fund an agent.

The agent:

  • Executes a predefined research program
  • Runs inside verifiable compute (EigenAI + Eigen TEE)
  • Produces signed outputs
  • Triggers escrow release only when proof is submitted

Funds move only when cryptographic conditions are satisfied.


Trust Model

POW removes human discretion from fund release.

Actors

  • Backer → Deposits ETH into escrow for a program
  • Verifier → Submits proof of valid execution
  • Agent → Withdraws released funds

Guarantees

  • Funds cannot be withdrawn without proof submission
  • Verifier cannot withdraw funds
  • Agent cannot bypass escrow logic
  • No governance overrides
  • Program-level isolation enforced on-chain

Exact Workflow (What We Are Doing)

Exact Workflow

1. Backer Deposits

User goes to Research → selects program → clicks Fund Agent.

This calls: deposit(programId)

ETH is locked in escrow under that program ID.


2. EigenAI Executes Research

The agent executes the research program inside:

  • EigenAI (deterministic research execution)
  • EigenCompute / Eigen TEE (attested compute guarantees)

A signed proof artifact is generated.


3. Verifier Submits Proof

Verifier connects wallet and calls: submitProof(programId, agentWallet, proofSignature)

The contract:

  • Validates verifier permissions
  • Marks escrowed funds as releasable
  • Assigns release to the agent wallet

No ETH is transferred yet.


4. Agent Withdraws

Agent connects wallet and calls: withdraw(programId)

The escrow contract transfers ETH to the agent.


Getting Started

1. Install and env

cd my-app
npm install
cp .env.example .env.local

Edit .env.local: set NEXT_PUBLIC_ESCROW_ADDRESS after deploying the Escrow (see below). Optionally set EIGENAI_API_KEY, NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID.

2. Deploy Escrow (once)

Deploy contracts/Escrow.sol on Sepolia (e.g. Remix). Constructor: verifier = the address that will call submitProof (e.g. your wallet). Set NEXT_PUBLIC_ESCROW_ADDRESS in .env.local to the deployed contract address.

3. Run

npm run dev

Open http://localhost:3000. Connect wallet (Sepolia), use Research → Fund → then as verifier on Verify → then as agent on Dashboard to withdraw.

4. Build

npm run build

Requires TypeScript target ES2020 or higher in tsconfig.json (for BigInt support). If you see “BigInt literals are not available when targeting lower than ES2020”, set "target": "ES2020" in tsconfig.json or use BigInt(0) instead of 0n where needed.


Docs

  • docs/ARCHITECTURE.md – architecture and code layout
  • docs/CONTRACT_AND_FLOW.md – escrow contract and flow
  • docs/EIGEN_TEE.md – Eigen TEE / EigenCompute integration

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages