Bloque #14: Los sospechosos de siempre – Dune y LaChain

A esta altura del partido, ninguno de los dos necesita presentación en este blog. Ya hemos hablado de LaChain varias veces en los Bloque 5 y Bloque 13 pero para algún perdido, LaChain es una blockchain enfocada en LATAM que busca solucionar problemas específicos de la región. Este es un blog enfocado a ingenieros de datos en español y LaChain es una red enfocada en un público que mayoritariamente habla ese idioma, además de que es una red que está dando sus primeros pasos, por lo que van a ver seguido esta red por acá. ¿Qué decir de Dune que no hayamos dicho ya? Es una app espectacular para data analytics ya que con un par de queries uno puede montar un dashboard super detallado sin necesidad de preocuparse por la extracción de la data cruda o la infra para montar el tablero. 

Problemática

Pero no todo es color de rosas para LaChain. Ya hemos hablado en el Bloque 13 de sus dificultades como una red que recién arranca de llamar la atención de los principales sitios de data en cripto. ¿Está uno verdaderamente en cripto si no está publicado en Dune o Defillama? Hoy por hoy son los estándares de la data en cripto y no estar allí te deja un poco afuera, aunque al ser una red nueva se le puede perdonar este pecado.  

Dune parecería ser bastante celoso de que redes agregar, aunque invita a los administradores de las redes a charlar con ellos. No queda claro cuales serían los requisitos para poder empezar a ver una nueva blockchain en Dune. ¿Pedirán un fee inicial para hacerlo? ¿Cantidad de wallets? ¿Transacciones? ¿TVL mínimo? No queda claro. Tampoco sabemos si hubo algún esfuerzo de LaChain de comunicarse con ellos para depositar su data en Dune, lo que sí sabemos es que hoy la data no está. 

Catalyst es la solución personalizada de Dune para agregar nuevas blockchains

En Defillama vemos un pequeño avance respecto al Bloque 13. LaChain tiene su sitio en Defillama ahora y se listan algunos Dex y hasta se ve algo de TVL, pero este es parcial. El problema sigue siendo el mismo: Defillama toma los precios de tokens de Coingecko y hoy por hoy LAC, el token nativo de LaChain, no está en Coingecko. Es por esto que la valuación del TVL de la red y los proyectos es parcial. Coingecko parecería ser bastante estricto con sus condiciones para tomar una nueva red o token y parecería que no es algo que se arregle rápido ni con plata:

Sitio de LaChain en Defillama con la info del TVL parcial

LaData fue un intento interesante en el Bloque 13 donde intentamos generar un mini sitio con un par de scripts de Python con data de LaChain. Pero lo interesante de Dune, es que uno disponibiliza la data a un mar de analistas de datos y, además, llama la atención de gente que no conoce la red si es que un dashboard tiene la suficiente tracción. 

LiveFetch

Por suerte, tenemos solución! LiveFetch es una función agregada en Abril del 2024 por la gente de Dune la cual permite consumir cualquier tipo de información a través de una API directamente de nuestro SQL. Originalmente, esta era una feature únicamente para los usuarios pagos, pero Dune la amplió para todos los usuarios hace relativamente poco (gran decisión). 

Simplemente, uno debe utilizar la siguiente query y obtendrá en una sola linea el response de GET de esa API:

SELCT http_get('https://miapi.com/miendpoint')

Tan simple como eso. Por supuesto que tiene sus limitaciones: existe un límite de llamadas a diferentes API en una sola query e inclusive tiene un timeout de 5 segundos luego del cual la query falla. Pero si nuestro GET es simple, no abusamos y nuestra data es devuelta en tiempo y forma estamos más que bien. Inclusive se puede parametrizar data en el header y podemos jugar haciendo un join con alguna tabla y hacer varios llamados de la misma API con diferente parámetros (ojo no abusen!). Hay un ejemplo de precios de stablecoins con Coingecko en la documentación super interesante. La verdad que la función es muy completa. 

Obviamente el output de la función así no nos sirve de mucho. Si nuestro output es un JSON puro sin arrays, podemos utilizar las funciones JSON_EXTRACT y JSON_EXTRACT_SCALAR. Si tenemos un array de jsons dentro de nuestro output (muy común si lo que obtenemos como respuesta es una serie de tiempo), deberemos usar en el FROM la función UNNEST para abrir cada uno de los objetos en una fila diferente en nuestra query. Ejemplo:

UNNEST(TRY_CAST(json_data AS array(json))) AS json_each(value))

Tengo un tablero que armé para Polymarket con el Volumen por mercado y respuestas donde utilice una API de ellos para obtener la metadata de cada mercado y llevé al límite LiveFetch: https://dune.com/fergmolina/polymarket-markets-data

Dune Dashboard con data de Polymarket que utiliza la API del sitio para obtener metadata

Un consejo interesante es que si la data que consultan a través de la API no se actualiza de forma constante, es recomendable que generen una vista materializada para no estar constantemente utilizando llamados a la API que pueden eventualmente fallar por algún motivo. 

LaChain Dashboard

En el Bloque 13 cuando armamos LaData, utilizamos alguna de las API del explorer de LaChain que son públicas. Como verán, nada se pierde, todo se transforma así que utilizaremos de nuevo estas APIs para poder generar diferentes set de datos y generar algunos gráficos sobre LaChain. 

Principalmente, nos enfocaremos en métricas básicas relacionadas con Bloques, Transacciones, Gas Fees, Contratos y Accounts. Generaremos gráficos de medición diaria, gráficos acumulativos para ver crecimiento y algunos contadores. Lo interesante es que la mayoría de las APIs tienen la misma estructura en su output, por lo que generar las queries y los gráficos fue casi un copy-paste y el tablero salió muy rápido.

https://dune.com/fergmolina/lachain

Nuevo dashboard de LaChain en Dune

Pero sumaremos una pieza fundamental que falta en casi todos los (pocos) sitios o tableros con información de LaChain: el precio de LAC. En el Bloque 10, cuando hablamos del tan querido MAGAIBA, usamos la API pública de Ripio Trade para tomar info sobre el par MAGAIBA_UXD. En este caso, tomaremos todos los trades del par LAC_USDC y nos quedaremos con el precio de cierre por día para pricear LAC y generar un gráfico por día. Como contador original, tomaremos el precio del último trade disponible. 

Conclusión

Junio y Julio parecen haber sido grandes meses para LaChain, donde a pesar de la caída del precio de LAC se notan crecimientos sustanciales en nuevos contratos, accounts y transacciones.

Crecimiento de LaChain a partir de Junio y Julio

Podemos decir con total confianza que logramos que LaChain esté en Dune! Aunque podemos considerarlo como un soft landing, es un primer paso para que la red siga creciendo y se empiecen a ver números en plataformas conocidas en la industria.

Deja un comentario