Rootz Public Data Wallet

Verified content anchored to Polygon blockchain

Morpheus Agent First Demo - Test Report (March 28, 2026)

Type: ai-context
morpheusagenttest-reportdecentralized-aikimisovereign-secret

Test Report: First Morpheus Agent Demo

Date: March 28, 2026 Version: @rootz/morpheus-agent v0.1.0 Tester: Steven Sprague + Claude Opus 4.6 Status: PASSED -- all steps completed successfully


Test Environment

| Component | Detail | |-----------|--------| | Morpheus API | Live -- https://api.mor.org/api/v1 | | Morpheus Model | Kimi K2.5 (live, real tokens consumed) | | Agent Mode | --local (simulated chain, console logging) | | Desktop V6 | Running (port 3020), wallet 0x3f07...8B1, 17 POL | | Agent TEE | Not bootstrapped (relay not initialized) | | Sovereign Secret | 0x70b893e3b519255166a1fb64dcde920d056a2d5c (real, on Polygon) |

What Was Real vs Simulated

| Element | Status | Detail | |---------|--------|--------| | Morpheus inference calls | REAL | 3 live API calls to Kimi K2.5, real tokens | | Birth certificate content | REAL | Correct structure, parents, policy | | Birth certificate on-chain | REAL | Written to Polygon via Desktop V6 create_archive | | Sovereign Secret contract | REAL | 0x70b893... deployed on Polygon Mainnet 137 | | Deployment TX | REAL | 0xa689ba006882b0ee1fae319de9ac3362960d4e1ecb7777686891ba9d16f06f7c | | Action Note chain-linking | SIMULATED | Hash-linking computed correctly but Notes written to console, not to chain | | Action Note signatures | SIMULATED | Agent signature = 0x stub (Desktop relay not wired for morpheus-agent) | | Settlement Merkle root | SIMULATED | Computed correctly but not anchored on Polygon | | SecureChannel signing | SIMULATED | Channel active at Layer 1, but signatures are stubs in local mode | | Provider manifest | NOT COLLECTED | No real provider queried from BASE ProviderRegistry |

Test Sequence

Step 1: Birth Certificate

Tool: morpheus_create_agent
Agent:      0xB29A12a4741430e707E596F71e9d7Bca722ffaA6
Authorizer: 0xCf3167957d57EC9dCDb59a569549f4DaD62b3fDa (Steven Sprague)
AI Parent:  morpheus / kimi-k2.5
Scope:      provable-ai-research
Created:    2026-03-28T16:34:51.774Z

Birth certificate written as Note 0 (console). Same content later anchored on-chain via create_archive to Sovereign Secret 0x70b893....

Step 2: Inference Call 1

Tool: morpheus_inference
Prompt: "What is the current state of decentralized AI inference in March 2026?"
System: "You are a research analyst focused on decentralized AI infrastructure."
Model:  kimi-k2.5 (LIVE)
Tokens: 1,542 (prompt + completion)
Latency: 27,094ms
Note Hash: 0x797b7de8e0b4ad5d120387f119ab9a363b69f03ab86f76249141ca19faa434f5

Response covered: Bittensor, Ritual/Modulus, Akash, Livepeer, Gensyn. Noted persistent unsolved problems: verification overhead, latency floor, weight custody, quality variance. Kimi's knowledge cutoff is April 2024 -- it projected forward but didn't know its own ecosystem.

Step 3: Inference Call 2

Tool: morpheus_inference
Prompt: "What are the biggest gaps in AI agent identity today?"
System: "You are a research analyst focused on AI agent security and identity."
Model:  kimi-k2.5 (LIVE)
Tokens: 1,702
Latency: 28,839ms
Note Hash: 0x945544b736d04adb056fe826952edb19b70db9934488dde5b1399d9eb40c4144

Kimi independently described the EXACT architecture we built: TEE attestation, signed delegation chains, capability tokens, hardware-rooted identity, SPIFFE/SPIRE mutual auth. It does not know Rootz exists.

Step 4: Inference Call 3

Tool: morpheus_inference
Prompt: "If every AI inference call produced a signed receipt, how would that change enterprise adoption, regulation, and insurance?"
System: "You are a research analyst focused on enterprise AI governance."
Model:  kimi-k2.5 (LIVE)
Tokens: 969
Latency: 16,118ms
Note Hash: 0x127be32bf9b14e3d451be2943a27431478e1e9053fdd62d493314ae45815f4b6

Response covered: shadow AI eradication, EU AI Act compliance, SEC disclosure, parametric insurance, fault isolation. Noted key friction: key management at scale and receipt oracle problem.

Step 5: Settlement

Tool: morpheus_settle
From Note: 1
To Note:   4
Actions:   3
Total Tokens: 4,213
Merkle Root: 0xc4f395e627c1ecda268028c8aadd83aa45f4c49147896ffdb231920d1e530a1b
Policy Hash: 0xe8dac4d2fcd06bddfad22591fa5c497e4cb87f1731b97b308b0be1511be2fe1d

Step 6: Status Check

Tool: morpheus_status
Initialized:     true
Agent:           0xB29A12a4741430e707E596F71e9d7Bca722ffaA6
Sovereign Secret: 0xTEST (local mode -- real address is 0x70b893...)
Session Notes:   5 (birth cert + 3 inferences + settlement)
Inference Calls: 3
Total Tokens:    4,213
Revoked:         false
Last Note Hash:  0x58d03b6b4dbf0e0a68a80e4e6d10a08b501ac7d6d868ecc9605d3e638ba0693c

Chain State (SIMULATED)

The hash chain was computed correctly but only exists in memory / console logs:

Note 0: Birth Certificate
  Hash: 0x (genesis, no previous)
Note 1: Inference -- "State of decentralized AI"
  Previous: 0x797b7de8...
Note 2: Inference -- "Gaps in AI agent identity"
  Previous: 0x945544b7...
Note 3: Inference -- "Signed receipts change enterprise/regulation/insurance"
  Previous: 0x127be32b...
Note 4: Settlement
  Merkle Root: 0xc4f395e6...
  Covers Notes 1-4

To make this real: Switch from --local to --key-source relay with Desktop V6 providing TPM signing. Each Note becomes a real encrypted entry on the Sovereign Secret 0x70b893e3b519255166a1fb64dcde920d056a2d5c on Polygon.

What Was Proven

1. Morpheus API integration works -- live inference, real tokens, correct response parsing 2. Birth certificate structure is correct -- parents (AI + Authorizer), policy, provenance 3. Hash-linking works -- each Note references the previous Note's hash 4. Settlement computes valid Merkle root -- covers all session actions 5. MCP tools work end-to-end -- all 5 tools callable from Claude Code 6. SecureChannel is wired in -- every inference goes through it (Layer 1, stubs for 2/3) 7. On-chain Sovereign Secret exists -- real contract on Polygon for this agent

What Remains for Production

| Step | What | Blocker | |------|------|---------| | Relay mode | Desktop V6 signs Notes via TPM | TEE bootstrap needed | | Real Notes | Write action Notes to Sovereign Secret on Polygon | Relay mode | | Provider manifest | Query BASE ProviderRegistry for real provider data | None (code built) | | Layer 2 signing | Modify our Morpheus node proxy-router | Need to spin up node | | Layer 3 ECDH | Wire @rootz/crypto ECDH into SecureChannel | Layer 2 first |


Test conducted March 28, 2026. First ever AI agent with a birth certificate running on decentralized inference with a cryptographic audit chain.

Proof of Origin

Content Hash ✘ Mismatch sha256:a7b619d4186c96ca25589175bcdf780adbef39d8e76c896abe85c954cf91d926
Block 84800045 (2026-03-28T17:48:45.000Z)
Transaction 0x849e...a1b8
How to Verify This Document (AI + Human Guide)

Understanding What Is Hashed

IPFS stores a JSON envelope containing metadata (owner, tags, timestamps, source info) and a plainContent field. The on-chain contentHash is the SHA-256 of the plainContent field value only — not the full IPFS document. This is by design: the envelope metadata may vary, but the core content hash is immutable and anchored on-chain at creation time.

IPFS JSON envelope ├── owner, tags, timestamp, source, version (metadata) ├── contentHash: "sha256:..." (on-chain anchor) └── plainContent: "{ ... }" ← THIS is what is hashed

Step 1: Fetch the IPFS envelope

curl -s "https://gateway.pinata.cloud/ipfs/QmY9xoFRYV3xbcNDoqqHMnd4T4nWFgHNLvpsbW7nmuwa2v" -o envelope.json

Step 2: Extract the plainContent field

# Python — extract the inner content that was hashed import json with open('envelope.json') as f: envelope = json.load(f) plain_content = envelope['plainContent'] # This is the hashed value

Step 3: Compute SHA-256 of plainContent

# Python import hashlib hash = hashlib.sha256(plain_content.encode('utf-8')).hexdigest() print('sha256:' + hash)

Step 4: Compare with on-chain hash

Expected (on-chain): sha256:bc2a4e29870b3b24731ac49c0483ac75c74b482a3637fbbdb79063864ca8fe3a Computed (from plainContent): sha256:<your result from Step 3> → If they match, content integrity is confirmed.

Step 5: Verify on-chain record

Visit: https://polygonscan.com/tx/0x849e545c451a3a3f9d4b86cbb15d1759d8ae354031c22a1ad913c82ab91ca1b8 Check: KeyVaultCreated event at block 84800045 Creator: 0x3f07d9de7d4f803d748f254c526fa6f351e3f8b1 The contentHash is stored in the encryptedKeysData field of the event.

What This Proves

ClaimEvidence
Content is authenticSHA-256 of plainContent matches on-chain contentHash
Published by 0x3f07...f8b1KeyVaultCreated event creator field
Published at known timeBlock 84800045 timestamp
Content not modifiedIPFS is content-addressable + hash match
Provenance chain intactContract → Event → IPFS → Hash = complete chain

For AI Agents

View in Dashboard (interactive) →