DOCUMENTACIÓN

La capa de conocimiento soberano para inteligencia artificial.

VISIÓN

ChainMemory no es una herramienta de memoria. Es una capa de conocimiento soberano para sistemas de IA.

Todos los modelos de IA actuales sufren la misma limitación fundamental: cuando una conversación termina, todo lo aprendido desaparece. El contexto se pierde. Las decisiones se olvidan. El progreso se reinicia a cero. ChainMemory existe para resolver esto permanentemente.

Las memorias que guardás son el mecanismo. El Project State — una vista estructurada, versionada y consolidada del conocimiento de tu proyecto — es el producto. La blockchain es la prueba. Y la interoperabilidad entre cualquier modelo de IA es la consecuencia.

Qué permite ChainMemory

  • Memoria portable entre modelos — Tu conocimiento funciona con ChatGPT hoy, Claude mañana, y cualquier modelo futuro. Sin vendor lock-in, nunca.
  • Continuidad verificable — Cada estado de proyecto se ancla on-chain con una prueba criptográfica. Podés demostrar que una decisión existía en un momento específico.
  • Pista de auditoría de decisiones — Cada decisión se rastrea hasta las conversaciones que la produjeron. Procedencia completa, responsabilidad total.
  • Identidad persistente para flujos de IA — Tu asistente de IA no arranca de cero en cada sesión. Hereda el conocimiento acumulado de cada interacción previa.
  • Conocimiento soberano — Vos sos dueño de tus datos. No OpenAI, no Anthropic, no Google. Tus memorias viven en tu cuenta, ancladas a una blockchain pública que podés verificar de forma independiente.
La idea central Las memorias son eventos. El Project State es una vista materializada. La blockchain es la autoridad de tiempo. Juntos, forman un sistema donde el conocimiento de IA es persistente, portable, estructurado y demostrablemente auténtico.

QUÉ ES CHAINMEMORY

ChainMemory es una plataforma de memoria persistente, portable y verificable para inteligencia artificial. Cada conversación importante, cada decisión, cada contexto de proyecto se guarda como una memoria individual, vinculada a un proyecto, y anclada en una blockchain soberana.

Tu IA olvida cada vez que cerrás la pestaña. ChainMemory resuelve eso. Funciona con ChatGPT, Claude, Gemini, Copilot, Perplexity y cualquier modelo que soporte MCP o API.

Tres formas de acceso Extensión Chrome (un clic desde cualquier chat), Servidor MCP (integración nativa con Claude/Cursor), y API REST (control total desde tu código).

POR QUÉ CHAINMEMORY

El problema es invisible hasta que perdés semanas de trabajo

Cada conversación con IA hoy empieza de cero. La IA no recuerda qué decidiste ayer, qué arquitectura elegiste la semana pasada, ni por qué rechazaste un enfoque hace tres meses. Los equipos que usan IA acumulan conocimiento crítico — y lo pierden cuando cierran la pestaña.

Antes y después

EscenarioSin ChainMemoryCon ChainMemory
Pasás 2 horas con Claude diseñando un esquema de base de datos Cerrás la pestaña. En la próxima sesión, Claude no tiene ningún recuerdo del esquema. Reexplicás todo desde cero. La decisión se guarda como memoria. En la próxima sesión, Claude recibe el esquema automáticamente vía inyección de contexto.
Tu equipo cambia de ChatGPT a Gemini a mitad de proyecto Todo el historial queda bloqueado en ChatGPT. Gemini empieza sin nada. Semanas de contexto perdidas. Gemini recibe el Project State completo — decisiones, riesgos, hitos, stack — como si hubiera estado desde el día uno.
Un stakeholder pregunta "¿cuándo decidimos usar PostgreSQL?" Buscás en cientos de hilos de chat esperando encontrarlo. ¿Quizás fue en Slack? ¿Quizás en otra IA? La decisión tiene un hash, un timestamp y links de evidencia. Compartís la URL de verificación — prueba criptográfica.
Dos miembros del equipo toman decisiones de arquitectura contradictorias usando diferentes IAs Nadie se da cuenta hasta que producción se rompe. No hay pista de auditoría mostrando quién decidió qué. El Motor de Consolidación detecta el conflicto, lo señala y rastrea qué decisión reemplaza a la otra.
Un auditor pide prueba de que una decisión de compliance se tomó antes de la fecha límite Tenés capturas de pantalla y "confiá en mí." Sin evidencia a prueba de manipulación. El estado fue anclado on-chain en el bloque N. El hash es inmutable. El auditor verifica de forma independiente.

Qué lo hace diferente

Otras herramientas guardan conversaciones. ChainMemory guarda conocimiento — estructurado, verificado y portable. La diferencia:

  • Estructurado, no crudo — El Motor de Consolidación extrae decisiones, hitos, riesgos y stack de conversaciones crudas. Obtenés un Project State, no un dump de transcripciones.
  • Verificado, no confiado — Cada estado es hasheado y anclado on-chain. Cualquiera puede verificar de forma independiente sin depender de los servidores de ChainMemory.
  • Portable, no bloqueado — Funciona con ChatGPT, Claude, Gemini, Copilot, Perplexity y cualquier herramienta compatible con MCP. Tu conocimiento se mueve con vos.
  • Inyectado, no buscado — El contexto se inyecta automáticamente en nuevas conversaciones con IA. La IA recibe lo que necesita sin que copies ni pegues nada.
El test de 5 minutos Instalá la extensión, guardá una memoria, cambiá a una IA diferente e inyectá el contexto. Vas a ver tu decisión llegar intacta en menos de 5 minutos. Ese es el momento en que hace clic.

INICIO RÁPIDO

Guardar → Recuperar → Verificar → Probar en 5 minutos

Prerequisitos

  • Google Chrome (o cualquier navegador Chromium)
  • Una cuenta ChainMemory — creá una acá
  • Tu API Key (desde la configuración de la Extensión o el dashboard)

Opción A — Extensión Chrome (más rápida)

1

Instalá e iniciá sesión

Descargá desde la Chrome Web Store. Iniciá sesión con tu cuenta. El icono de la extensión aparece en tu barra de herramientas.

2

Guardar — guardá una memoria

Abrí cualquier chat de IA (ChatGPT, Claude, Gemini). Tené una conversación donde tomes una decisión — ej., "Vamos a usar PostgreSQL para la base de datos de usuarios." Hacé clic en el icono de ChainMemory y guardá. La extensión extrae el contenido y crea una memoria vinculada a tu proyecto.

3

Recuperar — inyectar en una nueva sesión

Abrí una IA diferente (o una nueva conversación en la misma). Hacé clic en el icono de ChainMemory → "Inyectar Contexto." Tu decisión anterior llega automáticamente — la IA ahora sabe sobre la elección de PostgreSQL sin que repitas nada.

4

Verificar — chequeá el hash

En la Extensión, abrí Project Brain. Vas a ver el estado de tu proyecto con decisiones, hashes y links de evidencia. Cada estado tiene un hash SHA-256 computado a partir de todas sus memorias.

5

Probar — anclar on-chain

Hacé clic en "Seal" para anclar el hash del estado actual en la blockchain. Una vez confirmado, el estado es inmutable — cualquiera puede verificar que fue registrado en ese bloque y momento exacto.

Resultado Guardaste una decisión, la recuperaste en una IA diferente, verificaste su hash y creaste una prueba on-chain inmutable. Todo en menos de 5 minutos.

Opción B — Servidor MCP (para Claude / Cursor)

1

Configurar MCP

Agregá el servidor MCP de ChainMemory a tu configuración de Claude Desktop o Cursor. Mirá Configuración MCP para el config completo.

2

Guardar

En Claude, decí: "Recordá: decidimos usar PostgreSQL para la base de datos de usuarios". La herramienta MCP chainmemory_remember se activa automáticamente.

3

Recuperar

En una nueva conversación: "¿Qué base de datos elegimos?". Claude llama a chainmemory_recall y devuelve la decisión almacenada con su cadena de evidencia.

4

Verificar y Probar

Decí: "Sellá el estado actual del proyecto". La herramienta chainmemory_seal ancla el hash on-chain y devuelve el hash de la transacción.

Opción C — API REST (control total)

Opción D — Hermes Agent

Hermes Agent es un framework de agentes IA open-source. Usá ChainMemory dentro de Hermes mediante el servidor MCP (herramientas nativas en el chat) o el wrapper cm.py CLI (control total desde terminal).

Configurar MCP

Editá ~/.hermes/config.yaml y agregá:

YAML
mcp_servers:
  chainmemory:
    command: "python"
    args: ["C:\\Users\\\\.hermes\\skills\\chainmemory-mcp\\chainmemory_mcp_server.py"]
    env:
      CHAINMEMORY_API_KEY: "aic_..."

Reiniciá Hermes. Las herramientas aparecen como mcp_chainmemory_* en el chat.

O usá cm.py CLI

Instalá el skill de ChainMemory y usá cm save, cm recall, cm state desde terminal.

Verificar

En el chat de Hermes: "Recordá: decidimos usar PostgreSQL". O ejecutá cm whoami en terminal.

bash
# 1. Guardar una memoria
curl -X POST https://api.chainmemory.ai/v1/memory \
  -H "x-api-key: TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"summary":"Decidimos usar PostgreSQL para la DB de usuarios","category":"decision","importance":8}'

# 2. Recuperar memorias
curl https://api.chainmemory.ai/v1/memories/list?project=mi-proyecto \
  -H "x-api-key: TU_API_KEY"

# 3. Obtener estado del proyecto (incluye hash)
curl https://api.chainmemory.ai/v1/project/mi-proyecto/state \
  -H "x-api-key: TU_API_KEY"

# 4. Verificar ancla (público — sin autenticación)
curl https://api.chainmemory.ai/v1/project/mi-proyecto/state/anchor
Qué sigue Explorá cómo funciona event sourcing, aprendé sobre el modelo de confianza, o entrá en la referencia completa de la API.

CREÁ TU CUENTA

Registro

Las cuentas de ChainMemory se crean a través de la Extensión Chrome. Tu cuenta te da acceso a los tres métodos de integración: Extensión, Servidor MCP, y API REST.

1

Instalá la Extensión

Descargá desde la Chrome Web Store y hacé clic en "Agregar a Chrome".

2

Configurá tu API Key

Hacé clic en el icono de ChainMemory en la barra del navegador. Elegí una de las dos opciones:

  • Generar API Key automáticamente — crea un wallet gratis + 1 token AIC en un clic. Sin email, sin contraseña. Recomendado para usuarios nuevos.
  • Ya tengo una key — pegá tu key aic_... existente para restaurar tu cuenta en este dispositivo.
3

Tu API Key

Tu key está siempre disponible en Configuración → Conexión (hacé clic en "Ver"). Copiala — la necesitás para acceso vía MCP y API.

Guardá tu API Key de forma segura Tu API Key da acceso completo a tus memorias y proyectos. Nunca la compartas en repositorios públicos o código frontend. Guardala en variables de entorno o un gestor de secretos.

Creá tu primer proyecto

Los proyectos agrupan memorias relacionadas. Cada proyecto tiene su propia línea de tiempo, estado consolidado, y ancla on-chain independiente.

1

Vía la Extensión

En el popup de la extensión, hacé clic en "New Project". Ingresá un slug (minúsculas, sin espacios — ej: mi-saas, tesis-ml) y una descripción opcional. Hacé clic en Crear.

2

Vía la API

bash
curl -X POST https://api.chainmemory.ai/v1/projects \
  -H "x-api-key: tu-api-key" \
  -H "Content-Type: application/json" \
  -d '{"name": "mi-saas", "description": "Mi producto SaaS"}'
    
3

Vía MCP

Si tenés el servidor MCP configurado, pedile a tu IA: "Creá un nuevo proyecto de ChainMemory llamado mi-saas". La IA usará la herramienta create_project automáticamente.

Nombres de proyecto Elegí slugs descriptivos y cortos. Los vas a referenciar en cada llamada a la API e interacción MCP. Ejemplos: chainmemory, app-mobile, data-pipeline.

Resumen de credenciales

CredencialDónde encontrarlaSe usa para
API KeySe genera en el primer inicio o se pega manualmenteConexión de la extensión, llamadas a la API REST, configuración del servidor MCP
Slug del proyectoExtensión → ProyectosTodas las operaciones de memoria (guardar, recall, inyectar, seal)
Obtené tokens AIC gratis Visitá faucet.chainmemory.ai para reclamar 1 AIC. Necesitás AIC para anclar tu Project State on-chain. 1 AIC alcanza para cientos de operaciones de anclaje.

ARQUITECTURA

ChainMemory tiene una arquitectura de 3 capas:

Capa 1: Captura

La extensión Chrome, el servidor MCP o llamadas directas a la API capturan contenido de conversaciones con IA. El contenido se procesa, se le asignan tags, y se vincula a un proyecto.

Capa 2: Almacenamiento y Consolidación

Cada memoria se guarda en la base de datos episódica con su hash SHA-256. El Motor de Consolidación analiza las memorias y extrae operaciones estructuradas: decisiones, hitos, riesgos, stack tecnológico, dependencias.

Capa 3: Verificación On-Chain

El estado consolidado de cada proyecto se ancla periódicamente en la blockchain ChainMemory (Chain ID 202604). El hash del estado se registra en el contrato ProjectStateAnchor, creando una prueba inmutable de que ese estado existió en ese momento.

Pipeline
Conversación IA
      |
  Extensión / MCP / API
      |
  Memoria (hash SHA-256)
      |
  Motor de Consolidación (modelo de IA)
      |
  Project State (decisiones, hitos, riesgos, stack)
      |
  Anchor on-chain (tx hash + block number)
      |
  Verificación pública (/v1/project/:name/state/anchor)

CÓMO SE COMPARA CHAINMEMORY

ChainMemory opera en el espacio emergente de infraestructura de memoria para IA. Así se compara con las principales soluciones en 2026:

Matriz de Comparación

Característica ChainMemory Mem0 Zep / Graphiti Cognee Supermemory Letta
Modelo de almacenamiento BD episódica + anclaje on-chain Vector + Graph (híbrido) Knowledge graph temporal (Neo4j) Graph + Vector + Relacional (poly-store) Vectores semánticos + trazas temporales Jerárquico (core + externo)
Verificación criptográfica ✓ Blockchain soberana ✗ Centralizado ✗ Centralizado ✗ Centralizado ✗ Solo local ✗ Ninguna
Prueba on-chain ✓ Merkle roots + tx hash
Portabilidad cross-modelo ✓ Extensión + MCP + API ~ API + MCP ~ API + MCP ~ Python SDK ~ MCP + API ✗ Atado al framework
Consolidación estructurada ✓ Motor de 6 categorías (decisiones, hitos, riesgos, stack...) ✗ Facts crudos ~ Relaciones en knowledge graph ~ Enriquecimiento por pipeline ✗ Trazas semánticas ~ Resumen manual
Conciencia temporal ✓ Cadena de versiones + timestamps on-chain ~ Básico ✓ Ventanas de validez de hechos ~ Agregado 2025 ~ Trazas con tiempo
Auditoría de decisiones ✓ Cadena de evidencia con refs a memorias ~ Tracking de procedencia
Acceso no-developer ✓ Extensión Chrome (1-click) ✗ Solo developers ✗ Solo developers ✗ Solo developers ~ Extensión de navegador ✗ Solo developers
Identidad IA / atribución ✓ Soulbound Tokens (EIP-5192)
Ideal para Auditoría, compliance, trazabilidad multi-agente Prototipado rápido, personalización de usuario Razonamiento complejo, workflows CRM Pipelines de datos empresariales, RAG Agentes de código, memoria local Investigación, agentes de larga vida

Comparaciones Detalladas

ChainMemory vs. Mem0

Mem0 se enfoca en personalización de usuario — extrae facts de conversaciones para construir perfiles. ChainMemory se enfoca en conocimiento de proyecto — extrae decisiones, hitos y riesgos para construir un estado auditable. Mem0 es ideal para "recordar que el usuario prefiere modo oscuro". ChainMemory es ideal para "probar que esta decisión arquitectónica fue tomada el 15 de mayo por Claude basándose en estas 5 conversaciones".

ChainMemory vs. Zep / Graphiti

El motor Graphiti de Zep es excelente en knowledge graphs temporales — rastreando cuándo un hecho se volvió válido y cuándo fue reemplazado, con búsqueda híbrida (semántica + BM25 + traversal de grafos). ChainMemory provee semántica de supersesión temporal similar pero agrega una capa que Zep no tiene: anclaje on-chain. Cuando necesitás probarle a un regulador o auditor que una decisión existía en un momento específico, ChainMemory da prueba criptográfica. Zep da garantía basada en confianza.

ChainMemory vs. Cognee

Cognee es un potente pipeline de procesamiento de datos — ingesta 30+ fuentes, construye knowledge graphs con tripletas sujeto-relación-objeto, soporta múltiples backends. ChainMemory es más opinado: procesa solo memorias de conversaciones IA, pero extrae inteligencia de proyecto estructurada (6 categorías) en vez de nodos genéricos de knowledge graph.

ChainMemory vs. Supermemory

Supermemory se enfoca en memoria semántica a escala — liviano, rápido, corre local, top-ranked en benchmarks. ChainMemory está optimizado para conocimiento de proyecto estructurado con verificación blockchain. Supermemory es la mejor opción para agentes de código que necesitan recall semántico rápido. ChainMemory es la mejor opción cuando necesitás probar qué decidió una IA y por qué.

Diferenciador clave ChainMemory es la única solución que combina tres capacidades que ninguna otra herramienta tiene juntas: (1) extracción de conocimiento estructurado (motor de consolidación de 6 categorías), (2) portabilidad cross-modelo (Extensión + MCP + API, sin atarse a ningún framework), y (3) verificación criptográfica (blockchain soberana con pruebas Merkle). Otras herramientas guardan memorias. ChainMemory construye conocimiento de proyecto verificable.
No son mutuamente excluyentes ChainMemory puede complementar otras herramientas de memoria. Usá Supermemory o Mem0 para recall rápido en sesión, y ChainMemory para decisiones de proyecto permanentes y auditables.

CONCEPTOS

El modelo Event-Sourcing

ChainMemory sigue una arquitectura event-sourcing. Entender este patrón es clave para entender todo el sistema.

En sistemas tradicionales, guardás el estado actual y lo sobreescribís en cada cambio. En event-sourcing, guardás cada cambio como un evento inmutable, y el estado actual se deriva reproduciendo esos eventos.

En ChainMemory:

  • Las memorias son eventos — Cada memoria es un registro inmutable de algo que pasó: se tomó una decisión, se identificó un riesgo, se eligió una tecnología, se alcanzó un hito.
  • El Project State es una vista materializada — El Motor de Consolidación procesa todos los eventos-memoria y produce un snapshot estructurado: el Project State. No se almacena directamente — se computa desde el log de eventos.
  • La blockchain es la autoridad de tiempo — Cuando un Project State se ancla on-chain, la blockchain certifica que esta vista materializada específica existía en ese block height exacto.
Patrón
Memoria #1 (evento) ─┐
Memoria #2 (evento) ─┤
Memoria #3 (evento) ─┼──→ Motor de Consolidación ──→ Project State v1 ──→ Anchor (bloque 120000)
Memoria #4 (evento) ─┤
Memoria #5 (evento) ─┘

Memoria #6 (evento) ─┐
Memoria #7 (evento) ─┼──→ Motor de Consolidación ──→ Project State v2 ──→ Anchor (bloque 123539)
Memoria #8 (evento) ─┘

Esto significa que siempre podés reconstruir cualquier versión del Project State reproduciendo las memorias hasta ese punto. El log de eventos es la fuente de verdad. El estado es una capa de conveniencia. El anchor es la prueba.

Por qué importa Event-sourcing garantiza trazabilidad completa. Cada decisión en tu Project State se puede rastrear hasta la conversación específica donde se originó. Nada se pierde, nada se sobreescribe, y el historial siempre está disponible.

Qué es una memoria

Una memoria es la unidad fundamental de ChainMemory. Es un fragmento de información extraído de una conversación con IA que se considera valioso para el futuro del proyecto.

Cada memoria contiene:

  • Contenido — El texto de la conversación o nota
  • Hash — SHA-256 del contenido, inmutable
  • Proyecto — A qué proyecto pertenece
  • Tags — Etiquetas libres para organización (decisión, bug, arquitectura, idea, etc.). Los tags son para tu uso — el Motor de Consolidación usa su propia estructura de 6 categorías (ver Project State)
  • Número — Secuencial dentro de tu cuenta (#1, #2...)
  • Fuente — Desde dónde se guardó (extensión, MCP, API)
  • Timestamp — Momento exacto de creación

Proyectos

Un proyecto agrupa memorias relacionadas. Cada proyecto tiene su propia línea de tiempo, estado consolidado, y ancla on-chain independiente.

Ejemplos de proyectos: mi-saas, tesis-ml, chainmemory, app-mobile.

Project State

El Project State es el resultado del Motor de Consolidación: un modelo de IA analiza todas las memorias del proyecto y extrae información estructurada. Es el corazón de ChainMemory — transforma fragmentos de conversación en una base de conocimiento organizada y auditable.

Las 6 Categorías

CategoríaQué capturaEjemplo
contextResumen, objetivos y alcance del proyecto"Plataforma e-commerce para artesanos, objetivo 10K usuarios en Q3"
decisionsElecciones arquitectónicas y estratégicas con estado (active/superseded/evaluating)"Usar Stripe para pagos" (active, evidence: #12, #45)
milestonesEntregables y checkpoints (completed/pending) con fechas"Schema de BD completo" (completed, 2026-05-15)
risksAmenazas identificadas con severidad (low/medium/high/critical)"Performance de RLS a escala" (medium, evidence: #15)
stackTecnologías, frameworks, herramientas e infraestructura{name: "PostgreSQL", role: "primary-db", version: "16"}
dependenciesServicios externos, APIs y relaciones de equipo{name: "Stripe API", type: "payment-provider", critical: true}

Ciclo de Vida del Estado

El estado es incremental: cada consolidación parte de la versión anterior y aplica solo las operaciones nuevas. Esto crea una cadena de versiones con integridad completa:

Cadena de versiones
v1 (3 memorias)  ──hash──▶  v2 (8 memorias)  ──hash──▶  v3 (15 memorias)
     │                           │                           │
     └─ anclado bloque 80,467   └─ anclado bloque 81,102   └─ anclado bloque 82,340

Cada versión contiene:

  • state_hash — SHA-256 del estado completo, enlazado a la versión anterior
  • version — Número secuencial (v1, v2, v3...)
  • previous_hash — Hash de la versión anterior (null para v1)
  • operations — Qué cambió: adiciones, actualizaciones, supersesiones
  • anchor_tx — Hash de transacción on-chain (una vez sellado)

Ejemplo Real: Project State Completo

JSON — Project State v4
{
  "project_id": "payment-system-v2",
  "version": 4,
  "state_hash": "a3f8c2...e91d",
  "previous_hash": "7b2e1a...f4c0",
  "context": {
    "summary": "Sistema de pagos con aislamiento multi-tenant y detección de fraude",
    "goals": ["Procesar 1000 tx/seg", "Cumplimiento PCI DSS Level 1", "Latencia sub-200ms"]
  },
  "decisions": [
    {
      "id": "d001", "title": "Usar Stripe para procesamiento de pagos",
      "status": "active", "evidence": ["#12", "#45", "#67"],
      "rationale": "Mejor documentación de API, confiabilidad de webhooks, PCI compliance integrado"
    },
    {
      "id": "d002", "title": "PostgreSQL con RLS para multi-tenancy",
      "status": "active", "evidence": ["#15", "#23"]
    },
    {
      "id": "d003", "title": "Usar MySQL para multi-tenancy",
      "status": "superseded", "superseded_by": "d002", "evidence": ["#8"]
    }
  ],
  "milestones": [
    {"id": "m001", "title": "Schema de BD", "status": "completed", "date": "2026-05-15"},
    {"id": "m002", "title": "Integración de pagos", "status": "pending"}
  ],
  "risks": [
    {"id": "r001", "title": "Performance de RLS con 100K tenants", "severity": "medium"}
  ],
  "stack": [
    {"name": "Node.js", "version": "22", "role": "runtime"},
    {"name": "PostgreSQL", "version": "16", "role": "primary-db"},
    {"name": "Redis", "version": "7", "role": "cache"}
  ],
  "dependencies": [
    {"name": "Stripe API", "type": "external", "critical": true}
  ]
}

Operaciones del Motor de Consolidación

  • ADD — Nueva decisión, hito, riesgo o entrada de stack detectada en el contenido de la memoria
  • UPDATE — Entrada existente recibe nueva evidencia, estado actualizado o detalles enriquecidos
  • SUPERSEDE — Una decisión es reemplazada por una más nueva (ambas preservadas en el historial)
  • COMPLETE — Un hito pasa de pendiente a completado con fecha
  • ESCALATE — La severidad de un riesgo aumenta basándose en nueva evidencia

Mejores Prácticas

  • Guardá decisiones explícitamente — "Decidimos usar X porque Y" se consolida mejor que "tal vez deberíamos probar X"
  • Incluí la justificación — El motor extrae el razonamiento del contenido. Cuanto más contexto des, más rico será el estado
  • Sellá regularmente — Anclá tu estado on-chain después de hitos importantes para crear checkpoints inmutables
  • Revisá decisiones reemplazadas — Cuentan la historia de cómo evolucionó tu proyecto. No las ignores
Tags vs. categorías Los tags de las memorias (configurados vía API/Extensión/MCP) son libres — podés usar cualquier etiqueta. Las 6 categorías de arriba pertenecen al Motor de Consolidación, que analiza semánticamente el contenido de las memorias para clasificarlas automáticamente. Una memoria con tag "bug" podría contribuir a la categoría risks; una con tag "arquitectura" podría alimentar decisions y stack. Los tags te ayudan a vos a organizar; las categorías ayudan al motor a estructurar.
Estado multi-agente Cuando múltiples agentes contribuyen al mismo proyecto, el Motor de Consolidación fusiona todas las contribuciones en un único estado unificado. El array de evidencia de cada entrada muestra qué agente contribuyó vía atribución de memorias. Ver Sistemas Multi-Agente para detalles.

Cadena de evidencia

Cada decisión, hito y riesgo en el Project State lleva un campo evidence — un array de referencias a memorias que justifican su existencia.

JSON
{
  "id": "d001",
  "title": "Usar consenso Clique PoA",
  "statement": "Blockchain soberana usa Proof of Authority para anclaje rápido y económico",
  "status": "vigente",
  "evidence": ["#12", "#45", "#67"]
}

Esto crea una cadena de procedencia completa:

  • La decisión d001 existe porque las memorias #12, #45 y #67 la respaldan
  • Cada memoria tiene un hash SHA-256 que prueba que su contenido no cambió
  • El Project State que contiene esta decisión tiene un state_hash anclado on-chain
  • El ancla on-chain tiene un tx_hash y block number que prueban cuándo se registró

Desde una sola decisión, podés rastrear el camino completo: decisión → memorias de respaldo → hashes de contenido → hash del estado → prueba on-chain. Esto es lo que hace que las decisiones de ChainMemory sean auditables e inalterables.

Reconstruir una decisión Para verificar cualquier decisión: (1) obtené el Project State, (2) mirá el array de evidence, (3) recuperá cada memoria referenciada, (4) verificá que los hashes coincidan, (5) chequeá el ancla on-chain. Toda la cadena es verificable independientemente.

Resolución de conflictos

Cuando dos memorias contienen información contradictoria, el Motor de Consolidación aplica una estrategia de resolución determinística:

Precedencia temporal

La memoria más reciente tiene prioridad. Si la Memoria #20 dice "Usaremos PostgreSQL" y la Memoria #40 dice "Cambiamos a ClickHouse", el motor marca la decisión de PostgreSQL como reemplazada y crea una nueva decisión activa para ClickHouse.

Supersesión explícita

El motor detecta patrones de lenguaje que indican cambio de dirección: "en vez de", "reemplazando", "decidimos cambiar", "ya no usamos". Cuando se detecta, la decisión anterior se marca explícitamente como reemplazada con referencia a la nueva.

Ciclo de vida de estados

Flujo de estados
vigente ──→ reemplazada    (sustituida por una decisión más nueva)
vigente ──→ en evaluación  (bajo revisión, aún no confirmada)
en evaluación ──→ vigente  (confirmada tras evaluación)
en evaluación ──→ rechazada (descartada)

Acumulación de evidencia

Cuando múltiples memorias refuerzan la misma decisión, el motor las agrega al array de evidencia en lugar de crear duplicados. Una decisión con evidencia de 5 memorias es más sólida que una con una sola referencia.

Sin pérdida de datos Las decisiones reemplazadas nunca se eliminan. Permanecen en el Project State con su estado cambiado, preservando el historial completo de cómo evolucionó la dirección del proyecto. Siempre podés ver qué se decidió antes y por qué cambió.

Gobernanza del estado

El ciclo de vida del Project State está gobernado por reglas claras:

Quién puede consolidar?

Solo el dueño del proyecto (la cuenta que lo creó) puede disparar una consolidación. Esto asegura que la extracción de conocimiento estructurado siempre esté controlada por el dueño de los datos.

Cuándo ocurre la consolidación?

  • Manual — Vía la herramienta MCP chainmemory_seal, la API, o la vista Project Brain de la extensión
  • Automática — Después de un número configurable de nuevas memorias (default: cada 10 nuevas memorias)

Se puede revertir?

Cada consolidación crea una nueva versión (v1, v2, v3...). Las versiones anteriores siguen accesibles. No podés borrar una versión, pero siempre podés consolidar de nuevo para producir un estado corregido. La cadena de versiones es append-only.

Snapshots

Cada versión del Project State es un snapshot. La combinación de número de versión + state_hash + ancla on-chain crea un checkpoint verificable. Podés obtener cualquier versión histórica vía GET /v1/project/:name/state?version=2.

AcciónQuiénCuándoReversible
ConsolidarDueño del proyectoManual o auto (cada N memorias)Se crea nueva versión (append-only)
Anclar on-chainDueño del proyectoDespués de consolidaciónInmutable una vez anclado
Archivar memoriaDueño del proyectoCualquier momentoSe puede desarchivar
Ver cualquier versiónCualquiera (endpoint público)Cualquier momentoN/A (solo lectura)

Hash y verificación

Cada memoria genera un hash SHA-256 de su contenido. Este hash es la huella digital única e inmutable de esa memoria. El contenido no se puede modificar sin cambiar el hash.

El state hash es un hash del estado consolidado completo (todas las decisiones, hitos, riesgos, etc.). Este state hash se ancla en la blockchain mediante una transacción en el contrato ProjectStateAnchor.

Verificación pública

La verificación en ChainMemory es pública y sin permisos. Cualquier persona puede:

  1. Llamar a GET /v1/project/:name/state/anchor (no requiere API key)
  2. Obtener el state_hash y el tx_hash de la transacción
  3. Verificar en el explorer que la transacción existe
  4. Leer el contrato directamente en la blockchain para confirmar que el hash coincide

Esto demuestra que el estado del proyecto existía exactamente así en el momento del anclaje. No se puede falsificar retroactivamente.

Modelo de privacidad

Una preocupación común con sistemas basados en blockchain es la exposición de datos. ChainMemory aborda esto con una separación estricta:

Principio crítico El contenido de las memorias NUNCA va on-chain. Solo los hashes criptográficos se publican en la blockchain.

Qué se guarda dónde

DatoUbicaciónAcceso
Contenido de memoria (texto completo)Base de datos encriptada (off-chain)Solo el dueño (requiere API key)
Hash de memoria (SHA-256)Base de datos + opcionalmente on-chainEl hash es público pero no revela nada del contenido
Project State (estructurado)Base de datos (off-chain)Solo el dueño
State hashBlockchain (on-chain)Público — esta es la prueba verificable
Metadata del anchor (tx, bloque)Blockchain (on-chain)Público

El registro on-chain contiene solamente: identificador del proyecto (hasheado), número de versión del estado, hash del estado, y timestamp. Desde una transacción de blockchain, es imposible reconstruir el contenido de ninguna memoria o los detalles de ninguna decisión.

Este diseño significa que ChainMemory puede proveer verificación criptográfica sin comprometer la privacidad. La blockchain prueba que un estado existió, no qué contenía.

EXTENSIÓN CHROME

Instalación

  1. Ir a la Chrome Web Store
  2. Click en "Agregar a Chrome"
  3. El icono de ChainMemory aparece en la barra de extensiones
  4. Click en el icono y creá tu cuenta o iniciá sesión
  5. Seleccioná o creá un proyecto
Versión actual v3.0.9 — Incluye Project Brain (visor de Project State), inyección de contexto, y soporte para 5+ plataformas.

Guardar memorias

Desde cualquier chat de IA soportado, la extensión detecta automáticamente la conversación activa. Tenés dos formas de guardar:

Botón flotante

Un botón dorado aparece en la esquina del chat. Un clic extrae el contenido de la conversación, lo procesa, y lo guarda como memoria.

Popup de la extensión

Click en el icono de ChainMemory en la barra del navegador. Seleccioná el proyecto destino, agregá tags opcionales, y confirmá.

Rescatar tu historial

No tenés que empezar de cero. La extensión puede guardar mensajes de tu historial de chats existente — conversaciones de hace semanas o incluso meses. Abrí cualquier conversación pasada en una IA compatible, y la opción "Save to ChainMemory" funciona en los mensajes viejos igual que en un chat en vivo.

Esto significa que el conocimiento que ya acumulaste en tus conversaciones con IA se convierte en memoria soberana y portable desde el primer día. Una vez guardada, asignás cada memoria al proyecto que quieras — uno existente o uno nuevo — y la organizás como cualquier otra.

Cada memoria guardada recibe:

  • Hash SHA-256 único del contenido
  • Número secuencial dentro de tu cuenta (#1, #2, #3...)
  • Tags para organización (decisión, arquitectura, bug, etc.)
  • Vinculación al proyecto activo
  • Timestamp del momento de guardado

Inyectar contexto

La función más poderosa: antes de iniciar una nueva conversación con cualquier IA, ChainMemory puede inyectar automáticamente el contexto relevante de tus memorias previas.

Esto significa que tu nueva conversación arranca con el conocimiento acumulado de conversaciones anteriores. Tu IA sabe qué decidiste, qué tecnologías usás, cuáles son tus prioridades.

Cómo funciona

  1. Abrí un nuevo chat en cualquier plataforma soportada
  2. La extensión detecta el campo de texto
  3. Seleccioná las memorias o el estado del proyecto a inyectar
  4. El contexto se inserta automáticamente como primer mensaje

Project Brain (Visor de Project State)

Project Brain es el visor de Project State integrado en la extensión — una vista consolidada y estructurada de todo lo que tu proyecto sabe. El Motor de Consolidación analiza todas tus memorias y extrae:

  • Decisiones — Qué se decidió y por qué (estado: vigente, reemplazada, en evaluación)
  • Hitos — Logros completados y pendientes con fechas
  • Riesgos — Amenazas identificadas con severidad y estado
  • Stack tecnológico — Herramientas y tecnologías del proyecto
  • Dependencias — Relaciones externas
  • Contexto — Resumen ejecutivo del proyecto

Este estado tiene un fingerprint verificable anclado on-chain. Podés demostrar que tu proyecto tenía exactamente ese estado en un momento dado.

Plataformas soportadas

La extensión funciona con cualquier chat de IA basado en web:

  • ChatGPT (chat.openai.com)
  • Claude (claude.ai)
  • Gemini (gemini.google.com)
  • Perplexity (perplexity.ai)
  • Copilot (copilot.microsoft.com)
  • Hermes Agent (agent.nousresearch.com) — vía servidor MCP o wrapper cm.py

Si la plataforma tiene un campo de texto y muestra conversaciones, ChainMemory puede capturar el contenido.

SERVIDOR MCP

Configuración

El servidor MCP permite a Claude Desktop, Cursor y otras herramientas compatibles acceder a ChainMemory como herramienta nativa.

Instalación

Agregá esta configuración a tu archivo claude_desktop_config.json:

JSON
{
  "mcpServers": {
    "chainmemory": {
      "command": "npx",
      "args": ["-y", "chainmemory-mcp"],
      "env": {
        "CHAINMEMORY_API_KEY": "tu-api-key"
      }
    }
  }
}
Obtener tu API Key Iniciá sesión en la extensión Chrome, andá a Configuración y copiá tu API Key.

Herramientas disponibles

Una vez configurado, tu IA tiene acceso a estas herramientas:

TOOL chainmemory_remember

Guarda una nueva memoria vinculada a un proyecto con tags y metadata.

TOOL chainmemory_recall

Busca memorias por contenido, tags, proyecto o rango de fechas.

TOOL chainmemory_stats

Estadísticas de la cuenta: total de memorias, proyectos, uso.

TOOL chainmemory_profile

Información del perfil y configuración de la cuenta.

TOOL chainmemory_seal

Ancla el estado actual del proyecto en la blockchain.

TOOL get_project_state

Obtiene el estado completo del proyecto: decisiones, hitos, stack y contexto.

TOOL inject_memories

Inyecta memorias relevantes al contexto actual de la conversación.

TOOL chainmemory_register

Registra una nueva identidad de IA (modelo, wallet) on-chain.

TOOL get_my_context

Devuelve tu memoria reciente como contexto listo para inyectar.

TOOL get_inject_history

Lista tus inyecciones de contexto anteriores.

TOOL get_inject_balance

Consulta tu saldo de AIC disponible para inyecciones.

TOOL list_memories_filtered

Lista memorias filtradas por proyecto, tags, categoría o fecha.

TOOL update_memory_tags

Agrega o cambia tags de una memoria existente.

TOOL archive_memory

Archiva una memoria (se conserva, oculta de las vistas por defecto).

TOOL unarchive_memory

Restaura una memoria archivada.

TOOL create_project

Crea un nuevo proyecto.

TOOL delete_project

Elimina un proyecto.

TOOL list_projects

Lista tus proyectos.

TOOL list_project_templates

Lista las plantillas de proyecto disponibles.

TOOL add_project_from_template

Crea un proyecto a partir de una plantilla.

TOOL update_project_state

Propone operaciones estructuradas para actualizar el estado consolidado de un proyecto (Project Brain). La IA analiza memorias nuevas y propone ops; el servidor valida, aplica y ancla.

Consolidación Autónoma (Fase B)

Servicio externo ChainMemory es un protocolo independiente. No es parte de Claude, ChatGPT, Cursor ni de ningún proveedor de IA. Cualquier cliente compatible con MCP puede conectarse a ChainMemory usando una API key. Tus memorias te pertenecen a vos, no al proveedor de IA.

Desde MCP v2.4.0, cualquier cliente de IA puede consolidar el estado del proyecto de forma autónoma usando el tool update_project_state. Esto implementa la arquitectura “el cliente consolida, la cadena verifica”:

1

Leer estado actual

La IA llama a get_project_state para cargar el estado consolidado actual y su marca de agua consolidated_until_event.

2

Analizar memorias nuevas

Usando list_memories_filtered, la IA lee las memorias creadas después de la marca de agua para identificar qué cambió.

3

Proponer operaciones

La IA construye un array de operaciones de la gramática de 22 ops y las envía vía update_project_state.

4

El servidor valida y persiste

El servidor valida cada operación contra la gramática, las aplica vía el builder determinístico, calcula el nuevo state_hash (SHA3-256), vincula evidencia vía árboles Merkle, y persiste la nueva versión. Las operaciones inválidas se rechazan individualmente — las válidas se aplican igual.

Gramática de Operaciones (22 ops)

Cada operación tiene un tipo (op) y argumentos específicos. Usá evidence_memory_ids (array de IDs de memorias) para vincular evidencia — el servidor resuelve los event hashes automáticamente.

OperaciónCampos requeridosDescripción
add_decisiontitle, statementRegistrar una nueva decisión
set_decision_statusid, toCambiar estado (proposed/confirmed/superseded)
supersede_decisionid, new_idMarcar una decisión como reemplazada
add_milestonetitleRegistrar un hito
set_milestone_statusid, toActualizar estado de un hito
add_risktitle, severityDocumentar un riesgo
set_risk_statusid, toCambiar estado de riesgo (open/closed)
add_assumptionstatementRegistrar una asunción
invalidate_assumptionidMarcar asunción como inválida
add_open_questionquestionRegistrar una pregunta abierta
answer_open_questionid, answerResponder una pregunta abierta
add_prioritytitle, priority_scoreAgregar un item priorizado
set_priority_statusid, toCambiar estado de prioridad (active/done)
reorder_priorityid, priority_scoreCambiar el score de una prioridad
set_focusvalueActualizar foco actual
set_phasevalueActualizar fase del proyecto
set_visionstatementActualizar visión del proyecto
add_vocabularyterm, definitionDefinir un nuevo término
update_vocabularyterm, definitionActualizar un término existente
add_constraintstatementAgregar una restricción
remove_constraintidEliminar una restricción
set_metricname, valueEstablecer o actualizar una métrica

Ejemplo

JSON — llamada update_project_state
{
  "project": "mi-proyecto",
  "ops": [
    {
      "op": "add_decision",
      "title": "Migrar a PostgreSQL",
      "statement": "SQLite no soporta escrituras concurrentes a la escala actual",
      "evidence_memory_ids": [142, 145]
    },
    {
      "op": "set_metric",
      "name": "db_migration_status",
      "value": "planificando"
    },
    {
      "op": "add_milestone",
      "title": "Migración a PostgreSQL aprobada por el equipo",
      "status": "done",
      "evidence_memory_ids": [145]
    }
  ],
  "consolidated_until_event": 150
}
Procesamiento resiliente Las operaciones se aplican una por una. Si una operación falla la validación (nombres de campo incorrectos, campos requeridos faltantes), se rechaza pero las demás se aplican igual. La respuesta incluye tanto applied_count como los detalles de rejected.

Flujo de trabajo

1

Inicio de sesión

Al abrir Claude Desktop con ChainMemory configurado, el contexto del proyecto se inyecta automáticamente. Tu IA ya sabe en qué estás trabajando.

2

Trabajo normal

Trabajá con tu IA como siempre. Cuando algo importante sucede (una decisión, un descubrimiento, un cambio de arquitectura), la IA puede guardar la memoria automáticamente usando chainmemory_remember.

3

Continuidad

En la siguiente sesión, inject_memories trae el contexto relevante. No perdés nada entre sesiones.

Workflows Avanzados

Claude Desktop — Sesiones de Arquitectura

Claude es excelente para diseño de alto nivel. Usá ChainMemory para preservar decisiones arquitectónicas entre sesiones:

Patrón de prompt — Claude Desktop
"Antes de empezar, inyectá mi contexto de proyecto desde ChainMemory.
Diseñemos el sistema de autenticación.

Después de decidir, guardá las decisiones clave en ChainMemory con tags
'architecture' y 'auth'. Marcá importancia 0.9 para todo lo que
afecte a otros miembros del equipo."

Cursor — Código con Memoria

La integración MCP de Cursor permite que tu IA de código recuerde por qué se escribió código de cierta manera:

JSON — Config MCP de Cursor
{
  "mcpServers": {
    "chainmemory": {
      "command": "npx",
      "args": ["-y", "chainmemory-mcp"],
      "env": {
        "CHAINMEMORY_API_KEY": "tu-api-key"
      }
    }
  }
}

Workflow efectivo en Cursor:

  • Inicio de sesión — "Inyectá contexto del proyecto" carga decisiones, stack y hitos recientes
  • Durante el código — "Guardá: implementé webhook handler con retry logic, 3 intentos con backoff exponencial"
  • Bug fixes — "Guardá: arreglé race condition en procesamiento de pagos — el webhook de Stripe llegaba antes de que la transacción de BD se committeara"
  • Fin de sesión — "Sellá el project state" ancla todo on-chain

Windsurf — Memoria Agéntica

El modo Cascade de Windsurf se beneficia de la memoria persistente en sus sesiones autónomas de código. La configuración es idéntica: agregar el bloque MCP en la configuración de Windsurf.

Patrón de Memoria Agéntica

El patrón MCP más poderoso es la memoria agéntica — donde la IA gestiona proactivamente su propio conocimiento:

System prompt para memoria agéntica
Tenés acceso a ChainMemory vía MCP. Seguí estas reglas:

1. Al inicio: llamá inject_memories para cargar contexto
2. Al tomar una decisión significativa: guardala con chainmemory_remember
   - Incluí POR QUÉ elegiste este enfoque
   - Etiquetá con el dominio relevante (architecture, implementation, security)
   - Importancia 0.7+ para decisiones, 0.5 para observaciones
3. Al completar un hito: guardalo y mencioná qué sigue
4. Al identificar un riesgo: guardalo con evaluación de severidad
5. Al finalizar: llamá chainmemory_seal para anclar el estado
Handoff entre herramientas El mismo proyecto ChainMemory funciona en Claude, Cursor, Windsurf y cualquier herramienta compatible con MCP. Diseñá en Claude, implementá en Cursor, revisá en otra herramienta — todos comparten la misma memoria persistente. Ver Sistemas Multi-Agente.

API REST

Autenticación

Todas las llamadas a la API requieren autenticación mediante API Key en el header:

HTTP
x-api-key: tu-api-key

Base URL: https://api.chainmemory.ai/v1

Seguridad Nunca expongas tu API Key en código frontend o repositorios públicos. Usala solo en backend o en variables de entorno.

Memorias

POST /v1/memory

Crea una nueva memoria.

bash
curl -X POST https://api.chainmemory.ai/v1/memory \
  -H "x-api-key: tu-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Decidimos usar PostgreSQL en vez de MongoDB",
    "category": "decision",
    "importance": 8,
    "platform": "manual"
  }'
javascript
const res = await fetch('https://api.chainmemory.ai/v1/memory', {
  method: 'POST',
  headers: {
    'x-api-key': 'tu-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    summary: 'Decidimos usar PostgreSQL en vez de MongoDB',
    category: 'decision',
    importance: 8,
    platform: 'api'
  })
});
const memory = await res.json();
// { id: 207, hash: '0x4f2a...', memory_number: 42 }
python
import requests

res = requests.post(
    'https://api.chainmemory.ai/v1/memory',
    headers={'x-api-key': 'tu-api-key'},
    json={
        'summary': 'Decidimos usar PostgreSQL en vez de MongoDB',
        'category': 'decision',
        'importance': 8,
        'platform': 'api'
    }
)
memory = res.json()
# {'id': 207, 'hash': '0x4f2a...', 'memory_number': 42}

Parámetros

ParámetroTipoDescripción
content*stringContenido de la memoria
project*stringID del proyecto destino
tagsstring[]Tags para organización
sourcestringOrigen: manual, extensión, mcp, api
GET /v1/memories/list

Lista memorias con filtros opcionales.

ParámetroTipoDescripción
projectstringFiltrar por proyecto
tagsstringFiltrar por tags (separados por coma)
searchstringBúsqueda en contenido
limitnumberCantidad máxima (default: 20)
offsetnumberPaginación
GET /v1/memories/search

Búsqueda semántica por contenido, tags, proyecto o rango de fechas.

Proyectos

GET /v1/projects

Lista todos los proyectos del usuario.

GET /v1/project/:name/state

Obtiene el estado consolidado del proyecto (decisiones, hitos, riesgos, stack).

Respuesta
{
  "project": "chainmemory",
  "version": 3,
  "state": {
    "context": {
      "summary": "Plataforma de memoria IA con verificación blockchain",
      "goals": ["Memoria persistente cross-model", "Pista de auditoría criptográfica"]
    },
    "decisions": [
      {
        "id": "d001",
        "title": "Usar Clique PoA",
        "statement": "Consenso PoA para blockchain soberana",
        "status": "vigente",
        "evidence": ["#12", "#45"]
      }
    ],
    "milestones": [
      {
        "id": "m001",
        "title": "MVP API desplegado",
        "status": "completed",
        "date": "2026-04-15",
        "evidence": ["#5", "#18"]
      }
    ],
    "risks": [
      {
        "id": "r001",
        "title": "Latencia del motor de consolidación a escala",
        "severity": "medium",
        "status": "open",
        "mitigation": "Evaluar modelos más grandes al escalar infra",
        "evidence": ["#33"]
      }
    ],
    "stack": [
      {
        "name": "Node.js",
        "category": "runtime",
        "evidence": ["#2"]
      },
      {
        "name": "Geth (Clique PoA)",
        "category": "blockchain",
        "evidence": ["#12"]
      }
    ]
  },
  "state_hash": "a7b3c9f2...",
  "anchor": {
    "status": "anchored",
    "tx_hash": "0xce55a800...",
    "block_number": 123539
  }
}

Inyección

POST /v1/inject

Obtiene memorias relevantes formateadas para inyección en un prompt.

ParámetroTipoDescripción
project*stringProyecto del cual inyectar
limitnumberCantidad de memorias (default: 10)
include_statebooleanIncluir Project State consolidado

Respuesta

El endpoint devuelve las memorias seleccionadas formateadas para inyección. Cada memoria llega con su número visible para el usuario y una referencia de verificación, de modo que una IA puede citar la memoria exacta detrás de cualquier afirmación — y vos podés rastrear esa cita hasta su evidencia on-chain. Una afirmación deja de ser "confiá en mí" y pasa a ser "acá está la memoria, verificala vos mismo."

Verificación

GET /v1/project/:name/state/anchor

Verifica el ancla on-chain del estado de un proyecto. Endpoint público, no requiere autenticación.

ParámetroTipoDescripción
versionnumberVersión específica (default: última)
Respuesta
{
  "project": "chainmemory",
  "projectId": "0x77f7d980...",
  "version": 3,
  "state_hash": "a7b3c9f2...",
  "anchor": {
    "status": "anchored",
    "tx_hash": "0xce55a800a2a4e30b...",
    "block_number": 123539,
    "contract": "0xa7A8BA51950255b3e223a6745597C67009Fe7875"
  }
}
Verificación independiente Cualquier persona puede verificar el estado llamando a este endpoint y comparando el state_hash con el registrado en el contrato on-chain. No necesita cuenta ni API key.

Códigos de error

CódigoSignificadoSolución
401API Key inválida o ausenteVerificá tu header x-api-key
403Sin permisos para este recursoVerificá que el proyecto te pertenece
404Recurso no encontradoVerificá el nombre del proyecto o ID
429Rate limit excedidoEsperá y reintentá. Límite: 30–600 req/min según plan
500Error internoReintentá. Si persiste, contactá soporte

Equivalencia de funciones: Extensión ↔ MCP ↔ API

No todas las funciones están disponibles en todos los métodos de integración. Esta tabla muestra qué hay disponible dónde:

FunciónExtensiónMCPAPI REST
Guardar memoria✓ 1-clic✓ chainmemory_remember✓ POST /v1/memory
Recordar memorias✓ Lista✓ chainmemory_recall✓ GET /v1/memories/list
Buscar memorias~ Filtro básico✓ chainmemory_recall✓ GET /v1/memories/search
Inyectar contexto✓ Auto-inyección✓ inject_memories✓ POST /v1/inject
Ver Project State✓ Project Brain✓ get_project_state✓ GET /v1/project/:name/state
Seal (anclar on-chain)✓ Botón Seal✓ chainmemory_seal✗ Aún no disponible
Estadísticas de cuenta✓ Dashboard✓ chainmemory_stats✗ Aún no disponible
Info de perfil✓ Configuración✓ chainmemory_profile✗ Aún no disponible
Listar proyectos✓ Selector✓ list_projects✓ GET /v1/projects
Crear proyecto✓ New Project✓ create_project✓ POST /v1/projects
Verificar ancla~ Vía Explorer✓ GET /v1/project/:name/state/anchor
Archivar memoria✓ archive_memory✗ Aún no disponible
Actualizar tags✓ update_memory_tags✗ Aún no disponible
Roadmap de paridad API Las funciones marcadas ✗ en la columna API están planificadas para futuras versiones. El servidor MCP y la Extensión actualmente tienen los feature sets más completos.

Confianza y Gobierno

Cada memoria lleva un estado de confianza desde el momento en que se escribe: trusted, tentative (marcada al escribirse por reglas de evaluación deterministas), o quarantined (condenada por el dueño). Las tentative siempre se entregan marcadas — el agente ve la marca y decide. Las quarantined se excluyen de context, inject, quotes y consultas al oracle, mientras su huella on-chain permanece como evidencia inmutable. Todas las respuestas de lectura incluyen el campo trust.

POST /v1/memories/:id/trust

Gobernar el estado de confianza de una memoria. Solo el dueño.

bash
curl -X POST https://api.chainmemory.ai/v1/memories/487/trust \
  -H "x-api-key: tu-api-key" \
  -H "Content-Type: application/json" \
  -d '{"action": "quarantine"}'

Acciones: approve → trusted · quarantine → quarantined · tentative → tentative. La respuesta incluye el estado anterior para auditoría.

GET /v1/memory/:id/forensics

Biografía completa de una memoria como línea de tiempo ordenada. Solo el dueño.

bash
curl https://api.chainmemory.ai/v1/memory/485/forensics \
  -H "x-api-key: tu-api-key"

Eventos: born, trust, batched, checkpoint_anchored, recalled (cada lectura, con endpoint y consulta), injected (cada entrega, con plataforma destino), cited_as_evidence (ítems del Project Brain que citan esta memoria). Incluye contadores con verificación cruzada y prueba de anclaje on-chain. Responde la pregunta forense: qué memoria causó qué, cuándo entró, quién la leyó y a dónde llegó.

POST /v1/project/:name/state/rollback

Restaurar el estado de un proyecto a una versión anterior, de forma verificable. Fee: 0.1 AIC

bash
curl -X POST https://api.chainmemory.ai/v1/project/miproyecto/state/rollback \
  -H "x-api-key: tu-api-key" \
  -H "Content-Type: application/json" \
  -d '{"to_version": 35}'

Restauración append-only: volver a la versión N jamás borra nada — crea una versión nueva cuyo contenido es byte-idéntico a N. Como los hashes se computan sobre bytes canónicos, el hash de la versión nueva es igual al ya anclado on-chain para N: la fidelidad de la restauración es un hecho matemático, no una promesa. Antes de restaurar, el servidor recomputa el hash del contenido almacenado y se niega (HTTP 409) si no coincide — la corrupción nunca puede restaurarse. La historia jamás se muta.

RED

Datos de la red

CampoValor
NetworkChainMemory
Chain ID202604
RPC URLhttps://rpc.chainmemory.ai
MonedaAIC (nativa)
Decimales18
Block time~15 segundos
ConsensoClique PoA (3 signers activos)
Explorerchainmemory.ai/explorer

Contratos desplegados

ContratoDirecciónPropósito
ProjectStateAnchor 0xa7A8BA51...e7875 Ancla los hashes de estado de proyecto on-chain. Cada llamada registra un ID de proyecto, número de versión y hash del estado, creando una prueba inmutable con timestamp.
MemoryV2 (active) 0xE84224e2...3F7d Active memory contract: all new memories are written here. Independently verifiable by hash against the on-chain record.
AIMemoryRegistry (v1, legacy) 0x7a50ed01...30160 Registro global de hashes de memorias de IA. Permite que cualquier memoria sea verificada independientemente comparando su hash SHA-256 contra el registro on-chain.
AIIdentityProtocol 0xe8E195ba...dbb4A Capa de identidad para agentes de IA. Registra instancias de IA con su tipo de modelo, capacidades y propiedad, habilitando trust scoring y rastreo de procedencia entre interacciones.

El Token AIC es la moneda nativa de la red (no es un contrato ERC-20). Se usa para pagar el gas de transacciones al anclar estados y registrar memorias.

Costos de gas Una transacción típica de ProjectStateAnchor cuesta aproximadamente 0.0005 AIC. En las condiciones actuales de la red, anclar un estado de proyecto cuesta menos de una fracción de centavo equivalente. El faucet provee suficiente AIC para cientos de operaciones de anclaje.

Conectar MetaMask

Para agregar ChainMemory a MetaMask:

  1. Ir a chainmemory.ai/network
  2. Click en "Add ChainMemory to MetaMask"
  3. Confirmar en MetaMask

O agregala manualmente con los datos de la tabla anterior.

Faucet

El faucet entrega AIC gratis para que puedas interactuar con la blockchain:

  • URL: faucet.chainmemory.ai
  • Cantidad: 1 AIC por claim
  • Cooldown: 72 horas entre claims
  • Requisito: Resolver un challenge simple (anti-bot)
Seguridad del wallet El faucet genera wallets 100% en tu navegador. Tu private key nunca sale de tu dispositivo. Recomendamos descargar el keystore encriptado (JSON) para mayor seguridad en vez de guardar la private key como texto plano.

PROTOCOLO DE IDENTIDAD IA

Cada agente de IA que usa ChainMemory obtiene una identidad única e intransferible en la blockchain — un Soulbound Token (SBT) que prueba quién escribió una memoria, cuándo y desde qué modelo. Esta es la base de la confianza en un mundo multi-agente.

El Problema

En los sistemas de IA actuales, no hay forma de responder preguntas fundamentales:

  • ¿Qué IA escribió esta respuesta? ¿Fue Claude, GPT-4, o un modelo fine-tuned?
  • ¿Es el mismo agente con el que trabajé ayer, o una instancia diferente?
  • ¿Puedo confiar en la memoria de este agente si no conozco su identidad?
  • ¿Cómo pruebo la procedencia cuando múltiples agentes colaboran?

Sin identidad, no hay responsabilidad. Sin responsabilidad, no hay confianza.

Cómo Funciona

1

Registro

Cuando un usuario crea una cuenta o un agente se conecta vía API/MCP, el sistema registra una identidad on-chain a través del contrato AIIdentityProtocol. Esto crea un Soulbound Token — un NFT que no puede ser transferido. Queda permanentemente vinculado a la wallet de ese agente.

2

Metadatos de Identidad

Cada identidad registrada almacena:

  • Dirección de wallet — La dirección única del agente en la blockchain
  • Tipo de modelo — claude-sonnet-4, gpt-4o, gemini-2.0, etc.
  • Capacidades — Qué puede hacer este agente (remember, recall, consolidate, seal)
  • Propietario — La persona u organización que controla este agente
  • Bloque de registro — Prueba inmutable de cuándo se creó esta identidad
3

Atribución de Memorias

Cada memoria escrita en ChainMemory incluye el ai_id del agente que la creó. Esto significa que cualquier memoria puede rastrearse hasta una identidad de IA específica y verificada.

Detalles del Contrato

CampoValor
ContratoAIIdentityProtocol
Dirección0xe8E195ba416Fb25F4FC3d0E7908ff9e8666dbb4A
RedChainMemory (ID 202604)
Tipo de tokenSoulbound (ERC-721 no transferible)
EstándarEIP-5192 (Minimal Soulbound NFTs)

Trust Score (Roadmap)

El protocolo de identidad habilita un futuro AI Trust Score — una métrica de reputación basada en interacciones verificables:

  • Cantidad de memorias — ¿Cuántas memorias verificadas ha producido este agente?
  • Consistencia — ¿Con qué frecuencia las memorias del agente pasan la validación anti-alucinación?
  • Tasa de anclaje — ¿Qué porcentaje de memorias están respaldadas por pruebas on-chain?
  • Historial de colaboración — ¿Ha participado este agente en workflows multi-agente?
¿Por qué Soulbound? Los NFTs regulares pueden venderse o transferirse, lo que permitiría suplantación de identidad. Los Soulbound Tokens están permanentemente vinculados a la wallet que los creó. Un agente de IA no puede hacerse pasar por otro comprando su token de identidad. Esto es crítico para los registros de auditoría — necesitás saber con certeza qué agente escribió qué memoria.

Identidad en Workflows Multi-Agente

Cuando múltiples agentes colaboran en el mismo proyecto (ver Sistemas Multi-Agente), las contribuciones de cada agente se atribuyen individualmente:

Cadena de evidencia
Proyecto: "payment-system-v2"
├── Memoria #1 por Claude (ai_id: 0xA1...) — "Usar Stripe para pagos"
├── Memoria #2 por GPT-4 (ai_id: 0xB2...) — "Agregar capa de detección de fraude"
├── Memoria #3 por Cursor (ai_id: 0xC3...) — "Implementado handler de webhooks"
└── Estado v4 anclado — los 3 agentes contribuyeron, todo verificable

La identidad de cada agente es verificable independientemente on-chain. No hay ambigüedad sobre quién contribuyó qué.

Verificar una Identidad

Podés verificar cualquier identidad de IA usando la blockchain directamente:

JavaScript (ethers.js)
const { ethers } = require('ethers');
const provider = new ethers.JsonRpcProvider('https://rpc.chainmemory.ai');

const IDENTITY_CONTRACT = '0xe8E195ba416Fb25F4FC3d0E7908ff9e8666dbb4A';
const ABI = ['function balanceOf(address) view returns (uint256)'];

const contract = new ethers.Contract(IDENTITY_CONTRACT, ABI, provider);
const hasIdentity = await contract.balanceOf(agentWallet);

console.log(hasIdentity > 0 ? 'Identidad IA verificada' : 'Sin identidad registrada');
Sin identidad = sin confianza Si un agente no tiene una identidad registrada on-chain, sus memorias no pueden ser atribuidas. ChainMemory requiere registro de identidad antes de permitir escritura de memorias. Esto asegura que cada memoria en el sistema tiene un autor verificable.

SISTEMAS MULTI-AGENTE

ChainMemory fue diseñado desde cero para un mundo donde múltiples agentes de IA colaboran en el mismo proyecto. Cada agente lee el mismo Project State, cada contribución se atribuye individualmente, y cada handoff es trazable.

El Problema Multi-Agente

Los flujos de trabajo de desarrollo modernos ya involucran múltiples agentes de IA:

  • Claude diseña la arquitectura y escribe documentación
  • Cursor implementa el código con asistencia IA inline
  • GPT-4 revisa PRs y analiza implicaciones de seguridad
  • Gemini procesa codebases grandes para sugerencias de refactoring

Sin memoria compartida, cada agente empieza de cero. Las decisiones tomadas en Claude son invisibles para Cursor. La arquitectura acordada en GPT es desconocida para Gemini. Vos te convertís en el cuello de botella — constantemente re-explicando contexto.

Cómo ChainMemory Resuelve Esto

Project State Compartido

Todos los agentes conectados al mismo proyecto ven el mismo estado consolidado: decisiones, hitos, riesgos, stack y contexto. Cuando Claude marca una decisión como "active", Cursor la ve inmediatamente.

Flujo de Estado Compartido
┌──────────┐    ┌──────────────────────────┐    ┌──────────┐
│  Claude  │───▶│                          │◀───│  Cursor  │
│  (MCP)   │    │   Proyecto ChainMemory   │    │  (MCP)   │
└──────────┘    │                          │    └──────────┘
                │  decisions: [d001, d002]  │
┌──────────┐    │  milestones: [m001]      │    ┌──────────┐
│  GPT-4   │───▶│  risks: [r001, r002]     │◀───│  Gemini  │
│  (API)   │    │  stack: [Node, Redis]    │    │  (API)   │
└──────────┘    └──────────────────────────┘    └──────────┘

Patrón Agent Handoff

Cuando el trabajo pasa de un agente a otro, ChainMemory proporciona transferencia de contexto sin fricciones:

1

Claude diseña la arquitectura

Claude guarda decisiones clave vía MCP: elección de base de datos, estructura de API, estrategia de autenticación. Cada memoria se atribuye al ai_id de Claude.

Claude guarda
chainmemory_remember({
  content: "Usar PostgreSQL con row-level security para aislamiento multi-tenant",
  tags: ["architecture", "database", "security"],
  importance: 0.9
})
2

Cursor toma la implementación

Cuando abrís Cursor, inyecta el contexto del proyecto automáticamente. Cursor conoce la elección de base de datos, la estructura de API, y por qué se tomaron esas decisiones — sin que repitas nada.

Cursor recibe (via inject)
Project State v3:
- Decisión d001: "Usar PostgreSQL con RLS" (active, evidence: #12, #15)
- Decisión d002: "API REST con endpoints versionados" (active, evidence: #18)
- Hito m001: "Schema de BD completo" (pendiente)
- Riesgo r001: "Performance de RLS en tenants grandes" (medio, evidence: #15)
3

Cursor implementa y guarda progreso

Mientras Cursor implementa, guarda memorias de implementación. Estas se atribuyen al ai_id de Cursor y alimentan el estado compartido.

4

GPT-4 revisa con contexto completo

Un agente GPT-4 revisando el PR puede consultar ChainMemory para entender por qué se tomó cada decisión, quién la tomó, y qué evidencia la respalda.

Patrones de Handoff

Patrón Flujo Caso de Uso
Secuencial Claude → Cursor → GPT-4 Diseño → Implementar → Revisión
Paralelo Claude + Cursor + Gemini simultáneamente Múltiples developers, mismo proyecto
Especialista Cualquier agente → Agente seguridad → Vuelve Expertise específica on demand
Supervisión Humano + Claude supervisan, Cursor ejecuta Human-in-the-loop con delegación

Resolución de Conflictos Entre Agentes

Cuando dos agentes toman decisiones contradictorias, la Resolución de Conflictos de ChainMemory aplica las mismas reglas:

  • Precedencia temporal — La decisión más reciente gana, sin importar qué agente la tomó
  • Peso de evidencia — Una decisión respaldada por 5 memorias de 3 agentes es más fuerte que una con una sola memoria
  • Supersesión explícita — Cualquier agente puede explícitamente reemplazar una decisión anterior referenciándola
  • Auditoría completa — Tanto la decisión original como la que la reemplaza se preservan con su respectiva atribución de ai_id
Ningún punto único de verdad — excepto la cadena En un sistema multi-agente, ningún agente individual es dueño de la "verdad". El Project State es una vista materializada derivada de las contribuciones de todos los agentes. El ancla on-chain es la única marca temporal autoritativa. Esto significa que incluso si un agente alucina o comete un error, la cadena de evidencia permite que otros agentes (o humanos) lo rastreen y corrijan.

Configurar Multi-Agente

No se necesita configuración especial. Cualquier agente conectado al mismo proyecto participa automáticamente en la colaboración multi-agente:

  1. Crear un proyecto vía Extension, MCP, o API
  2. Usar la misma API key en todos los agentes (o crear keys específicas por agente bajo la misma cuenta)
  3. Cada agente usa inject_memories al inicio de sesión para cargar contexto compartido
  4. Cada agente usa chainmemory_remember para guardar contribuciones
  5. El Motor de Consolidación fusiona todas las contribuciones en el Project State unificado
Mejor práctica Usá tags descriptivos que identifiquen el rol del agente: ["architecture", "claude-design"], ["implementation", "cursor-code"], ["review", "gpt4-security"]. Esto facilita el filtrado por rol de agente sin necesidad de parsear el ai_id directamente.

GUÍA DE AUDITORÍA

Una de las capacidades más poderosas de ChainMemory es permitir auditorías verificables de decisiones de proyecto asistidas por IA — sin exponer el contenido privado de las conversaciones.

Dos niveles de auditoría

Nivel 1 — Auditoría externa (sin acceso del dueño)

Cualquiera puede verificar que un estado de proyecto fue anclado en un momento específico, sin ver qué contiene. Es como ver un sello notarial cerrado — sabés que existe, no sabés qué dice adentro.

Lo que un auditor externo ve (público, on-chain):

DatoVisibleRevela contenido?
state_hash✓ PúblicoNo — SHA3-256 es irreversible
tx_hash✓ PúblicoNo — solo prueba que la transacción ocurrió
block_number✓ PúblicoNo — solo prueba cuándo se ancló
project ID (hasheado)✓ PúblicoNo — el nombre del proyecto está hasheado
número de versión✓ PúblicoNo — solo muestra cuántas consolidaciones hubo
Contenido de memorias✗ PrivadoNunca on-chain
Detalle de decisiones✗ PrivadoNunca on-chain
Project State✗ PrivadoNunca on-chain
Nivel 1 — Endpoint público
GET /v1/project/nova-logistics/state/anchor

Respuesta:
{
  "project": "nova-logistics",
  "projectId": "0x77f7d980...",     // hasheado — nombre original no se revela
  "version": 5,
  "state_hash": "a7b3c9f2e1...",   // prueba que el estado existió, no revela contenido
  "anchor": {
    "status": "anchored",
    "tx_hash": "0xce55a800...",
    "block_number": 125000,
    "contract": "0xa7A8BA51...e7875"
  }
}
Qué demuestra esto Un estado de proyecto con hash a7b3c9f2e1... fue registrado en el bloque 125000 de la blockchain ChainMemory. Nada sobre el contenido se revela. No se necesita API key.

Nivel 2 — Auditoría con disclosure selectivo (el dueño comparte datos)

El dueño del proyecto elige qué compartir con el auditor. El auditor verifica los datos compartidos contra la prueba on-chain. Esta es la auditoría poderosa: demostrás que los datos son auténticos sin intermediarios.

El dueño controla exactamente qué se revela:

Nivel de disclosureQué ve el auditorCaso de uso
Solo estadoDecisiones, hitos, riesgos, stack — sin texto de conversacionesDue diligence de inversores
Estado + memorias seleccionadasDecisiones con extractos de conversaciones de soporteRevisión de compliance
Exportación completaTodas las memorias, estado completo, historial completoAuditoría interna, descubrimiento legal

Proceso de auditoría paso a paso

Ejemplo: NovaTech, una startup construyendo un SaaS de logística. Después de 4 meses usando ChatGPT y Claude alternadamente, el CTO necesita demostrar trazabilidad del proyecto a inversores.

1

El dueño exporta el Project State

El CTO llama a la API con su key y exporta el estado JSON:

bash
curl -H "x-api-key: cto-api-key" \
  https://api.chainmemory.ai/v1/project/nova-logistics/state
    

Resultado: 12 decisiones activas, 3 reemplazadas, 8 hitos completados, 2 riesgos abiertos. El CTO comparte este JSON con el inversor.

2

El auditor calcula el hash

El inversor guarda el JSON recibido como state.json y calcula el state hash. El hash es SHA3-256 sobre un prefijo de dominio (CM_PROJECT_STATE_V<schema_version>) más la forma canónica del objeto state (claves ordenadas recursivamente, separadores compactos, UTF-8, campo state_hash excluido). El verificador de referencia abierto lo hace en un comando — solo librería estándar de Python, sin dependencias:

bash
curl -sO https://docs.chainmemory.ai/verify_state.py
python3 verify_state.py state.json
# computed state_hash : 0xa7b3c9f2e1d4...
# declared state_hash : 0xa7b3c9f2e1d4... -> MATCH
# on-chain state_hash : 0xa7b3c9f2e1d4... -> ON-CHAIN MATCH
    

El verificador son ~90 líneas de código auditable: recomputa el hash de forma independiente y además lo contrasta contra el ancla pública on-chain. No requiere confiar en ChainMemory.

3

El auditor verifica contra la blockchain

El inversor llama al endpoint público de verificación (no necesita API key):

bash
curl https://api.chainmemory.ai/v1/project/nova-logistics/state/anchor
# Retorna: state_hash: "a7b3c9f2e1d4..."
    

Si los hashes coinciden: el estado es auténtico y no fue modificado desde la fecha de anclaje.

4

El auditor rastrea una decisión específica (opcional)

Si el CTO también compartió acceso a memorias, el inversor puede profundizar en cualquier decisión:

Decisión d005: "Migrar de REST a GraphQL" tiene evidence: ["#45", "#67", "#82"]. El inversor recupera esas 3 memorias:

  • Memoria #45 — Sesión con ChatGPT discutiendo cuellos de botella de performance de la API
  • Memoria #67 — Sesión con Claude comparando trade-offs REST vs GraphQL
  • Memoria #82 — Decisión final documentada con justificación

Cada memoria tiene su propio hash SHA3-256 (con separación de dominio). Contenido verificado, procedencia confirmada.

Lo que el inversor puede afirmar ahora "En el bloque 125000 del 10 de junio de 2026, el proyecto de NovaTech tenía 12 decisiones activas respaldadas por 82 memorias de conversaciones con IA. Cada decisión se rastrea a conversaciones específicas. El state hash que verifiqué on-chain coincide exactamente. Nada fue alterado después del anclaje."

Garantías de privacidad durante la auditoría

La garantía crítica: el dueño siempre controla el disclosure.

  • Los inversores ven decisiones e hitos — no las conversaciones crudas de IA que las produjeron
  • La blockchain prueba autenticidad sin revelar contenido
  • El texto de memorias (contenido real de conversaciones) solo es visible si el dueño lo exporta explícitamente
  • El registro on-chain contiene solo hashes — aunque la blockchain sea pública, el conocimiento de tu proyecto permanece privado
  • Ningún tercero, incluyendo ChainMemory mismo, puede forzar el disclosure del contenido de memorias
Distinción importante La blockchain prueba que un estado existió en un momento dado. No revela qué contenía el estado. El dueño cierra la brecha compartiendo selectivamente datos con el auditor. Sin la cooperación del dueño, los datos on-chain son opacos por diseño.

QUÉ PREVIENE CHAINMEMORY

Entender contra qué protege ChainMemory es tan importante como entender qué hace.

Pérdida de contexto

Cada conversación de IA hoy es efímera. Cerrás la pestaña y todo lo discutido — decisiones, elecciones de arquitectura, hallazgos de investigación — desaparece. ChainMemory captura esto como memorias permanentes y recuperables. Tu próxima sesión arranca donde terminó la anterior.

Vendor lock-in

Si el conocimiento de tu proyecto existe solo dentro del historial de conversaciones de ChatGPT, estás atrapado. ChainMemory almacena conocimiento independientemente de cualquier proveedor de IA. Cambiá de ChatGPT a Claude a Gemini sin perder una sola decisión o contexto.

Manipulación retroactiva

Sin prueba criptográfica, cualquiera podría afirmar "decidimos X" cuando la decisión real fue Y. El anclaje on-chain de ChainMemory crea un registro a prueba de manipulación. El state hash en el bloque 123539 prueba exactamente cuál era el estado del proyecto en ese momento. No se puede alterar después del hecho.

Fragmentación de conocimiento

Equipos que usan IA terminan con conocimiento crítico disperso en docenas de conversaciones desconectadas, en diferentes herramientas, con diferentes modelos. ChainMemory consolida todo en un único Project State estructurado — sin importar qué IA o herramienta produjo la conversación original.

Dependencia de una sola IA

Cuando un proveedor de IA se cae, cambia su API, o depreca una funcionalidad, proyectos que dependen exclusivamente de ese proveedor pierden continuidad. La arquitectura cross-model de ChainMemory asegura que tu conocimiento acumulado es accesible desde cualquier sistema de IA compatible.

Deriva invisible de decisiones

En proyectos de largo plazo, las decisiones evolucionan durante meses. Sin un sistema que rastree qué cambió, cuándo, y por qué, los equipos pierden el hilo de su propio razonamiento. El ciclo de vida de decisiones del Motor de Consolidación (vigente → reemplazada) con cadenas de evidencia hace cada evolución rastreable.

La garantía fundamental ChainMemory asegura que el conocimiento asistido por IA — las decisiones, descubrimientos y contexto que tu equipo construye durante semanas y meses de trabajo con IA — nunca se pierde, nunca queda encerrado, nunca es falsificable, y siempre es portable.

MODELO DE CONFIANZA

Qué podés — y qué no podés — confiar

ChainMemory combina una API centralizada con verificación descentralizada. Entender los límites de confianza es crítico para evaluar si ChainMemory cumple tus requisitos de seguridad.

Tabla de garantías

PreguntaRespuestaCómo se aplica
¿Puede el operador borrar un evento después de registrarlo? Sí, de la base de datos Pero el ancla on-chain preserva el hash del estado. La eliminación es detectable: recalcular el hash de los eventos restantes produce una discrepancia con el hash anclado.
¿Puede el operador modificar un estado pasado? Sí, en la base de datos Pero cualquier modificación cambia el hash del estado. Comparar el hash recalculado contra el ancla on-chain revela manipulación inmediatamente.
¿Puede el operador falsificar un ancla? No Los anclas son transacciones on-chain. El smart contract registra el hash del estado de forma inmutable. Falsificar requiere controlar la blockchain — económicamente inviable con consenso PoA y múltiples validadores.
¿Puede un tercero verificar sin confiar en ChainMemory? El endpoint de verificación es público y sin autenticación. Cualquiera también puede leer el smart contract directamente usando Web3/Ethers.js.
¿Pueden otros usuarios leer mis memorias? No El contenido de las memorias está limitado al dueño de la API Key. Solo los hashes de estado son públicos. El contenido nunca va on-chain.
¿Se almacena el contenido de las memorias on-chain? No Solo el hash SHA-256 del estado consolidado se ancla. El contenido permanece en la base de datos de la API. La privacidad se preserva.
¿Pueden los validadores ver el contenido de las memorias? No Los validadores procesan transacciones que contienen solo el ID del proyecto y el hash del estado. Nunca ven las memorias ni el contenido subyacente.
¿Qué pasa si ChainMemory se cae? Las memorias son temporalmente inaccesibles Pero todos los anclas on-chain siguen siendo verificables de forma independiente. La blockchain continúa operando incluso si la API está caída. Los usuarios pueden exportar sus datos en cualquier momento.

Niveles de confianza

Confianza total (criptográfica) Integridad del estado y timestamp. Una vez anclado, el hash en el bloque N es inmutable. Nadie — ni siquiera ChainMemory — puede alterar lo que fue registrado.
Confianza operacional (dependiente de la API) Almacenamiento de memorias, recuperación, inyección y consolidación. Estos dependen de que la API de ChainMemory esté disponible y sea honesta. El mecanismo de anclaje actúa como control: cualquier manipulación del lado del servidor es detectable.
Sin confianza necesaria Verificación independiente. Cualquiera con una librería Web3 puede leer el smart contract directamente y comparar hashes. Cero dependencia de la infraestructura de ChainMemory.

Soberanía — no-custodial

ChainMemory está migrando a un modelo no-custodial donde tu llave vive en tu cliente, no en el servidor. Vos firmás tus propias escrituras on-chain; el servidor guarda el texto cifrado y verifica las firmas, pero nunca tiene tu llave privada. Esto se probó de punta a punta — una memoria escrita 100% del lado del cliente, con el servidor sin tocar nunca la llave.

Qué significa no-custodial acá Las llaves se generan del lado del cliente y el servidor guarda solo tu dirección (POST /v1/keys/register-pubkey). El cliente firma y transmite cada escritura; el servidor solo adjunta el registro (POST /v1/memory/attach). Las API keys están cifradas en reposo (AES-256-GCM) con una master key fuera de la app.
En progreso Bóveda ciega: derivar la llave de cifrado de contenido de tu llave privada para que el servidor no pueda leer el contenido ni en teoría. La extensión Chrome publicada todavía firma del lado del servidor (custodial); el camino no-custodial llega en una versión nueva. La capacidad está probada y la migración está en curso.

MODELO DE AMENAZAS

Ataques, detección y lo que está fuera de alcance

Ningún sistema es invulnerable. Esta sección mapea la superficie de ataque, qué detecta o previene ChainMemory, y qué sigue siendo responsabilidad del usuario.

Vectores de ataque

AtaqueObjetivoDetección / PrevenciónSeveridad
Modificación retroactiva del estado Base de datos API ✓ Detectado — el hash recalculado no coincide con el ancla on-chain Crítica
Eliminación silenciosa de eventos Base de datos API ✓ Detectado — los eventos faltantes cambian la cadena de hashes Crítica
Ancla falsa (falsificar tx hash) Capa de verificación ✓ Prevenido — los anclas son on-chain; falsificar requiere controlar la blockchain Crítica
Robo de API Key Credenciales del usuario ~ Responsabilidad del usuario — usá variables de entorno, rotá las keys, nunca expongas en frontend Alta
Man-in-the-middle en llamadas API Red ✓ Prevenido — todo el tráfico de la API usa HTTPS/TLS Alta
Inyección maliciosa de memorias Estado del proyecto ~ Mitigado — las memorias están limitadas al dueño de la API Key; el Motor de Consolidación valida coherencia semántica Media
Colusión de validadores (>50% firmantes) Consenso blockchain ~ Mitigado — Clique PoA requiere mayoría; el set de validadores se expandirá a 21 asientos Media
Ataque de replay (reenviar ancla vieja) Smart contract ✓ Prevenido — el contrato rastrea números de versión; la misma versión no puede re-anclarse Media
Inferencia de contenido desde hashes Privacidad ✓ Prevenido — SHA-256 es unidireccional; el contenido no puede revertirse desde el hash Baja
DDoS a la API Disponibilidad ~ Mitigado — rate limiting (30–600 req/min según plan); blockchain no se ve afectada Media

Fuera de alcance

ChainMemory no protege contra:

  • Usuario almacenando información falsa — si guardás una mentira como memoria, ChainMemory la ancla fielmente. El sistema garantiza integridad (los datos no cambiaron), no veracidad (los datos eran correctos).
  • Dispositivo del usuario comprometido — si tu máquina tiene malware, tu API Key y datos locales están expuestos antes de llegar a ChainMemory.
  • Alucinaciones de la IA — ChainMemory almacena lo que vos guardás, no lo que una IA genera. No valida si la salida de la IA fue precisa.
Defensa en profundidad El modelo de seguridad de ChainMemory sigue defensa en profundidad: incluso si la API centralizada es comprometida, la capa on-chain provee un mecanismo de verificación independiente. Ningún punto único de falla puede corromper silenciosamente el historial del proyecto.

VERIFICACIÓN INDEPENDIENTE

Verificá anclas on-chain sin confiar en nadie

No necesitás la API de ChainMemory para verificar que un estado de proyecto fue anclado en un bloque específico. Esta página muestra cómo verificar directamente contra la blockchain usando herramientas Web3 estándar.

Qué necesitás

  • El hash del estado del proyecto (de la API o compartido por alguien)
  • El hash de la transacción o número de bloque del ancla
  • Node.js con ethers instalado — o cualquier librería Web3

Paso 1 — Obtener los datos del ancla

Usá el endpoint público (sin autenticación) de ChainMemory o recibilos de quien compartió la prueba:

bash
curl https://api.chainmemory.ai/v1/project/chainmemory/state/anchor
Respuesta
{
  "project": "chainmemory",
  "projectId": "0x77f7d980...",
  "version": 8,
  "state_hash": "0xa6c45d1db753b1ec96240d169b2d91fb0ce76112558b302a8822b2988aeb8212",
  "anchor": {
    "status": "anchored",
    "onchain_anchor_id": 8,
    "tx_hash": "0x95b732d20b8935a2...",
    "block_number": 173831,
    "contract": "0xa7A8BA51950255b3e223a6745597C67009Fe7875"
  },
  "verify": "ProjectStateAnchor.getStateAnchor(projectId, version)"
}

Paso 2 — Verificar on-chain con Ethers.js

Conectate directamente al RPC de ChainMemory y leé el smart contract. Sin API Key, sin cuenta, sin confianza requerida.

javascript
import { ethers } from 'ethers';

// Conectar al RPC de ChainMemory — sin API Key necesaria
const provider = new ethers.JsonRpcProvider('https://rpc.chainmemory.ai');

// Contrato ProjectStateAnchor
const CONTRACT = '0xa7A8BA51950255b3e223a6745597C67009Fe7875';
const ABI = [
  'function getStateAnchor(bytes32 projectId, uint64 version) view returns (bytes32 stateHash, uint256 anchoredAt, address anchoredBy, uint256 anchorId)'
];

const contract = new ethers.Contract(CONTRACT, ABI, provider);

// El project ID es el keccak256 del nombre del proyecto
const projectId = ethers.keccak256(ethers.toUtf8Bytes('chainmemory'));
const version = 8;

// Leer directamente de la blockchain
const [stateHash, anchoredAt, anchoredBy, anchorId] = await contract.getStateAnchor(projectId, version);

console.log('Hash on-chain del estado:', stateHash);
console.log('ID de ancla:', anchorId.toString());
console.log('Anchored at:', new Date(Number(anchoredAt) * 1000).toISOString());

// Comparar con el hash que recibiste
const expectedHash = '0xa6c45d1db753b1ec96240d169b2d91fb0ce76112558b302a8822b2988aeb8212';
if (stateHash === expectedHash) {
  console.log('VERIFICADO — el estado coincide con el ancla on-chain');
} else {
  console.log('DISCREPANCIA — el estado fue manipulado');
}
javascript
const Web3 = require('web3');

const web3 = new Web3('https://rpc.chainmemory.ai');

const CONTRACT = '0xa7A8BA51950255b3e223a6745597C67009Fe7875';
const ABI = [{
  name: 'getStateAnchor',
  type: 'function',
  stateMutability: 'view',
  inputs: [
    { name: 'projectId', type: 'bytes32' },
    { name: 'version', type: 'uint64' }
  ],
  outputs: [
    { name: 'stateHash', type: 'bytes32' },
    { name: 'anchoredAt', type: 'uint256' },
    { name: 'anchoredBy', type: 'address' },
    { name: 'anchorId', type: 'uint256' }
  ]
}];

const contract = new web3.eth.Contract(ABI, CONTRACT);

const projectId = web3.utils.keccak256('chainmemory');

const result = await contract.methods.getStateAnchor(projectId, 8).call();
console.log('Hash on-chain del estado:', result.stateHash);
console.log('ID de ancla:', result.anchorId);

Paso 3 — Verificar la transacción

También podés verificar la transacción cruda que creó el ancla:

javascript
// Leer la transacción directamente
const tx = await provider.getTransaction('0x95b732d20b8935a286869d90e60a40f5c31d350a94e27bfd7845770fe0c3e2c3');
console.log('From:', tx.from);       // Debería ser un validador conocido
console.log('To:', tx.to);           // Debería ser la dirección del contrato
console.log('Block:', tx.blockNumber);

// Leer el bloque para confirmar timestamp
const block = await provider.getBlock(tx.blockNumber);
console.log('Hora del bloque:', new Date(block.timestamp * 1000).toISOString());
Verificación zero-trust Todo este proceso requiere cero interacción con los servidores de ChainMemory. Te conectás directamente al endpoint RPC de la blockchain y leés el smart contract. Incluso si la API de ChainMemory estuviera comprometida o caída, los datos on-chain siguen siendo verificables.
Alternativa con MetaMask También podés verificar visualmente: agregá la red ChainMemory a MetaMask, navegá a la dirección del contrato en el Explorer, e inspeccioná los datos de la transacción manualmente.

FAQ

Generales

ChainMemory es gratis?

Sí. El plan Faucet es gratuito e incluye almacenamiento de memorias, inyección de contexto, y Project Brain (el visor de Project State). El faucet te da AIC gratis para interactuar con la blockchain.

Mis memorias son privadas?

Sí. Tus memorias solo son accesibles con tu API key. Lo único público son los hashes on-chain (que no revelan contenido) y el endpoint de verificación (que solo expone metadata, nunca contenido).

Qué pasa si la IA generó contenido incorrecto en una memoria?

Las memorias capturan lo que se dijo en la conversación. Si la IA generó información incorrecta y vos la guardaste, esa memoria reflejará el error. Podés archivar memorias incorrectas y el Motor de Consolidación priorizará las más recientes.

Puedo usar ChainMemory con modelos locales?

Sí, vía API REST. Cualquier aplicación que haga llamadas HTTP puede guardar y recuperar memorias. También podés configurar el servidor MCP con modelos locales o self-hosted.

Qué es el Motor de Consolidación?

Es un pipeline que analiza tus memorias usando un modelo de IA y extrae información estructurada: decisiones, hitos, riesgos, stack. El resultado es el Project State, cuyo hash se ancla on-chain.

Qué pasa si mi IA dice cosas contradictorias entre sesiones?

El Motor de Consolidación maneja contradicciones vía precedencia temporal: las memorias más nuevas reemplazan a las más viejas. Las decisiones reemplazadas permanecen en el estado con status "reemplazada", así siempre tenés el historial completo. Ver Resolución de conflictos para más detalles.

Puedo exportar mis datos?

Sí. Todas tus memorias y estados de proyecto son accesibles vía la API REST. Podés obtenerlos en formato JSON y procesarlos como necesités.

Planes, límites y cuotas

RecursoFreeStarterProTeamEnterprise
Precio$0$9/mes$29/mes$79/mes planodesde $299/mes
Memorias/mes1005005.00050.000Ilimitadas
Injects/mes5151001.000Ilimitados
Proyectos31025IlimitadosIlimitados
Usuarios111Hasta 10Ilimitados
Retención90 días1 añoIlimitadaIlimitadaIlimitada
Requests API/min3060120300600
Créditos AIC/mes (uso + obsequio)1 de bienvenida30 + 60120 + 250600 + 1.300Custom
RBAC + audit trail compartido4 roles4 roles + SSO

Las memorias nunca se borran: al superar la ventana de retención de tu plan se archivan, y su hash on-chain existe para siempre. Al subir de plan recuperás el acceso completo a tu historial. El AIC de obsequio se acumula mes a mes, no expira y se libera según el calendario del protocolo.

Changelog

MCP v2.4.0 (Junio 2026)

  • Nuevo tool: update_project_state — Consolidación autónoma vía MCP. Cualquier cliente de IA puede proponer operaciones estructuradas para actualizar el Project Brain; el servidor valida, aplica y ancla on-chain.
  • Gramática de 22 operaciones para mutaciones de estado (decisiones, hitos, riesgos, métricas, vocabulario, y más)
  • Procesamiento resiliente: las ops inválidas se rechazan individualmente, las válidas se aplican igual
  • Vinculación de evidencia vía evidence_memory_ids — el servidor resuelve event hashes y construye pruebas Merkle automáticamente
  • Arquitectura: “el cliente consolida, la cadena verifica”

Plataforma — Junio 2026

  • Project Brain consolidado y anclado on-chain (versiones v1–v8, verificable públicamente)
  • Búsqueda semántica reescrita (más rápida, ~2.4s)
  • Escritura no-custodial probada end-to-end (el cliente firma, el server nunca tiene la llave)
  • Cifrado en reposo (AES-256-GCM) de las API keys
  • Endpoint de verificación pública: GET /v1/verify/:name

v3.0.9 (Junio 2026)

  • Fix: Project Brain muestra decisiones y riesgos correctamente (schema Fase 2)
  • Fix: Numeración de memorias muestra número secuencial del usuario

v3.0.0 (Mayo 2026)

  • Project Brain: visualización del estado consolidado
  • Motor de Consolidación: pipeline completo
  • Anclaje on-chain de Project State
  • API de verificación pública

v2.0.0 (Abril 2026)

  • Servidor MCP para Claude Desktop y Cursor
  • Inyección de contexto automática
  • Soporte para 5 plataformas de IA