Sound of AVM publica la v0.9.0 y convierte en sonido el mempool en vivo de Algorand desde el navegador
Sound of AVM, un sonificador de código abierto del mempool de Algorand, publica la v0.9.0: el gossip sin claves de Nodely sustituye al sondeo, llegan nuevos visualizadores y los ajustes predefinidos pueden acuñarse on-chain como NFT ARC-3.
Una red que se puede escuchar
Algorand liquida un bloque nuevo cada pocos segundos y cada uno sella lo que la red acaba de hacer: el pago de una stablecoin, una transferencia de activos, una llamada a un contrato inteligente. La mayoría de la gente contempla ese tráfico como tablas de hashes que se desplazan en un explorador de bloques. Sound of AVM1 hace lo contrario: escucha. Es un sintetizador de navegador que convierte la actividad on-chain en vivo en música, de modo que una red ajetreada suena como una sala llena de gente y una red tranquila, como un silencio con alguna nota suelta. Su propia descripción es la más precisa que existe: «No hay nada pregrabado; si oyes una nota, acaba de ocurrir una transacción».
La aplicación lee el mempool —el conjunto de transacciones sin confirmar que aguardan el siguiente bloque— y no el historial de bloques, de modo que oye las transacciones a medida que se propagan, antes de su liquidación. Cada instrumento es una tarjeta de sintetizador que empareja una regla —qué transacciones le interesan— con un sonido que suena cuando llega alguna. El 26 de julio de 2026 el proyecto publicó la v0.9.0, su primera versión numerada; su guía integrada ofrece la forma más rápida de empezar: carga un ajuste predefinido, pulsa Start y la barra espaciadora detiene y reanuda la música desde cualquier punto de la página.
Un sintetizador por tipo de transacción
Lo primero que elige un sintetizador es el tipo de transacción que escucha. El conjunto completo de transacciones de Algorand está en el menú —pay, axfer, appl, acfg, keyreg, afrz, stpf, hb, group, block— y cada uno puede acotarse por subtipos. Un sintetizador de pay puede filtrar por importe, emisor o receptor; uno de axfer añade el ID del activo, opt-in, opt-out y clawback; uno de appl puede vigilar una aplicación concreta. Los filtros son el punto en el que la herramienta se vuelve quirúrgica:
| Concepto | Implicación en el mundo real |
|---|---|
| pay — pagos simples en ALGO | Un rango de importe convierte la voz en un detector de ballenas: una nota grave que solo suena cuando un pago supera, por ejemplo, los 5,000 ALGO. |
| axfer — transferencias de activos | Los cuadros de activos permiten buscar por nombre además de por ID, así que basta escribir «USDC» para que una voz suene solo cuando se mueve ese token. |
| appl — llamadas a contratos inteligentes | Sigue una única aplicación, o los activos y cuentas externos que tocan sus llamadas, sin necesidad de leer los registros de transacciones. |
| group — transacciones agrupadas | Empareja un sintetizador con group para captar un token que se intercambia en un DEX, ya que un swap es un grupo atómico y no una transacción única. |
| block — una nota por bloque | La sección rítmica: un sonido que se dispara una vez por ronda certificada y da a todo lo demás un pulso constante. |
El resto es diseño sonoro. Bajo las voces hay cinco motores de Tone.js2: un sintetizador de una sola voz para golpes secos y percusivos; un sintetizador mono con su propio filtro para las líneas de bajo; un sintetizador polifónico para pads superpuestos; y variantes AM y FM para timbres metálicos o de campana. Un secuenciador de ocho pasos avanza al compás de las transacciones y no de un reloj, así que el tempo del riff es el de la red: cadena ajetreada, riff rápido. La guía plantea la afinación como composición: «Pon el tipo de transacción más ocupado en un registro grave y el más raro en uno agudo, y tendrás el bajo y la melodía gratis». Cuando a un sintetizador le llegan disparos más rápido de lo que permite su límite, el modo decide qué ocurre: Single descarta el excedente, mientras que Aggr condensa la ráfaga en un único golpe más largo y más fuerte.
Del sondeo a un flujo en directo
El proyecto nació en el Algorand Dev Retreat at Home como un prototipo en HTML y JavaScript a secas, a partir de la constatación de que el flujo de transacciones de una cadena es una suerte de ritmo. Aquella primera versión sondeaba las transacciones pendientes cada 50 milisegundos a través de una API pública de AlgoNode o de un nodo propio, enviaba los resultados a Tone.js y pedía a los usuarios que no abusaran de la API gratuita. Conectar un nodo propio implicaba activar una cabecera CORS en la configuración del nodo. Funcionaba, con matices: la precisión de la programación temporal quedaba a merced del intervalo de sondeo, y los límites de peticiones de la API lo convertían en un juguete más que en un monitor.
La v0.9.0 sustituye toda la capa de datos. En lugar de sondear, la aplicación abre un WebSocket a la pasarela de gossip de mainnet de Nodely3 y descodifica en el navegador las transacciones firmadas a medida que los relays las difunden. El código es explícito sobre el intercambio: «Cada transacción llega a medida que se propaga, con su hora de llegada real: sin sondeo, sin comparar recuentos, sin tokens».
| Concepto | Implicación en el mundo real |
|---|---|
| Prototipo: sondeo cada 50 ms de una API pública | Las notas llegan cuantizadas al intervalo de sondeo, y el proyecto calculó que los límites del plan gratuito acotaban la escucha continua a unas cinco horas. |
| v0.9.0: WebSocket de gossip de Nodely sin claves | Una nota suena en cuanto la transacción se propaga a los relays, sin clave de API ni nodo local. |
| Búfer de grupos atómicos (~300 ms) | Los miembros de una transacción agrupada se recogen y se emiten como un solo evento, de modo que un swap suena como un único gesto y no como un tartamudeo. |
Ese último detalle importa al oyente tanto como la propia síntesis: el cliente implementa en el navegador una porción del protocolo de comunicación de los relays de Algorand, se suscribe a la etiqueta del mensaje de transacción, descodifica sus cargas msgpack y recuerda las transacciones vistas recientemente a lo largo de dos generaciones para que las retransmisiones de los relays no disparen una nota por duplicado.
Ajustes predefinidos que se pueden acuñar on-chain
Las configuraciones son portables. Un ajuste predefinido es un archivo JSON que describe cada sintetizador y cada parámetro, se guarda en local o se exporta para compartirlo; además, la v0.9.0 codifica los ajustes predefinidos y los tokens de ajuste acuñados en la barra de direcciones, así que basta una URL para pasar un sonido de unos a otros. El botón de billetera existe por un único motivo: acuñar un ajuste predefinido on-chain como «NFPreset».
El mecanismo merece que se desglose, porque utiliza directamente la maquinaria de tokens nativos de Algorand. Algorand emite activos —los Algorand Standard Assets, o ASA— sin necesidad de un contrato inteligente, y ARC-3 es la convención que siguen los NFT entre ellos: la URL del activo apunta a metadatos JSON alojados en IPFS, señalados con el sufijo «#arc3». Un NFPreset es un ASA cuyos metadatos en IPFS incorporan el ajuste predefinido como una cadena base64 comprimida dentro de sus propiedades. Cargar uno implica recuperar los metadatos del activo desde el indexador, traer el archivo desde IPFS y descodificarlo de nuevo a voces. La hoja de ruta describe la acuñación como una única transacción de creación de activo firmada con la billetera, y aplaza a una futura v2 un mercado para intercambiar NFPresets.
El formato ya se ha puesto a prueba on-chain. El activo «block anxiety» (nombre de unidad NFP, suministro total 1) se creó el 5 de agosto de 2025 desde una dirección financiada por hampelman.algo, el alias on-chain del desarrollador —coincide con los metadatos de ejemplo del propio documento de hoja de ruta del proyecto—, y le siguieron dos acuñaciones más del mismo ajuste predefinido, etiquetadas NFP2 y NFP23. La ocurrencia es discretamente extraña y bastante funcional: aquí un NFT no es una imagen, sino una configuración de instrumento reproducible, e intercambiar uno es intercambiar diseño sonoro.
Pequeño, abierto y todavía afinado
La versión numerada también trajo una tanda de visualizaciones que representan los mismos datos como imágenes: Territory, en la que cada transacción reclama su porción de pantalla y «aparta a un lado el terreno que ya estaba», además de Kintsugi Ledger y Music Box, junto a Score y Loom, que ya existían. El botón de grabación, pensado para capturar la salida como audio, todavía no está conectado.
El proyecto se muestra honesto sobre sus propios límites. El README original señala que «las transacciones entran demasiado rápido para Tone.js, lo que le impide crear marcas de tiempo únicas para cada una de ellas» —la razón de que exista el modo agregado—, y no hay auditoría formal del código, algo habitual en una herramienta de código abierto de esta escala. Su alcance es modesto: ocho estrellas en el repositorio original de la organización Algorand Developer Retreat, una estrella en la copia que se mantiene activamente bajo la cuenta personal del desarrollador, y un único artículo breve de un agregador de noticias de Algorand a finales de julio de 2026 que describía la antigua arquitectura de sondeo, señal de que la renovación aún no ha encontrado a su público.
Es el tipo de proyecto que solo existe porque un hackathon permitió a un desarrollador perseguir una idea extraña: que la actividad de una blockchain tiene un tempo que merece la pena escuchar. El código sigue siendo abierto y su responsable ha aceptado sugerencias desde los tiempos del prototipo. Para quien alguna vez haya encontrado hipnótico un explorador de bloques, y no precisamente para bien, escuchar la red —bajos para las ballenas, melodía para los acontecimientos raros, un sintetizador de bloques marcando el compás— es una forma genuinamente nueva de ver trabajar a una cadena.
Fuentes
- Sound of AVM1
- The Sound of AVM — Algorand Developer Retreat organization (prototype)4
- The Sound of AVM — active development repository5
- Cobertura de PXke sobre Algorand
- Verifiably Random: S2:E8 - Inside the open-source coding at the Algorand Dev Retreat6
- Publicación de @algorand.pxke.me — Bluesky7
- RelayUrl path and query issues · Issue #735 · mikedilger/gossip8
- QuickStart | Nodely9
Fuentes
- 1Sound of AVM soundofavm.online↩
- 2Tone.js tonejs.github.io↩
- 3Nodely nodely.io↩
- 4The Sound of AVM — Algorand Developer Retreat organization (prototype) github.com↩
- 5The Sound of AVM — active development repository github.com↩
- 6Verifiably Random: S2:E8 - Inside the open-source coding at the Algorand Dev Retreat algorand.co↩
- 7Publicación de @algorand.pxke.me — Bluesky bsky.app↩
- 8RelayUrl path and query issues · Issue #735 · mikedilger/gossip github.com↩
- 9QuickStart | Nodely nodely.io↩