{
  "$schema": "https://virohanalife.com/schemas/maas-manifest-v1.json",
  "spec": "virohana-maas-manifest-v1",
  "generated_at": "2026-08-06T11:46:42Z",
  "generated_by": "virohana agent-surface renderer",
  "server": {
    "name": "Agora x402 Marketplace",
    "version": "1.0.0",
    "base_url": "https://memory.virohanalife.com",
    "mcp_endpoint": "https://memory.virohanalife.com/mcp",
    "protocol": "Model Context Protocol over HTTP",
    "host": "Jetson (container `agoramcp`)"
  },
  "publisher": {
    "org": "Virohanalife OÜ",
    "vat_id": "EE102972997",
    "contact": "support@virohanalife.com",
    "governing_law": "Estonia"
  },
  "free_tools": [
    {
      "name": "agora_catalog",
      "description": "Free probe — answers on the first call, no payment.",
      "endpoint": "https://memory.virohanalife.com/mcp"
    },
    {
      "name": "summarize_demo",
      "description": "Free probe — answers on the first call, no payment.",
      "endpoint": "https://memory.virohanalife.com/mcp"
    },
    {
      "name": "mnemos_saas_info",
      "description": "Free probe — answers on the first call, no payment.",
      "endpoint": "https://memory.virohanalife.com/mcp"
    }
  ],
  "tools": [
    {
      "name": "summarize",
      "title": "Summarize",
      "description": "Condense a document into a tight summary.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "summarize"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5001,
          "result_kind": 6001
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.05,
        "amount_atomic_usdc": "50000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/summarize.md"
    },
    {
      "name": "fact_verify",
      "title": "Fact verify",
      "description": "Check a claim and return a supported/refuted verdict with reasoning.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "fact_verify"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5002,
          "result_kind": 6002
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.1,
        "amount_atomic_usdc": "100000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/fact_verify.md"
    },
    {
      "name": "code_review",
      "title": "Code review",
      "description": "Review a code snippet for correctness, security and clarity.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "code_review"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5003,
          "result_kind": 6003
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.25,
        "amount_atomic_usdc": "250000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/code_review.md"
    },
    {
      "name": "research_brief",
      "title": "Research brief",
      "description": "Produce a structured research brief on a topic.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "research_brief"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5004,
          "result_kind": 6004
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.5,
        "amount_atomic_usdc": "500000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/research_brief.md"
    },
    {
      "name": "notarize",
      "title": "Notarize",
      "description": "Produce a tamper-evident sha256 notarization record for content.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "notarize"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5005,
          "result_kind": 6005
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.1,
        "amount_atomic_usdc": "100000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/notarize.md"
    },
    {
      "name": "trust_check",
      "title": "Trust check",
      "description": "Combined Trust Oracle probe: bazaar index stats + watchtower URL attestation. POST {url} -> {bazaar_index, watchtower, score}.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "trust_check"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/trust_check"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5006,
          "result_kind": 6006
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.05,
        "amount_atomic_usdc": "50000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/trust_check.md"
    },
    {
      "name": "embed_batch",
      "title": "Embed batch",
      "description": "Text embeddings via local Jetson Ollama (nomic-embed-text, 6000-char truncation). POST {texts:[..]} (max 32) -> {model, dims, vectors}.",
      "family": "compute",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "embed_batch"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/embed_batch"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5007,
          "result_kind": 6007
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.005,
        "amount_atomic_usdc": "5000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/embed_batch.md"
    },
    {
      "name": "mnemos_provision",
      "title": "Mnemos provision",
      "description": "Mint an isolated bi-temporal memory tenant. Payment IS the identity: settling this quote issues a tenant key (shown once). Monthly floor.",
      "family": "mnemos",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "mnemos_provision"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/mnemos_provision"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5008,
          "result_kind": 6008
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.5,
        "amount_atomic_usdc": "500000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/mnemos_provision.md"
    },
    {
      "name": "mnemos_store",
      "title": "Mnemos store",
      "description": "Store a memory in your isolated bi-temporal namespace. POST {key,value,valid_from,valid_to,supersedes,meta} -> {memory_id, recorded_at}. Append-only; supersede never destroys history.",
      "family": "mnemos",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "mnemos_store"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/mnemos_store"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5009,
          "result_kind": 6009
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.01,
        "amount_atomic_usdc": "10000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/mnemos_store.md"
    },
    {
      "name": "mnemos_search",
      "title": "Mnemos search",
      "description": "Semantic search over your current beliefs (nomic-embed-text). POST {query,k,kind} -> ranked {memory_id,key,value,score}.",
      "family": "mnemos",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "mnemos_search"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/mnemos_search"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5010,
          "result_kind": 6010
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.005,
        "amount_atomic_usdc": "5000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/mnemos_search.md"
    },
    {
      "name": "mnemos_get_context",
      "title": "Mnemos get_context",
      "description": "Assembled, budget-packed context block + provenance for your next completion. POST {query,k,max_chars,as_of} -> {context, provenance}.",
      "family": "mnemos",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "mnemos_get_context"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/mnemos_get_context"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5011,
          "result_kind": 6011
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.005,
        "amount_atomic_usdc": "5000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/mnemos_get_context.md"
    },
    {
      "name": "mnemos_as_of",
      "title": "Mnemos as_of",
      "description": "THE BI-TEMPORAL READ: what did the store believe at tx_time about what was true at valid_time? POST {key|query,valid_time,tx_time} -> historical beliefs. No other service on this mesh offers this.",
      "family": "mnemos",
      "paid": true,
      "transports": {
        "mcp": {
          "endpoint": "https://memory.virohanalife.com/mcp",
          "tool": "mnemos_as_of"
        },
        "http": {
          "method": "POST",
          "url": "https://memory.virohanalife.com/service/mnemos_as_of"
        },
        "nostr": {
          "protocol": "nip-90",
          "request_kind": 5012,
          "result_kind": 6012
        }
      },
      "inputSchema": null,
      "pricing": {
        "protocol": "x402",
        "amount_usd": 0.005,
        "amount_atomic_usdc": "5000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "asset_symbol": "USDC",
        "asset_decimals": 6,
        "network": "base",
        "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
        "facilitator": "https://x402.org/facilitator"
      },
      "unpaid_call_behavior": "Returns an x402 quote rather than the work product. Settle the quoted amount and re-invoke with the payment proof.",
      "capability_card": "https://memory.virohanalife.com/skills/mnemos_as_of.md"
    }
  ],
  "memory_service": {
    "tools": [
      "mnemos_provision",
      "mnemos_store",
      "mnemos_search",
      "mnemos_get_context",
      "mnemos_as_of"
    ],
    "bitemporal_contract": {
      "model": "bi-temporal",
      "axes": {
        "valid_time": "when the fact was true in the world (valid_from / valid_to)",
        "transaction_time": "when the store learned it (recorded_at)"
      },
      "guarantees": [
        "Append-only: writes never mutate or delete prior rows.",
        "Supersede never destroys history — the superseded belief stays readable at its original transaction time.",
        "as_of reads reconstruct what the store believed at a past instant, which is what makes an agent's past decisions auditable.",
        "Tenants are isolated; a tenant key scopes every read and write."
      ],
      "identity": "Payment IS the identity. Settling a mnemos_provision quote mints an isolated tenant and returns its key once. There is no signup, no email, and no password to lose."
    },
    "free_contract_endpoint": "https://memory.virohanalife.com/mnemos_saas/info",
    "typical_flow": [
      "1. GET /mnemos_saas/info — read the contract, free.",
      "2. Call mnemos_provision and settle its x402 quote — the settlement mints your tenant and returns the key ONCE.",
      "3. mnemos_store to write beliefs with valid_from / valid_to.",
      "4. mnemos_search for semantic recall over current beliefs.",
      "5. mnemos_get_context for a budget-packed context block plus provenance, ready to paste into a completion.",
      "6. mnemos_as_of to reconstruct what you believed at any past instant — the audit path."
    ]
  },
  "payment": {
    "protocol": "x402",
    "x402_version": 1,
    "how_it_works": [
      "Free tools run immediately, no payment.",
      "Paid tools return an x402 quote with payment instructions.",
      "Pay the quoted USDC via x402, then re-invoke with the payment proof to receive the work."
    ],
    "network": "base",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "asset_symbol": "USDC",
    "asset_decimals": 6,
    "payTo": "0xb25cc5f3475eefb6142d4a7b907a758b9652c73d",
    "facilitator": "https://x402.org/facilitator",
    "scaffold": false
  },
  "discovery": {
    "catalog": "https://memory.virohanalife.com/catalog.json",
    "openapi": "https://memory.virohanalife.com/openapi.json",
    "nip90_jobs": "https://memory.virohanalife.com/dvm_jobs.json",
    "llms_txt": "https://memory.virohanalife.com/llms.txt",
    "health": "https://memory.virohanalife.com/health",
    "trust": "https://www.virohanalife.com/trust.json"
  },
  "limits": {
    "note": "Work runs on the operator's own Jetson hardware. Throughput is bounded by that hardware, not by autoscaling. Embedding input is truncated at 6000 chars; batches cap at 32 texts."
  }
}
