eCash Magazine México
eCashMagazine
← Primera Plana
Primera Plana · Infraestructura · 10 septiembre 2026

Tonalli Memo ya vive en mainnet: texto, NFTs y enlaces sobre eCash

Lo importante no es convertir OP_RETURN en una red social gigantesca. Es demostrar que una capa pequeña, verificable y autocustodiada puede crecer sin romper su formato canónico.

TM1 Draft 0.2eCash mainnetChronikNFT + IPFS212 B eventData

Tonalli Memo cruzó una línea que suele separar los prototipos de la infraestructura: ya no es solamente una idea de mensajería on-chain. Hay publicaciones reales en eCash mainnet, un indexador que las consume en vivo, un feed que distingue estados de verificación y una interfaz capaz de enriquecer el mismo payload con referencias NFT y enlaces seguros.

El punto técnico clave es que esta evolución se hizo sin cambiar el wire format de TM1 Draft 0.2. El formato canónico sigue siendo pequeño y deliberadamente rígido; las nuevas capacidades se construyen alrededor de él como convenciones de aplicación, verificación y presentación.

Un protocolo mínimo, no una página web disfrazada de blockchain

TM1 identifica sus mensajes mediante el LOKAD ID 544d4d00 —los bytes de TMM\0—, usa versión 0x01 y un evento POST 0x01. El límite de compatibilidad del script es de 223 bytes; dentro de ese presupuesto, el campo eventData puede ocupar hasta 212 bytes UTF-8.

eventData212 Bcapacidad máxima
script223 Btecho de compatibilidad
NFT ref.71 B@nft1: + tokenId + salto

Eso obliga a ser disciplinados. Tonalli Memo no intenta incrustar HTML, imágenes o metadatos gigantes dentro de cada transacción. Guarda una señal canónica y deja que indexadores y clientes hagan el trabajo pesado de lectura y presentación.

De la transacción al feed: Chronik como nervio de lectura

El flujo de producción ya conecta la wallet con un indexador dedicado. La publicación se firma y transmite como una transacción eCash; Chronik la detecta desde mempool, el servicio tonalli-memo la interpreta y el read model la expone al feed público.

En pruebas de producción se verificó algo especialmente importante: no fue necesario un backfill administrativo para cada publicación. Un segundo memo llegó al indexador automáticamente desde mempool por WebSocket y después avanzó a estado confirmado. Es la diferencia entre una demo que “sabe leer una transacción” y un sistema que empieza a comportarse como servicio vivo.

Tres huellas mainnet que cuentan la historia

Primer canary TM1:

fadee1662482e302fcac768686085baa8f67ea9b67d846dfea100a0de1dcd9fd

Primer auto-ingest live desde mempool:

8539b6f59912009f8f4fd322bf67266063233c101a4b54aa0a765ad0c9955ff8

Primer Memo + NFT:

0c96216decc99af759517cf2143e2bd22ea179d48a9280635c8cd1c1eb6b0150

Adjuntar un NFT sin convertir TM1 en otro protocolo

La solución para NFTs es deliberadamente conservadora. El mensaje puede comenzar con una directiva textual:

@nft1:<64_hex_token_id>\n<mensaje opcional>

La directiva ocupa 71 bytes. El backend extrae el tokenId y comprueba de manera independiente que el activo sea un SLP NFT1 Child y que la wallet observada posea el token en el momento del indexado. Si la evidencia es positiva, el attachment queda marcado como VERIFIED_AT_INDEXING.

La imagen y el resto de la metadata no se consideran parte de la prueba de propiedad. RMZWallet resuelve el genesisInfo.url, obtiene el JSON desde IPFS y después resuelve metadata.image con failover entre gateways. Así, una caída de IPFS puede afectar la presentación, pero no cambia el estado criptográfico que ya decidió el backend.

El primer NFT mostrado en el feed fue “Evangelio RMZ del Xoloitzcuintle — Bloque Génesis”, tokenId:

17c807b364516916efbcfe64eac15b212935cce9e96aa58596bfbacfdba0d7c4

Hipervínculos: la URL viaja on-chain, la seguridad vive en el cliente

Las URLs no requirieron otra extensión del protocolo. Si el usuario escribe https://..., esos mismos bytes quedan dentro de eventData. El feed convierte solamente esquemas http: y https: en enlaces clickeables usando nodos React, sin interpretar HTML del usuario.

El renderer añade noopener, noreferrer, nofollow y ugc; además rechaza URLs con credenciales embebidas como https://trusted.example@evil.example, una forma clásica de disfrazar el host real. También aplica aislamiento bidireccional para reducir spoofing visual.

Adiós al límite histórico de 80 bytes

Mientras Tonalli Memo era apenas un micro-mensaje, la wallet mantenía una política conservadora de 80 bytes. Los hipervínculos hicieron evidente que ese límite ya no correspondía con la capacidad real de TM1. La política de Composer ahora es dinámica:

Memo sin NFThasta 212 Btodo el presupuesto de eventData
Memo + NFT141 B + 71 Btexto + directiva NFT

El contador usa bytes UTF-8 reales, no caracteres. Si alguien escribe 180 bytes y después adjunta un NFT, el texto no se trunca: la interfaz cambia el límite efectivo a 141, marca error y bloquea publicación hasta que el usuario reduzca el contenido o retire el NFT. El wire final nunca puede superar 212 bytes.

Qué significa “verificado” en Tonalli Memo

Conviene separar tres cosas que visualmente pueden aparecer juntas: la validez del payload TM1, la autorización de publicación en la interfaz oficial y la metadata externa.

TM1 define cómo reconocer y decodificar el mensaje. La aplicación oficial añade una capa de autoridad basada en identidad .xec, verificación de ownership y estados de recuperación antes de firmar. En attachments NFT, el backend verifica propiedad del token al indexar. IPFS, en cambio, solamente enriquece la presentación.

Importante: Tonalli Memo no convierte cada dato remoto en verdad criptográfica. Un badge de ownership no certifica que una descripción o imagen IPFS sea “verdadera”; certifica una relación específica observada por el backend. Esa separación de confianza es una característica, no una limitación accidental.

¿Es ya una red social descentralizada?

No en el sentido amplio. No hay timeline algorítmico complejo, almacenamiento multimedia on-chain ni un sistema universal de moderación. Y esa modestia técnica es precisamente parte de su valor.

Tonalli Memo hoy se parece más a una capa social verificable y mínima sobre eCash: identidad, pequeños mensajes, enlaces, referencia a activos y lectura pública. Su base es una transacción que cualquier tercero puede volver a interpretar sin depender del HTML de una página específica.

Eso abre una ruta interesante para comunidades, wallets y agentes: los clientes pueden construir experiencias distintas sobre el mismo rastro canónico, siempre que respeten la semántica del protocolo y distingan con cuidado lo que está firmado, lo que fue verificado por un servicio y lo que solamente viene de una fuente externa.

La lección para eCash

eCash suele discutirse desde pagos, escalabilidad o pre-consensus. Tonalli Memo muestra otra propiedad: una L1 de bajo costo y confirmación rápida puede servir también como sustrato para pequeñas declaraciones públicas verificables.

El avance no está en “meter redes sociales en la blockchain”. Está en construir una ruta donde cada capa conozca sus límites: TM1 conserva un formato compacto; Chronik entrega observabilidad; el indexador produce un read model; la wallet conserva autoridad de firma; IPFS resuelve metadata; y el front-end transforma bytes en una experiencia legible.

Después de meses de gates, pruebas, merges y canaries, Tonalli Memo ya no es una maqueta. Tiene transacciones mainnet, ingestión automática, un NFT verificable en el feed, enlaces seguros y el presupuesto completo de TM1 habilitado en producción.

Probar Tonalli Memo

El feed y el Composer están disponibles en la wallet Tonalli.