Desarrolladores
Precios en tiempo real para la economía de activos tokenizados de Stellar de 4MM$
Author
Maryam Mazraei
Publishing date
Nota del editor: El ecosistema de oráculos de la red Stellar está creciendo. Esta publicación es una guía técnica para desarrolladores y equipos que están desarrollando en la red Stellar. Cubre cómo evaluar e integrar feeds de precios de oráculos en contratos inteligentes de Stellar, con enfoque en el reciente lanzamiento en mainnet de Pyth junto con otros proveedores disponibles. Stellar Development Foundation (SDF) no respalda, recomienda ni garantiza ningún proveedor de oráculos específico, y esta publicación no constituye asesoramiento de inversión, financiero ni legal. Los desarrolladores deben realizar su propia debida diligencia antes de integrar cualquier servicio de terceros.
La red Stellar alberga $4 mil millones en activos del mundo real tokenizados—un aumento de aproximadamente 360% este año. Estos activos operan 24/7, incluso cuando sus mercados subyacentes no lo hacen, lo que hace que datos de precios oportunos y confiables sean esenciales para cualquier cosa desarrollada encima. El lanzamiento de Pyth amplía lo posible: 3.500+ feeds en renta variable, Materia prima, FX y cripto, obtenidos de primera mano de exchanges y firmas de trading, ahora consumibles desde cualquier contrato inteligente de Stellar. Si tu producto depende de precios de activos cuyos mercados cierran, esta publicación es para ti.
En el espíritu de “no confíes, verifica”, esta publicación también recorre el paso de debida diligencia que corresponde antes de cualquier integración: demostrarte a ti y a los usuarios que el despliegue en mainnet está configurado correctamente y rechaza datos manipulados—sin gastar ni un solo stroop.
Quién debería ver esto primero
Pyth es útil si estás desarrollando:
- Mercados de préstamos que aceptan RWA como colateral y necesitan valorarlos de forma continua
- Bóvedas que mantienen carteras multi-activo que necesitan marcado continuo las 24 horas
- Apps de pago que necesitan tasas FX en vivo
- Cualquier protocolo cuyas liquidaciones actualmente esperan una publicación de NAV una vez al día
Ya hay un ejemplo en vivo del patrón en la red Stellar: los tokens deRWA de Centrifuge (deJTRSY y deJAAA), con Blend mencionado como socio de préstamos. Los fondos tokenizados como colateral solo funcionan tan bien como su feed de precios.
Cómo funciona la integración
Pyth en la red Stellar usa un modelo pull con tres partes:
- Fuera de cadena, te suscribes a actualizaciones de precios firmadas. El servicio de baja latencia de Pyth transmite actualizaciones por WebSocket en un formato leEcdsa diseñado para la verificación nativa secp256k1 de los contratos inteligentes de Stellar. Tu aplicación (o el publicador de precios de tu protocolo) recibe un payload firmado compacto—unos pocos cientos de bytes con el precio, el exponente y una marca de tiempo en microsegundos.
- En cadena, un contrato verificador comprueba la firma. Pyth desplegó un verificador en CACZ3GBAKUPIAFRILUFO27J5RUH5GJ2VSJ46LP6GJYSKGDRTQ5MS3HCH (mainnet). Su
verify_updatefunción recupera al firmante desde la firma ECDSA del payload y lo comprueba contra una lista en cadena de firmantes de confianza. La verificación es sin permisos—cualquiera puede llamarla; solo recibir el feed de datos requiere una suscripción. - Tu contrato consume el payload verificado. La
pyth-lazer-stellar-sdkcrate envuelve la llamada entre contratos:
pub fn update_price(env: Env, payload: Bytes) -> Result<StoredPrice, ParseError> {
let lazer: Address = env.storage().instance().get(&DataKey::Lazer).unwrap();
let update = PythLazerClient::new(&env, &lazer).verify_update(&payload)?;
let feed = update.feeds.iter().find(|f| f.feed_id == 1).expect("BTC/USD missing");
Ok(StoredPrice {
price: feed.price.expect("price missing"),
exponent: i32::from(feed.exponent.expect("exponent missing")),
timestamp_us: feed.feed_update_timestamp.expect("timestamp missing"),
})
}Fragmento de la guía de integración de Stellar de Pyth, que tiene el ejemplo completo en funcionamiento.
Una regla de la propia guía de Pyth que vale la pena repetir: siempre llama a verify_update desde dentro de tu contrato. Nunca confíes en una actualización preparseada que te entregue un emisor offchain.
Verifica el despliegue tú mismo
Todo lo siguiente se ejecuta contra mainnet usando solo simulación—sin billetera, sin XLM, sin transacción enviada. El endpoint simulate de Stellar RPC ejecuta el WASM real del contrato contra el estado real del ledger, por lo que los resultados son con autoridad.
1. Verifica el firmante de confianza.
stellar contract invoke \
--id CACZ3GBAKUPIAFRILUFO27J5RUH5GJ2VSJ46LP6GJYSKGDRTQ5MS3HCH \
--rpc-url https://mainnet.sorobanrpc.com \
--network-passphrase "Public Global Stellar Network ; September 2015" \
--source-account GBTKQ2WYNYE5TJW3N5LH7PGGERX2EIBDIIN7X6LFHMVQQZCZT36KA3PC \
-- list_trusted_signersRecibirás una clave: 03a4380f…155b. Es la misma clave de firmante que la gobernanza de Pyth aprobó para otras cadenas (ver OP-PIP-45 en el foro de Pyth), y coincide exactamente con el despliegue en testnet.
2. Obtén un payload firmado en vivo. Con un token de API de Pyth (la prueba gratuita de 14 días funciona):
curl -X POST "https://pyth-lazer.dourolabs.app/v1/latest_price" \
-H "Authorization: Bearer $YOUR_TOKEN" -H "Content-Type: application/json" \
-d '{"priceFeedIds":[1],"properties":["price","exponent","feedUpdateTimestamp"],
"formats":["leEcdsa"],"channel":"fixed_rate@200ms","jsonBinaryEncoding":"hex"}'3. Verifícalo en mainnet. Pasa el hex leEcdsa.data de la respuesta a verify_update (mismo patrón de invocación que arriba, con -- verify_update --data <hex>). La simulación devuelve el payload interno verificado—firma comprobada contra el firmante en cadena, precio BTC/USD en vivo extraído.
4. Intenta hacer trampa. Cambia un byte del precio dentro del payload y llama de nuevo:
error: transaction simulation failed: HostError: Error(Contract, #6)El Error #6 es SignerNotTrusted—al manipular el mensaje, la recuperación de la firma produce una clave pública diferente, y el contrato la rechaza. Ese único comando fallido confirma que la verificación de firma en cadena está activa.
El contrato fue auditado por Zellic (informe), y las mismas verificaciones se ejecutan contra el despliegue en testnet en CAYFT5JE3UQTKT4Q6ZOZK4FXVYVT6RE3MFC7STA4UB6WAEGBT65MRU52.
Elegir un oráculo en la red de Stellar
Pyth se suma a un conjunto creciente de oráculos en la red de Stellar, incluidos Reflector, DIA y RedStone, que se puso en marcha a principios de este año. Chainlink viene en camino. Cada uno se adapta a distintas necesidades de producto:
- Pyth Pro es datos de primera parte. Feeds publicados directamente por exchanges, creadores de mercado y bancos con latencia sub-segundo y el catálogo multiactivo más profundo en el lanzamiento: acciones, ETFs, Materia prima, FX, renta fija como rendimientos y precios de bonos del Tesoro de EE. UU., e Índices 24/7 para activos cuyos mercados cierran. Es un producto por suscripción: el protocolo paga por el flujo de datos; la verificación onchain es gratuita para todos.
- Data Streams y Data Feeds de Chainlink llegarán a la red de Stellar: Stellar se unió a Chainlink Scale y los está adoptando junto con CCIP, con la integración aún en progreso. Chainlink valida datos de terceros a través de una red descentralizada, y su mayor atractivo será la portabilidad: los protocolos ya desarrollados en Chainlink en otros lugares pueden traer su integración a la red de Stellar casi tal cual.
- La redundancia supera a cualquiera por sí sola. Para cualquier cosa que mantenga fondos de usuarios contra colateral volátil, la postura institucional es contar con dos fuentes independientes con verificaciones de divergencia—leer Pyth y contrastarlo con RedStone cuesta poco y reduce la dependencia de un único punto de falla.
La versión corta: si tu producto toca activos que se negocian en mercados tradicionales, Pyth Pro cubre una amplia gama de ellos.
Comienza
- Pyth Terminal—explora feeds y empieza la prueba de 14 días
- Referencia de la API REST—pyth.dourolabs.app/docs para histórico, búsqueda y endpoints de precios en un momento determinado
- Guía de integración con Stellar
- Direcciones de contrato
- Anuncio de lanzamiento de Pyth
- Documentación de Stellar: proveedores de oráculos
- Pyth en el directorio del ecosistema de Stellar—filtra por categoría “Cross-Chain & Infrastructure” → subcategoría “Oracles,” o categoría “DeFi”
¿Estás creando algo que necesite precios continuos? Ven a hablar con nosotros en el Discord de Desarrolladores de Stellar.
Descargo de responsabilidad: SDF proporciona esta publicación solo con fines informativos y educativos. Las referencias a proyectos, productos o servicios específicos no constituyen un respaldo, recomendación ni garantía por parte de SDF. Los ejemplos de código son ilustrativos y no han sido auditados por SDF; los desarrolladores deben verificar de forma independiente todo el código antes de desplegarlo en la mainnet. SDF no es responsable del rendimiento, la seguridad ni la disponibilidad de ningún oráculo o feed de datos de terceros. Nada en esta publicación pretende ser asesoramiento de inversión, financiero o legal.
