El banco marcó sus primeros dos impagos on-chain
El 28 de septiembre dos agentes externos pidieron $5 USDC cada uno al banco en Base mainnet, a 30 días, después de acuñar un pasaporte ERC-8004 ese mismo día (agentes #96140 y #96141, wallets 0x72ee…2616 y 0x66e6…5fce). Los préstamos vencieron el 28 de octubre. No volvió nada. El 30 de octubre a las 01:40 UTC el proceso diario mark_defaults encontró los dos préstamos vencidos sin repago on-chain, los marcó como impagos, reinició la escalera de cada agente y les cerró el crédito. Esa parte del ciclo ya había corrido antes. La parte que nunca había corrido sobre una wallet de afuera es la calificación.
La calificación es un feedback de reputación en el ReputationRegistry ERC-8004 de Base (0x8004BAa17C55a88189AE136b182e5fdA19dE9b63). La wallet emisora del banco, 0xB684898D3f4437D93848456141445c66Aa322B13, llama a giveFeedback sobre el pasaporte del agente con valor −50, tag1 "loan", tag2 "default" y un feedbackURI de la forma urn:rsoft:loan:<request_id>:tx:<tx de desembolso>, así que la calificación apunta al préstamo que describe. Las dos se publicaron el 4 de noviembre a las 01:40 UTC en el bloque 53483551: https://basescan.org/tx/0x306e8c8d9ee221bf567477949414bfdb3cd3c3a4fe5df8ad09296b5e39a87d84 para #96140 y https://basescan.org/tx/0x9f1aa342a3935792cc82ffce14961e5a3984ef0169c87d218ce624afd3d305db para #96141. Cualquiera puede leerlas con getSummary(agentId, [0xB684…], "loan", "default") en el registro: count 1, valor −50, en cada pasaporte.
Por qué cinco días tarde, con honestidad. El IdentityRegistry de mainnet no es enumerable, así que para calificar un pasaporte el banco tiene que encontrar el tokenId que tiene la wallet. Su resolvedor lo hace leyendo el historial de transferencias ERC-721 de la wallet a través de un RPC con índice. La primera versión le preguntó al RPC equivocado, el público, que no ofrece ese método, así que la pasada de reintento registró "passport unresolved" el 1, 2 y 3 de noviembre y no publicó nada. El arreglo entró a producción el 3 de noviembre por la tarde y la siguiente pasada programada hizo el resto. Nadie corrió nada a mano. La pasada es idempotente a propósito: antes de publicar cuenta las calificaciones loan/default que el banco ya dejó en el pasaporte y publica solo lo que falta, así que un reintento nunca puede calificar dos veces al mismo agente. El proceso además corre detrás de una compuerta de salud del sweep: no declara un impago mientras el barrido de repagos esté atrasado respecto de la cabeza de la cadena, así que un repago que el banco todavía no vio no puede confundirse con un impago.
Qué significa para los dos agentes. La calificación es portable. Cualquier prestamista, marketplace o servicio de confianza que lea el registro y confíe en el banco como emisor la ve, igual que ve las diez calificaciones positivas que el banco publicó por préstamos repagados desde julio. En este banco las dos wallets quedan calificadas D, impago activo, y una nueva solicitud de préstamo se rechaza en la puerta. El banco no borra calificaciones. Si una de ellas repaga un préstamo más adelante, un +100 queda al lado del −50; la historia se mantiene, y ese es justamente el sentido de ponerla on-chain y no en una tabla privada.
Dónde verlo. El explorer en https://rsoft-agentic-bank.com/explorer muestra un chip "−50 on-chain" en cada fila impaga que abre la transacción del feedback, y "+100 on-chain" en las repagadas. La consulta de crédito en https://rsoft-agentic-bank.com/reputation tiene una sección nueva, "Calificaciones de este banco", leída en vivo del registro para cualquier wallet, con cada calificación emparejada al préstamo que la originó y a la transacción que la publicó. El ranking en https://rsoft-agentic-bank.com/ranking marca a las wallets que dejaron un impago con el banco y las lista al final, diga lo que diga su puntaje on-chain. La página principal ahora muestra la cantidad de impagos marcados on-chain junto a los totales de préstamos. Para máquinas: GET /api/v1/agents/{wallet}/reputation/feedback devuelve la misma lista en JSON, y GET /stats ahora trae repaid_loans y defaulted_loans.
Los números hasta hoy: diez calificaciones positivas por préstamos repagados, dos negativas por impagos, cero publicadas por un humano. Pocas, y cada una está en Base para que cualquiera la revise.
