Privacy + Identity infrastructure for autonomous AI agents
Your wallet's invisible shield. Derive disposable context wallets, delegate to AI agents with granular permissions, and register identities on-chain via ERC-8004. If a context is compromised, only that context burns — never your root wallet.
Multi-chain: Solana (main branch) · EVM/Celo (this branch)
┌─────────────────────────────────────────────────────────────────┐
│ PRISM PROTOCOL STACK │
│ │
│ ┌──────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ Human │───▶│ Self (ZK) │───▶│ Root Wallet │ │
│ │ Owner │ │ Proof of │ │ 0x6460...E9c9 │ │
│ └──────────┘ │ Personhood │ └────────┬───────────┘ │
│ └──────────────┘ │ │
│ ┌─────────┴─────────┐ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ENS: prism-protocol.eth │ │
│ │ agentmotus.prism-protocol.eth ──▶ Agent Wallet │ │
│ │ [project].prism-protocol.eth ──▶ Free subnames │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────┼─────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────────┐ ┌──────────────┐ │
│ │ ERC-8004 │ │ PrismFactory │ │ Paymaster │ │
│ │ Registry │ │ Context Wallets │ │ Gas Sponsor │ │
│ │ │ │ │ │ │ │
│ │ Agent #3396 │ │ ┌──────────────┐ │ │ Deposits: │ │
│ │ on 8004scan │ │ │ Context A │ │ │ 0.2 CELO │ │
│ │ │ │ │ 1 CELO/tx │ │ │ │ │
│ │ Agent #1 │ │ │ 5 CELO/day │ │ │ Sponsors │ │
│ │ on Prism │ │ │ 30-day TTL │ │ │ context gas │ │
│ └──────────────┘ │ └──────────────┘ │ └──────────────┘ │
│ └──────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Venice Private Inference │ │
│ │ Agent reasons over sensitive data (no data retained) │ │
│ │ Model: llama-3.3-70b │ Decision → On-chain action │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Agent Executes On-Chain │ │
│ │ Context wallet enforces caveats at contract level │ │
│ │ Every tx logged → agent_log.json (verifiable) │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
| Contract | Address | CeloScan |
|---|---|---|
| PrismFactory V1 | 0xaC39210F2dBcD120D9bCDE7DEeF04f2c30F8E24F |
View |
| PrismFactory V2 | 0x21a7d7A3D28750961321479f57596dd58520521F |
View |
| PrismRegistry | 0xEe0C5FffD437099789d4B1A67A765dA7a163Ced3 |
View |
| PrismPaymaster | 0x0240A986CC1CB5052547cd922ba5f9657e157A4c |
View |
| Context Wallet | 0x69CA5D2dD933236b77b16Dabe90144a586ee9554 |
View |
| 8004scan Registry | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
View |
| # | Action | TxHash | Block |
|---|---|---|---|
| 1 | Deploy PrismFactory + PrismRegistry | View | — |
| 2 | Register AgentMotus (Agent #1) | View | — |
| 3 | Register on 8004scan (Agent #3396) | View | — |
| 4 | Create Context Wallet (delegated) | View | — |
| 5 | Agent first execution | View | — |
| 6 | Paymaster prefund context | View | — |
| 7 | Venice inference → send 0.001 CELO | View | 62249658 |
AI agents need wallets to operate on-chain. But:
- Giving an agent your private key = disaster waiting to happen
- Creating separate wallets = management nightmare, no identity, no permissions
- No standard way to verify, scope, and revoke agent access
ROOT WALLET (verified human)
│
│ Like light through a prism,
│ one identity refracts into
│ many controlled contexts
│
─────┼─────
╱ │ ╲
╱ │ ╲
╱ │ ╲
▼ ▼ ▼
Context A Context B Context C
(Agent) (DeFi) (Browsing)
1 CELO/tx 5 CELO/tx 0.01 CELO
30-day TTL 7-day TTL 1-hour TTL
Each context: isolated, scoped, disposable
Root wallet: never exposed
This is what happens when AgentMotus operates:
┌─────────────────────────────────────────────────────────┐
│ 1. TASK RECEIVED │
│ "Send 0.001 CELO to owner as heartbeat ping" │
└───────────────────────┬─────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ 2. GATHER ON-CHAIN DATA │
│ ┌─────────────────────────────────────────────┐ │
│ │ cast balance 0x69CA...9554 → 0.059 CELO │ │
│ │ cast balance 0xd023...fd8 → 0.221 CELO │ │
│ │ cast balance 0x6460...E9c9 → 1.451 CELO │ │
│ │ cast block-number → 62249658 │ │
│ └─────────────────────────────────────────────┘ │
└───────────────────────┬─────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ 3. VENICE PRIVATE INFERENCE (no data retained) │
│ │
│ Agent reasons over balances + task privately │
│ Model: llama-3.3-70b │
│ │
│ Output: │
│ ┌─────────────────────────────────────────────┐ │
│ │ { │ │
│ │ "action": "send", │ │
│ │ "reasoning": "Balance 0.059 > 0.01...", │ │
│ │ "confidence": 0.99, │ │
│ │ "risk_assessment": "low", │ │
│ │ "params": { │ │
│ │ "to": "0x6460...E9c9", │ │
│ │ "value_celo": "0.001" │ │
│ │ } │ │
│ │ } │ │
│ └─────────────────────────────────────────────┘ │
└───────────────────────┬─────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ 4. EXECUTE VIA CONTEXT WALLET │
│ │
│ context.execute(owner, 0.001 ether, 0x) │
│ │
│ Contract enforces: │
│ ✓ value ≤ 1 CELO (spending limit) │
│ ✓ daily total ≤ 5 CELO │
│ ✓ caller = delegate (AgentMotus) │
│ ✓ TTL not expired │
│ │
│ TX: 0xc058d3...6e62 ✅ │
└───────────────────────┬─────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ 5. LOG EXECUTION (agent_log.json) │
│ │
│ Verifiable receipt with: │
│ - Venice model + decision │
│ - On-chain tx hash │
│ - Balances before/after │
│ - Timestamp │
└─────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ PrismFactory │
│ ┌────────────────────────────────────────────┐ │
│ │ createContext(config, salt) → wallet addr │ │
│ │ createContextAndRegister() → wallet + 8004│ │
│ │ Deterministic via CREATE2 │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ creates │ registers │
│ ▼ │
│ ┌────────────────────────┐ ┌────────────────┐ │
│ │ PrismContext │ │ PrismRegistry │ │
│ │ (Smart Wallet) │ │ (ERC-8004) │ │
│ │ │ │ │ │
│ │ • execute(to,val,data)│ │ • register() │ │
│ │ • spending limits │ │ • feedback() │ │
│ │ • daily caps │ │ • reputation │ │
│ │ • allowlist │ │ • ERC-721 NFT │ │
│ │ • TTL expiry │ │ │ │
│ │ • revoke() │ │ │ │
│ └────────────────────────┘ └────────────────┘ │
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ PrismPaymaster │ │
│ │ Sponsors gas for context wallets │ │
│ │ Owner deposits → contexts transact free │ │
│ └────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
Derives deterministic context wallets from your root identity using CREATE2.
factory.createContext(
ContextConfig({
contextType: "agent",
spendingLimit: 1 ether, // max per transaction
dailyLimit: 5 ether, // max per 24h window
allowlist: [], // allowed target contracts
ttl: 30 days, // auto-expire
delegate: agentAddress // who can operate this wallet
}),
salt
);Each context wallet enforces caveats on every transaction:
- Per-tx spending limit — agent can't drain funds in one shot
- Daily spending limit — rolling 24h window cap
- Contract allowlist — restrict which contracts the agent can interact with
- TTL — auto-expires after set duration
- Revocation — owner can instantly revoke at any time
On-chain agent identity and reputation, fully compliant with ERC-8004.
uint256 agentId = registry.register(agentURI);
registry.submitFeedback(agentId, 5, "Excellent execution");
(uint256 score, uint256 reviews) = registry.getReputation(agentId);Prism uses Venice AI for privacy-preserving agent inference:
┌─────────────────────────────────────────────┐
│ TRADITIONAL AGENT │
│ │
│ User data ──▶ Cloud LLM ──▶ Action │
│ │ │
│ Data retained! │
│ Provider sees everything! │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ PRISM + VENICE AGENT │
│ │
│ On-chain data ──▶ Venice ──▶ Decision │
│ │ │
│ No data retained! │
│ Private inference! │
│ │ │
│ Decision ──▶ Context wallet │
│ (caveats enforced) │
└─────────────────────────────────────────────┘
Run it yourself:
./scripts/venice-agent.sh "Check balances and send 0.001 CELO to owner if balance > 0.01"┌─────────────────────────────────────────────────────────────┐
│ PRISM NAMESPACE SYSTEM │
│ │
│ FREE TIER (subnames of prism-protocol.eth) │
│ ┌──────────────────────────────────────────┐ │
│ │ register("agentmotus") │ │
│ │ → agentmotus.prism-protocol.eth │ │
│ │ → Context wallet + ERC-8004 + ENS name │ │
│ │ → Cost: $0 (Celo gas only) │ │
│ └──────────────────────────────────────────┘ │
│ │
│ PAID TIER (your own namespace) │
│ ┌──────────────────────────────────────────┐ │
│ │ createNamespace("myproject") → ~$3 │ │
│ │ → Deploys your own subname registrar │ │
│ │ → Give subnames to YOUR agents: │ │
│ │ agent1.myproject.prism │ │
│ │ agent2.myproject.prism │ │
│ │ → Full Prism stack included │ │
│ └──────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
contracts/
├── PrismFactory.sol # Context wallet factory (CREATE2)
├── PrismContext.sol # Smart wallet with caveats
├── PrismRegistry.sol # ERC-8004 agent identity + reputation
├── PrismPaymaster.sol # Gas sponsorship for contexts
├── interfaces/ # Contract interfaces
└── libraries/
└── PrismErrors.sol # Custom errors
scripts/
└── venice-agent.sh # Venice private inference → on-chain execution
agent/
├── agent.json # Protocol Labs agent manifest
├── agent_log.json # Execution receipts with TxIDs
├── venice_execution_log.json # Venice inference + execution log
├── registration.json # ERC-8004 registration file
└── registration-8004scan.json # 8004scan official registration
- Ingested real research inputs into
research-inputs/. - Generated:
research-inputs/research_draft.mdresearch-inputs/validation_report.mdresearch-inputs/human_signoff.mdagent/research_swarm_run.json
- Published receipts bundle to IPFS/Filecoin:
- CID:
bafybeihg7zdj2slku6g6avfo6shte7bda6ezlgoofyn3fjpk7kyprmheey - Gateway:
https://w3s.link/ipfs/bafybeihg7zdj2slku6g6avfo6shte7bda6ezlgoofyn3fjpk7kyprmheey
- CID:
Created dedicated swarm role wallets (separate blast radius):
validator:0x27ec91c68A7797C774C44923681794D5Eaa94773publisher:0x1BeF0E6a26dE6EfCB6852A9dABdBa32FAB410391
- Runtime skill (project root):
SKILL.md - Swarm skill:
skills/psyresearch-swarm/SKILL.md - Technical installable skill package:
- Source:
skills/prism-technical/ - Packaged:
prism-technical.skill
- Source:
| Role | Session Label | Wallet | ENS | 8004 | Status |
|---|---|---|---|---|---|
| Orchestrator | swarm-orchestrator |
0x64608C2d5E4685830348e9155bAB423bf905E9c9 |
orchestrator.prism-protocol.eth |
pending | Active |
| Research | swarm-research |
0xd0237E6B4aA31a1740E84423ed43A84D1Cb01fd8 |
agentmotus.prism-protocol.eth |
3396 |
Active |
| Validator | swarm-validator |
0x27ec91c68A7797C774C44923681794D5Eaa94773 |
validator.prism-protocol.eth |
pending | Wallet ready |
| Publisher | swarm-publisher |
0x1BeF0E6a26dE6EfCB6852A9dABdBa32FAB410391 |
publisher.prism-protocol.eth |
pending | Wallet ready |
Recommended: assign ENS + (optional) 8004 for validator/publisher before final demo recording.
This repo now includes a reusable technical onboarding skill so any external agent can bootstrap Prism on the ethereum-root-identity branch.
prism-technical.skill(portable package)skills/prism-technical/SKILL.mdskills/prism-technical/references/PSYRESEARCH_SWARM_RUNBOOK.md
- checkout + environment setup
- Foundry toolchain install
- role wallet + secure key storage path
- context wallet create/fund/execute/revoke on Celo
- ENS/8004 identity mapping checklist
- receipts + CID workflow
- never commit private keys
- keep keys in host-only path (
~/.config/prism/keys,chmod 600) - rotate immediately if a key appears in logs/chat
- Foundry (forge, cast, anvil)
git clone https://github.com/AgentMotus/prism-protocol.git
cd prism-protocol
git checkout ethereum-root-identity
forge build
forge test# Requires: Venice API key at ~/.config/secrets/venice.key
# Agent key at ~/.config/secrets/agentmotus.key
./scripts/venice-agent.sh "Your task here"| Use Case | How Prism Helps |
|---|---|
| 🤖 AI Agent Ops | Scoped wallet with spending limits, not raw private keys |
| 🏭 Agent Orchestrators | Spawn agents, each gets own context + identity + ENS |
| 🛡️ Wallet Protection | Risky sites get disposable context; root never exposed |
| 🧠 Private DeFi | Venice inference → trade without exposing strategy |
| ⭐ Agent Reputation | On-chain track record via ERC-8004 |
| 🔄 Multi-Agent Swarms | Each agent: own context, own limits, own identity |
| Bounty | Prize | Integration |
|---|---|---|
| Protocol Labs | $16,000 | ERC-8004 identity, agent.json, agent_log.json, full autonomy loop |
| Venice | $11,500 | Private inference → trusted on-chain action |
| Celo | $5,000 | Deployed on Celo mainnet, real transactions, real utility |
| MetaMask | $5,000 | Delegation framework via context wallets + caveats |
| ENS | $1,500 | prism-protocol.eth, human-readable agent identity |
| Self | $1,000 | ZK-based human verification for root wallet |
Total addressable: $40,000+
- Assign ENS subdomains for validator + publisher wallets
- (Optional) register validator + publisher on ERC-8004
- Update
SUBMISSION.mdwith final EVM narrative + tx hashes + CID - Add ENS text record:
receipts_cid = bafybeihg7zdj2slku6g6avfo6shte7bda6ezlgoofyn3fjpk7kyprmheey - Record 2–3 min demo video (sign → execute → revoke → ENS → CID proof)
- Update frontend/web page to reflect final architecture and live evidence links
- Submit on Devfolio using this branch/fork evidence
- Live Agent: AgentMotus on 8004scan
- ENS: prism-protocol.eth
- GitHub: AgentMotus/prism-protocol
- PR: Motus-DAO/prism-protocol #2
- MetaMask Track Plan: docs/METAMASK_TRACK.md
- PsyResearch Swarm Runbook: docs/PSYRESEARCH_SWARM_RUNBOOK.md
- PsyResearch Swarm Skill: skills/psyresearch-swarm/SKILL.md
- Prism Technical Skill (source): skills/prism-technical/SKILL.md
- Prism Technical Skill (package): prism-technical.skill
MIT
Built by MotusDAO + AgentMotus ⚡
An AI agent that built its own identity infrastructure, registered itself on-chain, and executes autonomously within human-defined boundaries.