De cero a tu dApp en Stellar

Crash course de blockchain y Stellar, y después a construir con Cavos, Trustless Work, Scaffold Stellar y un agente de código.

Taller práctico · @bitfalt

Blockchain Stellar y Soroban Cavos y Trustless Work Tu dApp Parte 1 Parte 2 Parte 3 Scaffold Stellar

Hola, soy bitfalt

  • Backend Engineer en Nexus.
  • Estudiante de maestría en el TEC.
  • Hoy les explico las bases de blockchain y Stellar, y después construimos dApps conversando con un agente.
Pepe con anteojos redondos, pensativo

El mapa de hoy

Primero entender, después construir: salís con las bases claras y una dApp corriendo en testnet.

  1. 1Fundamentos de blockchainbloques, wallets, contratos, DeFi
  2. 2Stellar por dentroledger, cuentas, Soroban
  3. 3Las piezasCavos y Trustless Work
  4. 4Scaffold Stellar y agentesel repo del taller
  5. 5Demo en vivo
  6. 6Manos a la obra
Parte 1

Fundamentos de blockchain

Alguien tiene que llevar las cuentas

Cuando le pagás a alguien, un banco actualiza su libro contable: resta de tu cuenta y suma en la otra. Funciona, pero ese libro lo tiene una sola entidad:

  • puede congelar, censurar o equivocarse,
  • tiene horarios, fronteras y comisiones,
  • y solo esa entidad ve el libro completo.

Una blockchain es ese mismo libro, pero copiado en miles de computadoras que se ponen de acuerdo sobre qué se anota.

Un libro, un dueño Banco el libro Ana Luis Sofía Muchas copias, nadie solo libro libro libro libro libro

Probá hacer trampa en un libro compartido

Cinco computadoras (nodos) tienen la misma lista de pagos. Probá los botones.

Una transacción es una orden firmada

1

La armás“pagarle 10 a Luis”, “llamar a este contrato”

2

La firmáscon tu llave secreta, desde tu wallet

3

La enviás a la reda cualquier nodo

4

Los nodos la revisan¿firma válida?, ¿hay saldo?, ¿comisión?

5

Entra en un bloquey queda anotada para siempre

Quién

la cuenta que la envía y la paga

Qué

pagar, crear una cuenta, llamar a un contrato…

Comisión

lo que pagás para que la red la procese

Firma

la prueba de que la autorizaste vos

Hash: la huella digital de los datos

Su hash SHA-256 (64 caracteres):

Cambiá una sola letra y mirá qué pasa.

  • Siempre igual: el mismo texto da el mismo hash.
  • Cualquier cambio, por mínimo que sea, da un hash totalmente distinto.
  • No tiene vuelta: del hash no se puede sacar el texto.
  • Bitcoin y Stellar usan SHA-256; Ethereum usa Keccak-256. La idea es la misma.

Un bloque guarda el hash del anterior

Editá el texto del Bloque 2: se rompe ese bloque y todos los que vienen después.

¿Qué es el nonce? Viene de “number used once”: un número que se usa una sola vez. El minero lo va cambiando (0, 1, 2…) hasta que el hash cumpla la dificultad. En Ethereum, “nonce” también es el contador de transacciones de una cuenta; en Stellar ese contador se llama número de secuencia.

¿Cómo se ponen de acuerdo?

Consenso: las reglas para decidir qué bloque es el siguiente, aunque haya nodos caídos o tramposos.

Bitcoin

Prueba de trabajo

Gana quien resuelve primero el acertijo de los ceros (lo que hizo el botón Minar). Hacer trampa cuesta electricidad y máquinas.

Gasta mucha energía. Un bloque cada ~10 min.

Ethereum, Solana

Prueba de participación

Los validadores dejan plata en garantía. Si hacen trampa, la pierden; si cumplen, ganan recompensas.

Mucho menos energía. Ethereum: un bloque cada 12 s.

Stellar

Acuerdo federado (SCP)

Cada validador elige en qué otros confía, y votan en rondas hasta confirmar el mismo bloque. Sin minería y sin premio por validar.

Un ledger cada ~5 s, final al instante.

Block explorers: el buscador de la blockchain

Ejemplos:

Busca en la testnet de Stellar. Sin internet muestra datos guardados.

Como todo es público, cualquiera puede ver cada bloque, cuenta y transacción. Un explorer lo muestra bonito.

RedExplorers
Bitcoinmempool.space
Ethereumetherscan.io
Solanasolscan.io, explorer.solana.com
Stellarstellar.expert, Stellar Lab

Úsenlos para depurar: si una transacción falló, el explorer dice por qué.

Transparente por defecto… o con privacidad

La misma transacción, vista en un explorer

Zcash · desde 2016

Transacciones blindadas que ocultan quién envía, quién recibe y cuánto. Es opcional: sus direcciones transparentes funcionan como las de Bitcoin.

Aztec · capa 2 de Ethereum

Contratos inteligentes privados, escritos en Noir. Su red Alpha salió en 2026 y todavía está en fase temprana.

La pieza clave: las pruebas de conocimiento cero, que demuestran que algo es válido sin mostrar los datos.

Una wallet no guarda plata: guarda llaves

Pública (G…)
—
Secreta (S…)
—
Firma
—

Generá llaves reales de Stellar, acá mismo y sin internet.

  • Pública: tu dirección. Se comparte, como un número de cuenta.
  • Secreta: la que firma. Quien la tenga controla la cuenta.
  • Firmar prueba que fuiste vos sin mostrar la secreta.

Todas las redes usan pares de llaves: Bitcoin y Ethereum con la curva secp256k1, Solana y Stellar con Ed25519.

¿Dónde vive la llave?

TipoEjemplosQuién guarda la llave
Extensión o appMetaMask, Phantom, Freightervos, en tu navegador o celular
HardwareLedger, Trezorvos, en un aparato aparte
EmbebidaCavos, Privyvos, en un espacio aislado; entrás con correo
Custodialun exchangela empresa: le tenés que creer

La frase semilla

12 o 24 palabras que regeneran tu llave secreta. Quien las tenga, tiene tu cuenta. Nadie legítimo te las va a pedir.

MetaMask es de Ethereum, Phantom de Solana y Freighter de Stellar. En el taller vas a poder usar Freighter o entrar con correo gracias a Cavos.

Un smart contract es como una máquina expendedora

Crédito₡0
Bandeja: vacía

Meté monedas y elegí algo.

Máquina expendedoraSmart contract
Meter monedasenviar una transacción con un pago
Apretar un botónllamar a una función
Las reglas de la máquinael código del contrato
Precios a la vistacódigo público: cualquiera lo revisa
Nadie atiendeno hace falta un intermediario

Un contrato en papel necesita a alguien que lo haga cumplir. Un smart contract se cumple solo: si pagás y se cumplen las reglas, entrega; si no, no. Y no hay a quién convencer.

Smart contract: un programa con reglas que nadie se salta


			

Una “alcancía con meta”, en Rust como en Soroban (simplificado). Ana es la dueña; la meta es 50.

Actuás como:
Saldo en la alcancía: 0Meta: 50Ana recibió: 0

¿Por qué se pagan comisiones?

  • Para evitar spam: si fuera gratis, alguien llenaría la red de basura.
  • Porque el espacio es limitado: cada bloque tiene un tope. Si hay más demanda, se paga más.
  • “Gas” es el nombre que les puso Ethereum: el combustible que gasta cada operación.
RedUnidad mínimaCómo se cobra
Bitcoinsatoshi
0.00000001 BTC
por tamaño de la transacción; sube con la demanda
Ethereumgwei
0.000000001 ETH
gas usado × precio del gas; la parte base se quema
Solanalamport
0.000000001 SOL
5,000 lamports por firma, más prioridad opcional
Stellarstroop
0.0000001 XLM
100 stroops por operación, más recursos si llama a un contrato

Cuando hay fila: una subasta por espacio

Un bloque con espacio para 5 transacciones:
Esperando al siguiente bloque:

Tokens: saldos que lleva la red o un contrato

Fungibles

Todos valen lo mismo y se pueden partir: dólares digitales, puntos de lealtad, la moneda de un juego.

No fungibles (NFT)

Cada uno es único: una entrada a un evento, una insignia de asistencia, un título de propiedad.

RedCómo se hace un token
Ethereumun contrato ERC-20 (fungible) o ERC-721 (NFT)
Solanael programa de tokens SPL
Stellaractivos nativos de la red (con trustline), o un contrato que cumple la interfaz SEP-41

Un token es solo una tabla de “quién tiene cuánto” con reglas para moverlo. Su valor depende de lo que lo respalde.

Stablecoins: dólares que viven en la blockchain

Emisor
reservas en el banco
$0
respaldo: —
Blockchain
USDC en circulación
0
tokens
Ana
Costa Rica
0 USDC
$100 en el banco
Luis
México
0 USDC
$0 en el banco

Una stablecoin vale ~1 dólar porque el emisor guarda 1 dólar por cada token y lo cambia 1 a 1.

Respaldadas por dinero: USDC (Circle), USDT, EURC. Por cripto: DAI. Algorítmicas: UST, que colapsó en 2022.

DeFi: servicios financieros hechos con contratos

Intercambiar

Cambiar un token por otro sin un exchange en medio (DEX).

Prestar

Pedir prestado dejando una garantía; o prestar y ganar intereses.

Dar liquidez

Poner tokens en un fondo para que otros intercambien, y cobrar comisiones.

Oráculos

Traer datos de afuera, como el precio de un activo.

RedEjemplos conocidos
EthereumUniswap (DEX), Aave (préstamos)
SolanaJupiter, Raydium (DEX)
Stellarel DEX de la propia red, Soroswap y Aquarius (DEX), Blend (préstamos)

Los riesgos

Errores en los contratos, precios que se mueven rápido y garantías que se liquidan. No es para el taller, pero conviene saber que existe.

Un DEX automático (AMM): precio por fórmula

Cada tramo de tu cambio rinde menos que el anterior (XLM por cada USDC):
Recibís
Comisión del fondo (0.3%)
Precio antes
Precio promedio que pagás
Precio después
Impacto en el precio

Cuatro redes, lado a lado

Carrera de bloques en tiempo real, con los tiempos promedio de cada red:
0 s

Cada cuadrito es un bloque. El amarillo es el más nuevo.

Repaso rápido

Parte 2

Stellar por dentro

Stellar en corto

  • Rápida y final. Cada ~5 segundos cierra un ledger y lo que entró ahí ya no se revierte.
  • Barata. Una operación simple cuesta 0.00001 XLM; llamar a un contrato, fracciones de centavo.
  • Hecha para pagos. Activos como USDC son nativos de la red, con un DEX incorporado.
  • Soroban son sus contratos inteligentes, escritos en Rust.
  • XLM (lumen) es su moneda: paga comisiones y reservas.
Testnet en vivo
—
Conectando con la red…
Comisión base100 stroops
Reserva base0.5 XLM

Testnet es la red de práctica: misma tecnología, plata de mentira. Friendbot te regala 10,000 XLM de prueba.

El ledger: una foto de toda la red cada 5 s

Cada ledger guarda el estado completo: cuentas, saldos, trustlines, ofertas del DEX y datos de contratos. Más el hash del ledger anterior.

Para cerrar uno, los validadores corren el Stellar Consensus Protocol:

  • cada validador elige un quórum de nodos en los que confía,
  • se proponen las transacciones candidatas,
  • se vota, se acepta y se confirma.
1

Proponer“estas transacciones van en el ledger 800”

2

Votarsi es coherente con lo que ya votó

3

Aceptarcuando su quórum lo apoya

4

Confirmares seguro: cierra y es final

Las letras de Stellar

G… Cuenta

Tu dirección pública. Tiene saldos, trustlines y un número de secuencia.

56 caracteres. Se comparte.

S… Secreta

La llave que firma por esa cuenta. Controla todo lo que hay en la G.

Nunca se comparte.

C… Contrato

La dirección de un contrato de Soroban. También puede tener saldos y firmar como “rol”.

Un escrow es una C.

M… Muxed

Una G más un número. Sirve para que un exchange dé una dirección por cliente con una sola cuenta.

Para que una G exista on-chain, alguien tiene que crearla con al menos 1 XLM. Antes de eso es solo una dirección calculada.

¿De qué es esta dirección?

Elegí una respuesta.

¿Cuánto XLM necesita una cuenta?

Trustlinespara tener USDC, EURC…0
Ofertas en el DEXórdenes de compra o venta abiertas0
Firmantes extramultifirma0
Trustlines a un fondo de liquidezcuentan doble0
Saldo mínimo que queda bloqueado:
1 XLM

Esa reserva no se gasta: se libera si quitás la trustline o la oferta. En testnet Friendbot te da 10,000 XLM, así que sobra.

Anatomía de una transacción real

Cargando…abrir en stellar.expert

Tocá un campo

Cada fila es un campo de la transacción. Tocalo para ver qué significa.

Operaciones: hasta 100 por transacción, todo o nada

OperaciónQué hace
create_accountcrea una cuenta G y le deposita XLM
paymentenvía XLM o cualquier activo
path_paymentenvía un activo y llega otro, convertido en el DEX
change_trustagrega o quita una trustline
manage_sell_offerpone una oferta en el DEX
set_optionsfirmantes, umbrales, dominio
invoke_host_functionllama a un contrato de Soroban

Atómica

Si una operación falla, no se aplica ninguna. Ana le da 10 USDC a Luis y Luis le da 50 XLM a Ana en la misma transacción: o pasan las dos, o ninguna.

Una transacción que llama a un contrato lleva una sola operación. Sus límites se miden en recursos (CPU, lectura, escritura).

Activos: código + emisor

USDC código + Emisor: GA5Z…KZVN la cuenta de Circle en mainnet Trustline Ana acepta ese USDC (0.5 XLM de reserva) Contrato SAC el mismo USDC, usable desde Soroban (C…)
  • XLM es nativo: no tiene emisor ni trustline.
  • Todo lo demás se identifica por código + emisor. Cualquiera puede crear un “USDC”, pero el de Circle es el de su emisor.
  • Trustline: para recibir un activo, tu cuenta primero lo acepta. Así nadie te llena la cuenta de tokens basura.
  • SAC (Stellar Asset Contract): cada activo tiene un contrato que lo hace usable desde Soroban.

Comisiones en Stellar

Comisión de inclusión

100 stroops × cantidad de operaciones. Lo que ponés es un máximo: sin congestión pagás el mínimo.

Comisión de recursos solo contratos

Según lo que consume: CPU, datos leídos y escritos, tamaño, eventos y el “alquiler” del almacenamiento.

Ejemplo real (testnet)Pagó
Transacción con 43 operaciones4,300 stroops
0.00043 XLM
Llamada a un contrato4,333 stroops
0.0004333 XLM

Lo cobrado va a una cuenta bloqueada: no se lo queda nadie. Con un “fee bump”, otra cuenta puede pagar la comisión por vos: así funcionan las apps sin gas.

Soroban: los contratos de Stellar

  • Rust → WebAssembly. Se compila a un archivo Wasm y se despliega con una dirección C….
  • require_auth() exige la firma de una dirección.
  • Almacenamiento con fecha de vencimiento (TTL).
  • Eventos que el frontend puede escuchar.
  • Simulación: antes de enviar, la red te dice el resultado y la comisión.
#[contractimpl]
impl Reputation {
    pub fn review(env: Env, reviewer: Address,
                  subject: Address, rating: u32, …)
        -> Result<(), Error> {
        reviewer.require_auth();
        if !(1..=5).contains(&rating) {
            return Err(Error::InvalidRating);
        }
        let storage = env.storage().persistent();
        storage.set(&key, &review);
        storage.extend_ttl(&key, THRESHOLD, EXTEND_TO);
        …
    }
}

Los datos de un contrato tienen vencimiento

Día 0

Cada dato tiene un TTL: cuánto tiempo más vive sin que nadie lo renueve.

Temporalbarato; al vencer se borra para siempre
Persistenteal vencer se archiva y se puede restaurar
Instanciacomo persistente, vive con el contrato

En la red el TTL se mide en ledgers: 1 día = 17,280 ledgers.

Redes y herramientas

RedPara qué
Mainnetplata real; las cuentas se crean con XLM real
Testnetpracticar; Friendbot da 10,000 XLM; se reinicia de 2 a 4 veces por año
Futurenetprobar funciones nuevas antes de que salgan
HerramientaPara qué
Stellar CLIcompilar, desplegar e invocar contratos desde la terminal
Stellar Labarmar y firmar transacciones desde el navegador
Freighterla wallet de extensión de Stellar
stellar.expertexplorer de bloques, cuentas y contratos
Stellar RPCla API para hablar con la red y simular contratos

Pagos y DeFi en Stellar

DEX y pagos con conversión

La red trae un libro de órdenes y fondos de liquidez. Un path_payment manda colones digitales y llegan dólares, convertidos en el camino.

Anchors

Empresas que conectan la red con bancos: depositás moneda local y recibís el activo, o al revés. Hablan protocolos estándar (SEPs).

DeFi en Soroban

Soroswap y Aquarius para intercambiar, Blend para préstamos, y contratos de cualquiera que quiera construir encima.

Repaso de Stellar

Parte 3

Las piezas: Cavos y Trustless Work

Por qué cuesta construir en web3

  • Las wallets asustan: instalar una extensión y anotar 24 palabras es donde se pierde la gente.
  • Mover plata con reglas (“te pago cuando entregues”) es difícil de hacer bien y peligroso de hacer mal.
  • Pegar el contrato con la app: direcciones, tipos y despliegues que se rompen a cada cambio.

Y un cuarto problema

Los modelos se saben Ethereum de memoria, pero de Stellar saben menos y con versiones viejas. Sin contexto, inventan APIs.

Cavos, Trustless Work, Scaffold Stellar y las skills para agentes resuelven uno cada uno.

Entrar con correo: Cavos

  • Login con correo o Google. Cavos le crea al usuario una cuenta Stellar normal (G…).
  • Sin extensiones ni 24 palabras. La llave vive en un espacio aislado: ni tu página ni Cavos pueden leerla.
  • Firma como cualquier wallet. Cuando hay que aprobar algo, Cavos muestra su propia ventana.
  • ¿Ya tenés Freighter? “Use a wallet” sigue funcionando.
Ventana de Cavos: Sign in to Scaffold Pura Vida, con Continuar con Google o con correo

Cómo funciona Cavos por dentro

1

Entrás con tu correote llega un código de 9 caracteres, o usás Google

2

Se calcula tu cuenta G…existe como dirección antes que on-chain

3

La llave vive en el vaultun iframe aislado en vault.cavos.xyz

4

La app pide firmarcon signXdr, igual que Freighter

5

El vault aprueba o preguntasegún los límites de la app

Tu página no ve la llave

Un error o una librería maliciosa en tu sitio no puede robarla.

Llamar a un contrato pide aprobación

El vault muestra qué se firma y en qué red.

Otro dispositivo

Se abre con una passkey o con recuperación en la nube, según cómo configures la app.

Plata con reglas: Trustless Work

Un escrow es un tercero neutral que guarda la plata y la suelta cuando se cumple lo acordado. Acá ese tercero es un contrato: nadie puede salir corriendo con la plata.

RolQué hace
Approveraprueba cada hito (el cliente)
Service providerentrega y marca hitos como hechos
Release signerlibera la plata
Dispute resolverdecide si hay desacuerdo

Single-release

Un solo pago al final. Compras, depósitos de alquiler.

Multi-release

Un pago por hito. Freelance, bounties, grants.

Trustless Work despliega un contrato (una dirección C…) por trato. Vos no escribís la lógica del escrow.

Un escrow, paso a paso

Ana
cliente
20
Escrow
contrato de Trustless Work
—
Luis
diseñador
0

Montos en USDC. La plataforma cobra 1% y Trustless Work 0.3%, descontados al liberar.

Parte 4

Scaffold Stellar y tu dApp

El andamio: Scaffold Stellar

1

Guardás tu contrato en Rust

2

Se compila a WebAssembly

3

Se despliega en testnet

4

Se genera un cliente TypeScript

5

Lo usás en React como cualquier librería

import { reputation } from "@stellar-scaffold/app-lib/clients"

const { result } = await reputation.score_of({ subject })

Todo eso pasa solo, cada vez que guardás, mientras corre npm start.

Scaffold Stellar es un proyecto open source de The Aha Company. Todo el taller está construido sobre él: stellarscaffold.org

El repo del taller: scaffold-stellar-agentic

  • Escrow Studio: crear, fondear, aprobar, liberar y disputar escrows.
  • Un contrato propio (contracts/reputation) desplegado en cada guardado.
  • Dos formas de entrar: correo con Cavos o Freighter.
  • Skills para agentes en .agents/skills.
  • Lo armé sobre Scaffold Stellar para que cualquiera pueda describir una idea y construirla.
Página de inicio de la app del repo: Sign in without a wallet, Escrows, Your own contract y Your agent

El checklist del Escrow Studio, con lo que ya sabés

Paso del checklistEl concepto detrás
Sign in o conectar una wallettu par de llaves y tu cuenta G…
Get test XLM (Friendbot)crea la cuenta y paga reserva y comisiones
Add a USDC trustlineaceptar el activo; 0.5 XLM de reserva
Get test USDC (swap)stablecoin, comprada en el DEX de la red
API key de Trustless Workla API que arma las transacciones del escrow
Escrow Studio con el checklist de cinco pasos y el formulario de nuevo escrow

Cómo encaja todo

Tu usuario Sign in correo o Google · Cavos Use a wallet Freighter, xBull… useWallet() una sola forma de firmar en toda la app Tus contratos Soroban Scaffold Stellar Escrows Trustless Work

No toda app necesita un escrow

Elegí una idea para ver qué piezas usa.

¿On-chain u off-chain?

On-chain

nadie puede alterarlo, pero es público para siempre

Off-chain

privado y editable, pero hay que confiar en quien lo guarda

Depende

el agente te explica las ventajas y te pregunta

Agentes que no adivinan

No se trata de escribir mejores prompts: se trata de darle al agente contexto verificado.

  • AGENTS.md: las reglas del proyecto, en un archivo que leen todos los agentes.
  • Skills: manuales cortos que el agente abre solo cuando los necesita.
  • npm run check: el agente verifica cada paso (tests, tipos, lint).
.agents/skills/
  build-dapp/        idea → app, paso a paso
  trustless-work/     escrows (solo si hacen falta)
  cavos/              login con correo
  scaffold-stellar/   contratos ↔ app
  soroban-contracts/  contratos en Rust
  stellar-basics/     conceptos y errores

Funciona con el agente que ya usás

AgenteCómo encuentra las skills
Claude CodeCLAUDE.md importa AGENTS.md; skills como /build-dapp
CodexAGENTS.md y .agents/skills; $build-dapp
Cursor, CopilotAGENTS.md y .agents/skills
Gemini, AntigravityAGENTS.md y .agents/skills
OpenCode, Pi y otrosAGENTS.md les dice qué archivo abrir

Una sola fuente

Las skills viven en .agents/skills (estándar abierto). Para las herramientas que buscan en otro lado hay copias sincronizadas, y si un agente no soporta skills, igual las lee porque AGENTS.md le dice dónde están.

Lo probamos con una sola frase

“Quiero una app para vender distintos artículos usando escrows”

  • contrato de publicaciones con 11 tests, en testnet
  • tres páginas: mercado, vender y mis pedidos
  • un escrow por compra, con roles bien puestos

Unos 17 minutos, npm run check en verde.

“Quiero hacer una aplicación de votaciones para encuestas”

  • no usó escrows: nadie guarda plata
  • preguntó: ¿voto abierto o secreto?, ¿quién puede votar?, ¿login con correo?
  • contrato con 12 tests y tres páginas en español

Unos 17 minutos, npm run check en verde.

Cada agente anotó dónde se trabó, y cada traba se corrigió en las skills que van a usar hoy.

Demo en vivo

  1. 1Sign in con correo
  2. 2Friendbot, trustline y USDC de prueba
  3. 3Un escrow completo en el Escrow Studio
  4. 4Le pedimos una app nueva al agente
/build-dapp Quiero una app de votaciones para mi comunidad: cualquiera crea una encuesta, cada persona vota una vez y se ven los resultados en vivo. Que la gente entre con su correo.

Mientras el agente trabaja: fijate cómo elige las piezas, qué te pregunta sobre on-chain y off-chain, y cómo verifica cada paso.

Manos a la obra

En GitHub: Use this template para crear tu propio repo, clonalo y corré:

npm run setup:tools
npm install
npm run doctor
npm start

En app/.env va el App ID de Cavos y, si tu idea usa escrows, la API key de Trustless Work. Los pasos están en el README.

github.com/bitfalt/scaffold-stellar-agentic

Ideas para hoy

Sin escrows

Encuestas y votacionescontrato
Libro de visitas de un eventocontrato
Insignias de asistenciaNFT
Propinas para creadorespago directo
Puntos de lealtadtoken

Con escrows

Depósito de alquilersingle-release
Clases prepagadasmulti-release
Bolsa de chambas con reseñasmulti + contrato
Bounties de hackathonmulti-release
Marketplace de segunda manosingle + contrato

Si algo falla

Ves estoSignifica
op_no_trustfalta la trustline de USDC
underfundedno hay saldo suficiente: Friendbot o swap
op_low_reserveno alcanza el saldo mínimo de la cuenta
Error(Contract, #3)el contrato rechazó la acción (error número 3)
network mismatchtu wallet no está en Testnet
Trustless Work 401falta o está mal la API key

Primero, esto

npm run doctor

Revisa herramientas, app/.env, la red y tus claves. Si no, buscá la transacción en stellar.expert o pegale el error a tu agente: tiene un decodificador de errores en las skills.

Glosario de bolsillo

¿Construiste algo? Mostralo

Compartí tu repo en Discussions → Show and tell del repositorio, con una captura de lo que hiciste.

Gracias a Scaffold Stellar (The Aha Company), la base de todo esto, y a Trustless Work y Cavos.

github.com/bitfalt/scaffold-stellar-agentic