RADIX WikiRADIX Wiki

Weft Finance is a decentralized lending and borrowing protocol built on Radix, written in Scrypto. At the heart of Weft lies the creation and management of collateralized debt positions (CDPs) represented by NFTs, known as ‘Wefties.’ It is one of Radix's core money markets, alongside Root Finance, and interoperates with DEXs such as Ociswap and CaviarNine.

Protocol status

Weft is the largest lending market on Radix and one of the two largest deployments on the network of any kind. As of 11 August 2026 DeFiLlama tracked about $296K in Weft V2 and a further $4.7K in the legacy V1 pools, a combined $301K against a Radix-wide DeFi total of roughly $1.07M — a little over a quarter of everything deposited on the network. Its own peak was $14.06M on 29 March 2025, so the protocol holds a far larger share of a far smaller market than it did a year ago. Its nearest documented peer, Root Finance, has fallen to roughly $1.2K over the same period.

The deposits are in active use rather than stranded: the V2 lending-pool component committed 70 transactions in the seven days to 11 August 2026, the most recent at 01:59 UTC that morning — supplies, borrows and repayments in XRD, LSULP and xUSDC.

The $WEFT token's supply is settled on-ledger and cannot grow. Read at epoch 333918, the resource carries a total supply of 99,999,000 WEFT with the minter rule set to deny_all and marked immutable, and the resource's rules locked; the burner rule is allow_all, so the supply can only ever fall. This is a fixed supply, not a cap the protocol is issuing towards.

History

Weft was founded by two Ivory Coast engineers, Yetinin Coulibaly and Atoumbré Kouassi. Living in different continents, with Coulibaly in Paris and Kouassi in Abidjan, they came together with a shared vision for financial innovation and economic development in Africa. Their collaboration began in 2021 when both became active members of the Radix Community. Despite having never met, the two engineers discovered a shared vision for the future and a strong alignment in values.

After meeting in person in Abidjan in fall 2022, they decided to form a partnership and build their first decentralized application (dApp) for lending and borrowing financial services. This led to the creation of Weft, aiming to harness the transformative potential of RadixDLT for the future of DeFi.

The platform is now developed by a team of seven individuals, collectively known as Weft'ers.

Weft V2

In 2024 Weft shipped Weft V2, a ground-up rebuild focused on capital efficiency and scale (announcement). V2 adds:

  • Efficiency Mode – higher borrowing power for correlated assets (e.g. stablecoin-to-stablecoin or XRD-to-LSU pairs).
  • Isolation Mode – risk-contained markets that let newer or more volatile assets be listed without endangering the core pools.
  • Advanced collateral – support for Liquid Stake Units (LSUs), LSULP, and DEX LP tokens as collateral.
  • Configuration buffering – parameter changes are staged so existing loans stay stable through re-configuration.

V2 lends and borrows XRD, LSULP, xUSDC, WEFT and other Radix ecosystem assets; live markets and rates are on the Weft V2 app, with protocol metrics tracked on DefiLlama.

Features

Weft offers several key features to facilitate lending and borrowing of digital assets:

  • Lending Pools: Weft utilizes lending pools that hold assets deposited by lenders. Each pool is designated for a specific asset type. Lenders receive deposit units representing their share of the pool.
  • Loan Units: Borrowed amounts are tracked using loan units, which reflect a borrower's share of debt obligation. Interest accrual is handled through the loan unit system.
  • Interest Rate Strategies: Interest rates are set dynamically based on lending pool usage through predefined interest rate strategies. This allows rates to adapt to market conditions.
  • Borrowing Power Delegation: Users can delegate their borrowing power by minting a linked "delegated Weftie" NFT and sending it to another user. The recipient can then borrow without needing collateral.
  • Liquidations: Loans with insufficient collateral can be liquidated by external entities or automatically. This sells collateral to repay loans and brings loan-to-value ratios back into a healthy range.
  • User Positions Operations: Weft supports position modifications like collateral swaps and direct loan repayment using collateral ("self-liquidation").

The system is designed to be flexible, secure, and capture the nuances of each loan through use of the non-fungible Wefties.

Components

Weft Finance relies on several key components to enable its lending and borrowing functionality:

Lending Pools

  • Hold assets deposited by lenders and act as reserves for borrowers
  • Each pool is for a specific asset type (e.g. $XRD)
  • Mint deposit units to track lenders' shares
  • Manage accrued interest on loans
  • Provide flash loans

Lending Market

  • Acts as the interface between lenders/borrowers and lending pools
  • Handles borrowing, repaying loans, liquidations, withdrawals
  • Ensures security through badges and access rules
  • Validates and extends Wefties to enable pool interactions

Wefties

  • NFTs that contain users' collateral & loan positions
  • Secure metadata that stores deposit unit collateral amounts and loan unit borrowed amounts
  • Controls enforced by Lending Market badge

$WEFT Token

  • Last resort protection against market volatility risks
  • Stakers can deposit $WEFT to mitigate potential insolvencies
  • Stakers earn a portion of collected fees as insurance premiums

This modular architecture maximizes flexibility and security of lending operations.

Operations

Weft supports several key operations for lenders and borrowers:

Lending

  • Users contribute assets to lending pools
  • They receive deposit units representing pool shares
  • Deposit units can be redeemed for assets

Borrowing

  • Validates the Weftie NFT and extends it
  • Executes borrowing order through pool interactions
  • Performs health checks on loans and updates Weftie

Interest Accrual

  • Interest rates set dynamically based on pool usage
  • Accrued by increasing total borrowed amount
  • Deposit and loan units remain constant

Revenue

  • Collected from loan interest, flash loan fees, liquidation bonuses
  • Shared between operations costs and insurance module

Insurance Module

  • Accepts staked WEFT tokens
  • Tokens sold to cover losses in extreme situations
  • Stakers earn portion of revenue as insurance premium

Weft aims to make lending and borrowing as seamless as possible while keeping operations decentralized and secure.

Roadmap

Weft Finance has laid out a roadmap to drive the growth and adoption of its lending and borrowing platform:

Q3 2023

  • ✅ Launched validator node, distributing $WEFT tokens to stakers
  • ✅ Introduced Weft Alpha version on testnets for early feedback

Q4 2023

  • ✅ Initiated $WEFT token listing and liquidity mining incentives
  • ✅ Released Beta version on updated testnet after Babylon launch
  • ✅ Started auditing Scrypto code prior to mainnet
  • ✅ Launched mainnet MVP after completing audits
  • ✅ Introduced Weft staking and early adopter incentives

2024

  • Planning interface upgrades and mobile app launch
  • Transitioning towards a DAO model by end of 2024

2024–2025

  • ✅ Shipped Weft V2 – Efficiency/Isolation modes and advanced collateral.
  • Scaling total value locked and expanding supported assets and liquidity incentives.
  • Continued progress toward decentralising the protocol into a DAO.

The roadmap focuses on iterative community-driven development, testing, and upgrades to eventually decentralize Weft into a DAO. Live protocol metrics are published on DefiLlama.

Team

Atoumbré Kouassi

With a Master's degree in Applied Statistics and Economy, Kouassi has had a successful career in support service management in Abidjan. A dedicated professional, Kouassi has been following and experimenting with blockchain technology since 2013. His search for an efficient distributed ledger technology led him to discover Radix DLT, which would become the foundation for Weft.

Yetinin Coulibaly

A master in Embedded Electronics and Industrial Computing, Coulibaly is a lead developer based in Paris. He has a strong entrepreneurial spirit, having instigated a Senegal-based startup that provided digital ticketing solutions for transportation and event sectors. Coulibaly's drive and interest in blockchain technology eventually led him to join the Radix Community and embark on the journey of co-founding Weft.

Zivile

Community Manager

Penifana

Frontend Developer

Roland

Backend Developer

Maxence

Project Manager

Amadou

PhD Advisor providing research guidance

The 30 August 2026 exploit

At 18:02:58 UTC on 30 August 2026 one transaction took 47,280,000 LSULP and 13,100,500 XRD out of the Weft V2 lending pool. The collateral posted against that debt was 539,703.17 HUG, a Radix memecoin the same transaction had bought for 70.6 XRD.

How it worked

The manifest reduces to seven steps:

  1. Withdraw 70.6 XRD from the account.
  2. Call create_cdp with a bucket holding zero XRD, minting an empty Weftie V2 position, #1138#.
  3. Swap the 70.6 XRD for 539,703.17 HUG on an Ociswap two-sided pool.
  4. Call flash_remove_collateral on the new position with an empty map. It removes nothing and returns a transient receipt.
  5. Call flash_add_collateral, handing back that receipt together with the whole worktop, which by then holds the HUG.
  6. Call borrow for 47,280,000 LSULP and 13,100,500 XRD.
  7. Deposit the proceeds to the account.

The borrow passed Weft's health check. The position it left behind still reads on ledger: 539,703.17 HUG of collateral against 47,202,060.79 LSULP and 11,877,595.35 XRD of loan units. HUG has been a listed collateral on Weft since November 2024, so no unlisted asset was forced into the market. The valuation is what failed, and Weft’s own price cache records it. At the moment of the borrow the market held HUG at 1,330.41 XRD per token. HUG traded that day at 0.000131 XRD, the rate the attacker paid in step 3. On the cached figure the 539,703 HUG scanned as about 718 million XRD of collateral, so drawing 71 million XRD of debt against it cleared the health check at an apparent loan-to-value near 10 per cent. The flash-collateral pair in steps 4 and 5 is not incidental. Weft had disabled HUG as collateral fifteen months earlier, and that pair is the route that did not check.

The price feed

Weft reads HUG from the feed it registers as "Default PriceFeed" (component), which carries 27 resources. Every other price checked against the market holds up. Read at 19:55 UTC on 30 August the same feed put hWBTC at 92,747,211 XRD, about $78,300 against a market of $79,200, hUSDC at 1,176.45 XRD, about $0.99, and LSULP at 1.2241 XRD. HUG alone sits at roughly $1.07, the band the feed uses for dollar stablecoins, against a real price of $0.000000108. The error is one asset wide and about ten million times deep.

It is live rather than stale. The feed refreshed HUG at 19:55 UTC in the same batch as every other asset it carries, and published 1,271.80 XRD. Weft accepts a posted price for four hours after it lands, and CreateCDP was still enabled and unlocked when this was read at 20:00 UTC.

It began on 28 August 2026 at 12:35:17 UTC, in an ordinary ten-minute refresh (transaction, state version 556,254,628). In the update immediately before it the feed carried HUG at 0.000131085370299542 XRD; in this one it carried 1289.783156723014634465. That first figure is the same to the last digit in every batch sampled between 1 and 28 August, so HUG was a fixed entry rather than a quoted one until this update moved it into the band the feed uses for dollar assets, after which it drifted with them on each cycle. From that write to the borrow is 53 hours and 28 minutes, and 324 further transactions touched the component in between. Each carried a current timestamp, so a consumer checking only staleness would have accepted every one of them; the last, at 17:55:53 on 30 August, published 1,330.41 XRD. The general lesson for builders reading a feed is set out on Oracle Integration.

Where the money went

The attacker sold the borrowed LSULP for XRD across a spread of pools in two trades, 47,000,000 LSULP at 18:16 and 277,000 at 18:45, realising 14,103,362 XRD. With the borrowed XRD that comes to 27,203,791 XRD, about $23,000 at the Ociswap spot price of $0.000844 that evening. Selling into thin liquidity cost about half the value. CaviarNine’s LSULP traded at 0.905 XRD that evening, which puts the borrowed assets at roughly 55.9 million XRD, and the attacker realised 27.2 million by pushing 47 million LSULP through a book that could not absorb them.

The proceeds left Radix through a Hyperlane Warp Route in four transfers between 18:06 and 18:47: 13,000,000 XRD, then 133,000, then 14,000,000, then 102,000. Three further attempts to move 14,000,000 XRD failed on insufficient balance at 18:21. The account now holds 3,000 LSULP and 720 XRD.

What it left

The lending pool's LSULP fell from 51,051,122.67, the figure read here at epoch 336,462 on 19 August, to 3,624,492.41 at epoch 339,588 on 30 August. Seven positions belonging to other borrowers were liquidated in the 54 minutes after the exploit, against a baseline of about 70 transactions across the whole week to 11 August. Deposits kept arriving through the evening, including single supplies of 660,000 and 500,000 XRD after 19:00.

Read at 19:40 UTC on 30 August there was no on-ledger remediation: no configuration change, no pause, no repayment, and Weft has published no statement. Anyone holding a Weft position can read its current state straight from the lending market component, and the protocol's own account of what its risk model is meant to cover is in its risk documentation.

Five hours on

Read again at 23:07 UTC on 30 August, epoch 339,630, nothing had yet been switched off. CreateCDP, UpdateCDP and BurnCDP all report enabled and unlocked on the lending market, and can_borrow, can_create_cdp and can_flash_borrow are still allow_all. The market’s cdp_counter stands at 1,138, the position the exploit opened: no one has opened another in the five hours since.

The feed had not been corrected at that hour, and it was still being written to. At 23:05:00 UTC the Default PriceFeed refreshed HUG and published 1,275.05 XRD per token, two minutes before this reading. HUG traded at 0.000127565 XRD on Ociswap at the same moment, so the published price is about ten million times the market. The market’s price_expiration_period is 14,400 seconds, so the posted price that released 71 million XRD of debt is current rather than expired.

What has changed is the pool, and the change is lenders leaving. The Weft Lending Pool V2 held 3,624,492.41 LSULP at epoch 339,588 and 201,613.22 at epoch 339,630, alongside 774,245.75 XRD and 34.75 hUSDC. Eight transactions touched the market component between 19:40 and 23:07 UTC; every one moved assets out to a user account, and none changed a configuration.

No statement had been published by 23:00 UTC. A search of the seven days to that reading returns nothing from @weft_finance, and the project’s Telegram channel carries only questions from holders.

The statement, and the disabled-collateral list

Weft published its first account of the incident at 23:49 UTC on 30 August, in its Telegram channel, five hours and forty-six minutes after the borrow. It names three concurrent factors: that HUG collateral was “missing from the disabled-collateral list”, that one oracle source returned an incorrect price after the other sources failed, and that the protocol accepted that price. It commits to a two-week interest-free period and to setting all ecosystem token prices to 0.0000000001 XRD.

The ledger does not support the first factor. The lending market keeps four collateral services per resource – Add, Remove, FlashOperation and RemoveForLiquidation – each with its own enabled and locked flags. HUG’s Add service was set to enabled=false, locked=true by the protocol’s admin badge on 6 June 2025 at 08:40:27 UTC (transaction), at state version 303,390,813. Read back at 18:02 UTC on 30 August, the minute of the borrow, the entry still carried that write and no other. HUG was on the disabled list, and had been for 451 days.

What was open is the neighbouring service. At that same instant HUG’s FlashOperation read enabled=true and unlocked, and steps 4 and 5 of the manifest are flash_remove_collateral and flash_add_collateral rather than add_collateral. The transaction committed while the Add entry read disabled and locked, so whatever the flash path checks, it is not that entry. The asset was listed and switched off; the door it came through was a different one.

The same reading explains the size of the loss. An hour before the borrow only XRD and LSULP had their Borrow service enabled: xUSDC, xUSDT, xETH and xwBTC were disabled and locked, and the five Hyperlane assets were disabled. The attacker drew 47,280,000 LSULP and 13,100,500 XRD, which is everything the market would lend.

The remediation, hour by hour

  • 23:23:32 UTC, 30 August. The admin badge calls admin_update_service_status on HUG’s collateral entry (transaction), setting Add to enabled=false with locked=false. The asset stays disabled and the entry, locked since June 2025, is now unlocked. FlashOperation was not touched, and still read enabled=true at 03:11 UTC on 31 August.
  • 23:25:00 UTC. The Default PriceFeed publishes HUG at 0.000127565 XRD, the market rate. Its last overstated print was 1,275.83 XRD at 23:15:00, so the ten-million-fold error stood for five hours and twelve minutes after the borrow.
  • 23:49 UTC. The statement above.
  • 00:15:00 UTC, 31 August. The feed floors ten Radix-native tokens at 0.0000000001 XRD in one batch – HUG, OCI, CAVIAR, WEFT, EARLY, ASTRL, FLOOP, DFP2, MOX and SRG – the measure the statement had promised for “tomorrow”. It includes Weft’s own token. LSULP was left at 1.2242 XRD and HLP at 2.3340.
  • 03:05:29 UTC. The admin badge disables LSULP’s Borrow service and locks it (transaction). XRD is now the only asset the market will lend.

The pool the borrow drew from is empty. The Weft Lending Pool V2 held 774,245.75 XRD and 201,613.22 LSULP at 23:07 UTC on 30 August, 14,894.01 and 1,073.47 at 00:30, and 123.55 XRD, 1,073.47 LSULP and 0.21 hUSDC when read at 03:10 UTC on 31 August. Lenders withdrew what the attacker had not borrowed. Six liquidations ran against the market between 23:35 and 00:25 UTC, and the cdp_counter still stands at 1,138 – the position the exploit opened, and no other in the nine hours since. Figures read from the Radix Gateway at epoch 339,679.

The second incident, thirteen hours later

At 16:02 UTC on 31 August, thirteen hours after the last remediation transaction above, a separate attacker began emptying every Hyperlane-bridged asset held on Radix. Twenty-six transactions in under an hour took the whole supply of hUSDC, hUSDT, hETH, hWBTC, hSOL and hBNB out of accounts and pools across the network and bridged it away. The method has nothing in common with the exploit above: it needed no oracle, no price feed and no lending market, and it produced no borrow position. What the two share is the exit, since both attackers left over a Hyperlane warp route.

Weft held 0.21 hUSDC in its lending pool when that pool was read at 03:10 UTC, so the second incident took effectively nothing further from the protocol. It removes the reserve currency the market would have restarted against: the four wrapped assets the page lists as disabled and locked collateral no longer exist on Radix in any quantity.

LSULP exposure and the CaviarNine wind-down

Weft's support for LSULP as collateral, listed under Weft V2 above, makes it the protocol most exposed to CaviarNine's announced departure from Radix on 19 August 2026. LSULP is the pool unit of CaviarNine's LSU Pool, and the size of Weft's position in it is a ledger fact rather than an estimate.

Read live from the Radix Gateway at epoch 336,462 (19 August 2026, 23:07 UTC), three Weft components hold LSULP:

That is 62,410,923.97 LSULP against a total supply of 263,942,458.9023.6% of every LSU Pool unit in existence, held by one protocol, and LSULP has 940 holders. Weft is the single largest external holder of LSULP on the network; the next largest is the RSwap LSULP/DCKS pool at 17,293,134.15 (6.5%), and Stabilis holds a further 1,053,413.26.

The exposure is to the front end, not to the balances. LSULP's freezer and recaller rules are both deny_all and immutable, with the resource's rules locked, so a departing operator cannot freeze or claw back what Weft's pools hold, and the LSU Pool's contracts stay callable on ledger whatever happens to caviarnine.io. What a wind-down changes is the depth available to price and liquidate that collateral: Weft's liquidations rely on being able to move LSULP, and CaviarNine's own venues carried the great majority of Radix on-chain volume up to the announcement. As of that reading Weft had published no statement on the collateral listing.

The exposure resolved eleven days later, by a route this section did not anticipate. The LSULP left in a single borrow on 30 August rather than through a collapse in the depth available to price it, and the balances above are now historical. See the exploit section above.

ShardSpace AdminLast updated Sep 1, 2026v4.9.322 revisionsVerified Aug 31, 2026