Aave Horizon RWA Market
Aave Horizon is an Aave Labs initiative: a licensed, separate instance of the Aave Protocol, initially forked from V3.3, that creates a market for Real-World Assets (RWAs) for institutional and qualified participants. Users supply permissioned, tokenized RWAs as collateral and borrow permissionless stablecoins. Asset types and user roles are kept separate, so institutions stay compliant while accessing the capital efficiency and liquidity of decentralized finance (DeFi).
RWA collateral is permissioned: only qualified users allowlisted by the RWA issuers can supply it. Compliance is enforced at the asset level by the RWA token’s native smart contract, so only approved participants can interact with these regulated assets. The stablecoin liquidity pools for USDC, RLUSD, and GHO are permissionless, with no restrictions for liquidity providers.
Only users who supply permissioned RWA collateral can borrow from the permissionless stablecoin pools. This lets institutions use regulated assets to access DeFi liquidity.
Supplying RWA Collateral
Participation starts by supplying tokenized RWAs as collateral, exclusively for users the RWA’s issuer has qualified and allowlisted. Qualification typically follows standard institutional onboarding: identity verification, compliance checks, and agreement to terms and conditions.
Supplied RWAs are collateral only and cannot be borrowed by other participants. Suppliers receive aTokens representing the collateral position. These receipt tokens are non-transferable, so the collateral position stays with the original supplier. This prevents secondary-market trading of collateral positions and preserves the permissioning system.
Collateral value comes from established pricing mechanisms that account for each RWA type’s characteristics. Risk parameters, including loan-to-value ratios and liquidation thresholds, follow the underlying asset’s risk profile and regulatory requirements.
Borrowing Stablecoins
The primary borrowable assets are permissionless stablecoins such as USDC, RLUSD, and GHO. Any participant can supply them to earn yield. Stablecoins cannot be used as collateral, which keeps the permissioned collateral side distinct from the permissionless liquidity side.
Borrowing is therefore exclusively available to users who have supplied and enabled RWA collateral, so regulated, permissioned assets access permissionless liquidity. Borrowing follows standard Aave Protocol mechanics, with interest rates set by utilization curves and market dynamics.
Borrowers must maintain adequate collateralization ratios under their RWA collateral’s risk parameters. The system continuously monitors these ratios and may trigger liquidation if positions become under-collateralized, with liquidation mechanisms adapted to RWA collateral.
RWA Price Oracle Safeguards
Unlike crypto-native assets priced by decentralized exchange markets, RWAs rely on a Net Asset Value (NAV) reported directly by the issuer. This creates a critical risk: delayed, inaccurate, or malicious reporting. An operational error or malicious act could publish an incorrect NAV onchain and trigger faulty liquidations across the market. An emergency multisig can freeze the reserve, but only reactively, leaving a window where allowlisted liquidators could exploit a faulty price and cause irreparable harm to borrowers.
Aave Horizon mitigates this with an automated safeguard at the oracle level. With Chainlink and LlamaRisk, upper and lower price bounds are configured for each RWA price feed at the Decentralized Oracle Network (DON) level. When an issuer reports a new NAV, the Chainlink DON validates it against these bounds before publishing it onchain. Within the bounds, the update is accepted. Outside them, the DON rejects the update and the oracle keeps reporting the last valid price. This prevents a faulty price from reaching the protocol and eliminates erroneous liquidations. Any breach of the bounds also triggers a time-sensitive reaction from Aave Horizon’s emergency multisig, which prevents new loan originations and additional exposure until the root cause analysis is complete.
Administrative Functions and Edge Case Management
The market provides mechanisms for account recovery and management in exceptional circumstances, facilitated by the RWA issuers. These administrative functions are essential for institutional participation, giving resolution paths for complex scenarios in regulated environments.
For example, if a user loses their private keys, the issuer can migrate the user’s entire collateral and borrow position to a new, secure wallet. This preserves market integrity while giving institutions operational flexibility.
An issuer may also be legally required to secure a position. For example, issuers can prevent a user from increasing their borrow position while coordinating a resolution, preserving the market’s collateralization and compliance.
The administrative framework is transparent and accountable, with clear governance determining how these powers are exercised. Institutions can trust their interests are protected while the protocol stays decentralized.
For Rwa functions and roles, see the tokenization documentation.
For Aave Horizon RWA Market governance, see access controls.
Integrations
Aave Horizon is fully compatible with AaveKit API methods. Follow the getting started guides to integrate Aave programmatically and specify the Aave Horizon Pool address, as in the query examples below.
import { useAaveMarket, chainId, evmAddress } from "@aave/react";
function HorizonMarketData() {
// Query Aave Horizon market data
const {
data: horizonMarketData,
loading,
error,
} = useAaveMarket({
address: evmAddress("0xAe05Cd22df81871bc7cC2a04BeCfb516bFe332C8"), // Aave Horizon Pool address
chainId: chainId(1),
});
if (loading) return <p>Loading…</p>;
if (error) return <p>{error.message}</p>;
return <p>{horizonMarketData?.name}</p>;
}
import { AaveClient, chainId, evmAddress } from "@aave/client";
import { market } from "@aave/client/actions";
const client = AaveClient.create();
// Query Aave Horizon market data
const horizonMarketData = await market(client, {
address: evmAddress("0xAe05Cd22df81871bc7cC2a04BeCfb516bFe332C8"), // Aave Horizon Pool address
chainId: chainId(1),
});
query HorizonMarketData {
market(
request: {
address: "0xAe05Cd22df81871bc7cC2a04BeCfb516bFe332C8" # Aave Horizon Pool address
chainId: 1
}
) {
name
chain {
name
chainId
}
address
totalMarketSize
totalAvailableLiquidity
reserves {
underlyingToken {
symbol
name
address
}
supplyInfo {
apy {
formatted
}
canBeCollateral
}
borrowInfo {
apy {
formatted
}
}
}
}
}
