Skip to content

Motus-DAO/agentdashboard

 
 

Repository files navigation

AgentDashboard

Control plane for Motus multi-agent operations.

Stack

  • Next.js + TypeScript
  • Convex (database/runtime)
  • Human.tech auth boundary
  • Wallet/account abstraction permissions model

Run

npm install
npm run dev

Environment (server-side Convex access)

Chat API routes call Convex from the Next.js server using a shared secret so Convex is never exposed to the client.

  • CONVEX_SERVER_SECRET (required for chat): Set the same value in your Convex deployment and in .env.local:
    1. Generate a secret once: openssl rand -base64 32
    2. Convex: Dashboard → your deployment → Settings → Environment Variables, or npx convex env set CONVEX_SERVER_SECRET "<your-secret>"
    3. Next.js: add CONVEX_SERVER_SECRET=<same-secret> to .env.local
  • Default organization is created automatically the first time a chat is created (no manual bootstrap step).

Human Passport verification (optional)

verifyHumanTechSession() in src/lib/humantech.ts can verify a wallet address via Human Passport (Stamps API v2). To enable it:

  • PASSPORT_API_KEY – API key from developer.passport.xyz (API Keys section).
  • PASSPORT_SCORER_ID – Scorer ID from the same portal (Scorers section).
  • PASSPORT_SCORE_THRESHOLD (optional) – Minimum score to consider verified; default 20.

Pass the wallet address (e.g. from your session) to verifyHumanTechSession(address); it returns a HumanTechIdentity if the address has a passing score, or null otherwise. If these env vars are not set, the function returns null (no verification).

ERC-8004 agent identity (Celo)

The app can register an onchain agent identity on Celo using the global ERC-8004 registry. Registration JSON and logo are hosted in this repo and served on Vercel.

Setup:

  1. Deploy to Vercel (or use your deployed URL). Set in .env.local:

    • NEXT_PUBLIC_APP_URL=https://agents.motusdao.org (no trailing slash)
    • NEXT_PUBLIC_AGENT_REGISTRATION_URI=https://agents.motusdao.org/agent-registration.json
    • NEXT_PUBLIC_CELO_RPC_URL=https://forno.celo.org (optional; used when adding Celo in wallet)
    • Identity registry contract (Celo mainnet): 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
  2. Register onchain: Open Wallets in the app → use “Register ERC-8004 identity on Celo”. Sign the tx with your WaaP wallet (you’ll be switched to Celo if needed).

  3. Domain proof: After the first registration, set in Vercel (or .env.local):

    • NEXT_PUBLIC_ERC8004_AGENT_ID=<tokenId> (from the registry / tx logs)
    • NEXT_PUBLIC_ERC8004_AGENT_OWNER=<0xYourWallet>

Hosted in this repo:

  • Logo: public/agent-logo.svg (MotusDAO Hub icon). Served at /agent-logo.svg.
  • Registration JSON: GET /agent-registration.json (dynamic; uses NEXT_PUBLIC_APP_URL; default https://agents.motusdao.org).
  • Agent card (A2A): GET /.well-known/agent-card.json.
  • Domain proof: GET /.well-known/agent-registration.json (uses NEXT_PUBLIC_ERC8004_AGENT_ID and NEXT_PUBLIC_ERC8004_AGENT_OWNER).

Where to go when needed

Need Link
Deploy / env vars Vercel Dashboard → your project → Settings → Environment Variables
Convex backend / env Convex Dashboard → your deployment → Settings → Environment Variables
Human Passport (scores) developer.passport.xyz (API Keys, Scorers)
WaaP (wallet) docs.wallet.human.tech – config in code (initWaaP), no dashboard
Celo tx / contract Celoscan – look up your tx or 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 (IdentityRegistry)
ERC-8004 spec / resources eips.ethereum.org/EIPS/eip-8004, 8004.org

Celo On-chain Activity

The dashboard has successfully registered an onchain agent identity on Celo.

Name Value
Chain Celo mainnet
Registry 8004: Identity Registry
Agent identity (token ID) 1849
Registration tx 0xc7082bdae53cf295a97af538a5a9df3b86071fb3181b3df5ef0609091c0c19b9
Agent URI https://agents.motusdao.org/agent-registration.json
Domain proof https://agents.motusdao.org/.well-known/agent-registration.json (after setting NEXT_PUBLIC_ERC8004_AGENT_ID=1849 and owner in env)

Included baseline

  • Modular architecture scaffold
  • Convex schema for orgs/users/roles/tasks/chats/agents/wallets/audit
  • RBAC starter
  • Human.tech adapter boundary
  • Vertical slice demo route (/dashboard)
  • Docs, ADR starter, PR checklist

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 86.7%
  • JavaScript 7.0%
  • CSS 6.3%