Use a proven model
Giwalend follows the Aave V3 model instead of creating a new lending system.
Giwalend is a lending market built from Aave V3. Supply assets to earn interest, or borrow assets using your supply as collateral. Giwalend uses Pyth for prices on the Giwa network.
Addresses and parameters describe the current Giwa Testnet snapshot. Verify the on-chain state before interacting. This is not financial advice.
Design principles
Giwalend follows the Aave V3 model instead of creating a new lending system.
The first market focuses on supplying, borrowing, risk controls, and clear monitoring.
The market supports supply, variable-rate borrowing, flash loans, E-Mode, caps, and liquidations.
Incentive emissions, a native governance token, a native stablecoin, Portal / Bridge flows, and Oracle Sentinel are not active components of the initial Giwa deployment.
Users interact with the Pool. Each reserve holds one asset, such as WETH or USDC. When you supply an asset, you receive an interest-bearing token. When you borrow, a debt token records what you owe. Giwalend starts with Aave V3's standard L2Pool.
PoolAddressesProvider keeps the addresses of the active Pool, oracle, and other services. This lets the system upgrade selected parts without changing the address users call.
사용자는 Pool과 상호작용합니다. 각 reserve는 WETH나 USDC 같은 하나의 자산을 보관합니다. 자산을 공급하면 이자가 붙는 토큰을 받고, 빌리면 빌린 금액을 기록하는 debt token이 생깁니다. Giwalend는 Aave V3의 표준 L2Pool로 시작합니다.
PoolAddressesProvider는 현재 사용 중인 Pool·오라클·기타 서비스의 주소를 관리합니다. 덕분에 사용자가 호출하는 주소를 바꾸지 않고 일부 구현을 업그레이드할 수 있습니다.
Aave-compatible interfaces are familiar to wallets, dashboards, and liquidation tooling.
Unused rewards, governance, and bridge components are not part of initial market operation.
Deployment review checks oracle state, reserve parameters, token metadata, and implementations.
The current Giwa Testnet market has six reserves. These are testnet assets for development and integration testing. Their availability, liquidity, and risk settings can change.
현재 Giwa 테스트넷 시장에는 6개의 reserve가 있습니다. 모두 개발과 연동 테스트를 위한 테스트넷 자산이며, 사용 가능 여부·유동성·위험 설정은 바뀔 수 있습니다.
| Asset | Decimals | Role | Oracle |
|---|---|---|---|
| WETH | 18 | Collateral / borrowable | Pyth |
| WBTC | 8 | Collateral / borrowable | Pyth |
| USDC | 6 | Collateral / borrowable | Pyth |
| USDT | 6 | Collateral / borrowable | Pyth |
| WXRP | 6 | Collateral / borrowable | Pyth |
| WSOL | 9 | Collateral / borrowable | Pyth |
Read PoolDataProvider or UiPoolDataProviderV3 for the current active, frozen, paused, cap, and oracle state. This table is only a documentation snapshot.
An oracle supplies the prices used by the lending market. Giwalend uses Pyth because the Giwa network does not have the Chainlink feeds used by a standard Aave deployment. Each asset is linked to one Pyth feed ID in AaveOracle.
The oracle checks that a price is recent and greater than zero. maxAge sets how old a price may be; an asset with no special value uses the global default. USD prices are converted to the protocol's 1e8 format.
오라클은 렌딩 시장이 사용할 가격을 제공합니다. Giwa 네트워크에는 표준 Aave 배포에서 사용하는 Chainlink feed가 없기 때문에 Giwalend는 Pyth를 사용합니다. 각 자산은 AaveOracle에서 하나의 Pyth feed ID와 연결됩니다.
오라클은 가격이 최신인지, 0보다 큰지 확인합니다. maxAge는 가격을 얼마 동안 사용할 수 있는지를 정하며, 별도 값이 없으면 전역 기본값을 사용합니다. USD 가격은 프로토콜이 사용하는 1e8 형식으로 바꿉니다.
| Asset | Pyth feed ID | maxAge |
|---|---|---|
| WETH | 0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace | 60s global default |
| WBTC | 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43 | 60s global default |
| USDC | 0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a | 60s global default |
| USDT | 0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b | 60s global default |
| WXRP | 0xec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8 | 60s global default |
| WSOL | 0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d | 60s global default |
A stale Pyth update causes the price read to revert. Lending fails closed rather than using a price of unknown age.
Confidence is available to the updater and monitoring stack, but the current lending calculation uses the validated price and freshness policy.
Risk parameters determine collateral power, liquidation eligibility, and market exposure. Giwalend keeps these controls in the PoolConfigurator layer and reviews them per asset.
위험 파라미터는 담보 능력, 청산 대상 여부, 시장 노출을 결정합니다. Giwalend는 이 제어를 PoolConfigurator 레이어에 두고 자산별로 검수합니다.
| Asset | LTV | LT | Liquidation bonus | Reserve factor |
|---|---|---|---|---|
| WETH | 80% | 83% | 10% | 20% |
| WBTC | 70% | 75% | 10% | 50% |
| USDC | 75% | 80% | 7% | 10% |
| USDT | 75% | 80% | 7% | 10% |
| WXRP | 62% | 65% | 10% | 25% |
| WSOL | 65% | 70% | 10% | 25% |
Maximum borrow value against collateral.
Weighted threshold at which a position can be liquidated.
Current testnet config uses 0 for supply and borrow caps, meaning no cap is configured.
Isolation Mode and E-Mode follow the Aave V3 configuration model where enabled.
Stable debt tokens exist for interface compatibility, but stable-rate borrowing is disabled for every reserve. Variable-rate borrowing is supported.
Giwalend uses the Aave V3 liquidation engine. A position becomes eligible when its Health Factor falls below 1.0. A permissionless liquidator repays eligible debt and receives collateral at the configured bonus, subject to close-factor rules.
Giwalend는 Aave V3 청산 엔진을 사용합니다. Health Factor가 1.0 미만이면 포지션은 청산 대상이 됩니다. 누구나 청산 가능한 부채를 상환하고 close-factor 규칙에 따라 설정된 보너스가 반영된 담보를 받을 수 있습니다.
Each reserve uses a variable rate strategy with a kink at optimal utilization. Before the kink, borrow rates rise gradually; above it, the second slope rises sharply to attract liquidity and discourage borrowing.
WETH, WBTC, WXRP, and WSOL use the volatile-asset strategy. USDC and USDT use the stable-coin strategy. Stable-rate slopes are zero because stable borrowing is disabled.
각 reserve는 optimal utilization에서 꺾이는 variable rate strategy를 사용합니다. 꺾이는 지점 전에는 borrow rate가 완만히 오르고, 이후에는 두 번째 slope가 급격히 증가해 유동성 공급을 유도하고 차입을 억제합니다.
WETH·WBTC·WXRP·WSOL은 변동성 자산 전략을, USDC·USDT는 stable-coin 전략을 사용합니다. Stable borrowing이 비활성화되어 stable-rate slope는 0입니다.
| Strategy | Assets | Optimal usage | Slopes |
|---|---|---|---|
| rateStrategyWETHWBTC | WETH · WBTC · WXRP · WSOL | 80% | 5% / 100% |
| rateStrategyStableCoins | USDC · USDT | 92% | 9% / 80% |
Administrative permissions follow the Aave ACL model. Roles are assigned through ACLManager and consumed by PoolConfigurator, the oracle, and emergency controls. The testnet starts with an administrator for bootstrapping; production should move control to a managed multisig or governance executor.
관리 권한은 Aave ACL 모델을 따릅니다. 역할은 ACLManager를 통해 부여되며 PoolConfigurator·오라클·emergency 제어에서 사용됩니다. 테스트넷은 부트스트랩을 위해 관리자 주소로 시작하고, 본배포에서는 관리되는 multisig 또는 governance executor로 권한을 이전해야 합니다.
Reserve configuration, implementations, oracle settings, and market controls.
Applies approved LTV, liquidation, cap, and rate policy.
Registers assets and feeds before reserve initialization.
Pauses or freezes activity according to emergency policy.
Security is a core design priority. Giwalend keeps Aave V3 core changes minimal, makes the Pyth path explicit, and combines freshness checks, role separation, monitoring, and emergency controls.
보안은 핵심 설계 원칙입니다. Giwalend는 Aave V3 core 변경을 최소화하고 Pyth 경로를 명확히 하며, 최신성 검증·역할 분리·모니터링·emergency 제어를 함께 사용합니다.
Stale or missing oracle data stops price-dependent operations.
Track feed freshness, confidence, publisher health, utilization, and liquidations.
Use per-asset parameters, caps, pause/freeze controls, and role separation.
Giwalend is an independent deployment based on Aave V3. It is not the Aave DAO or an official Aave deployment.
Giwalend는 Aave V3 기반의 독립 배포입니다. Aave DAO나 공식 Aave 배포가 아닙니다.
The target network does not have the Chainlink feeds expected by the standard deployment. Pyth feed IDs are configured per reserve.
대상 네트워크에 표준 배포가 기대하는 Chainlink feed가 없습니다. Pyth feed ID를 reserve별로 설정합니다.
No. Stable-rate borrowing is disabled for all current reserves. Variable-rate borrowing is supported.
아니요. 현재 모든 reserve에서 stable-rate borrowing이 비활성화되어 있습니다. Variable-rate borrowing을 지원합니다.
getPriceNoOlderThan reverts. The updater must publish a fresh update before price-dependent operations continue.
getPriceNoOlderThan가 revert됩니다. 가격 의존 작업을 재개하려면 updater가 새 업데이트를 publish해야 합니다.
No. They are a testnet snapshot. Production values need market data, risk review, monitoring, and governance approval.
아니요. 테스트넷 스냅샷입니다. 본배포 값에는 시장 데이터·risk review·모니터링·거버넌스 승인이 필요합니다.
Deployment artifacts are the source of truth for ABI and constructor data. Applications should resolve active Pool and oracle addresses through PoolAddressesProvider where possible.
ABI와 constructor 데이터의 기준은 배포 artifact입니다. 애플리케이션은 가능한 경우 PoolAddressesProvider를 통해 활성 Pool과 오라클 주소를 조회해야 합니다.
| Contract | Address | Explorer |
|---|---|---|
| PoolAddressesProviderRegistry | 0x4DB41B7eE9b50Cb565Eb511c6477179bd7b85500 | ↗ |
| PoolAddressesProvider | 0xEccE677167dD47e33c13214f816cc6a2d5E900E8 | ↗ |
| PoolProxy | 0x2C1282E612eFF73F61340fA1E93d92EE0EBCcB2C | ↗ |
| L2Pool-Implementation | 0x2d254F4a901483dA5A984e14385E9323C027324c | ↗ |
| PoolConfiguratorProxy | 0x4E83E073276bE99893e5253776E822FF2B64e7ba | ↗ |
| ACLManager | 0x4F529DCd176D751bE49256bDA0ab934CCBbd967D | ↗ |
| PoolDataProvider | 0x1b9deA3766d1fF53375837A4d12EF6955a2eC1f5 | ↗ |
| AaveOracle | 0x2e630e4fdd86547BbB965Eb02C7f3783698B738c | ↗ |
| UiPoolDataProviderV3 | 0x6CE702cf62995a4417Fbd1fAB2682fa92Fd547ba | ↗ |
| UiPoolDataProviderPriceAdapter | 0xcea7fc3d4f30bbc9a04503d3b8135F78f788Ea53 | ↗ |
| UiIncentiveDataProviderV3 | 0x35B257375049EDAD646D2CB569A1Ba5973671C3f | ↗ |
| WalletBalanceProvider | 0x056078948bFCAA736c70e6244f2BBfD69c783de2 | ↗ |
| WrappedTokenGatewayV3 | 0x10d7574cbca5A33D63beE86FA5c226e3C8e58ee3 | ↗ |
| TestTokensFaucet | 0xbddA7eC4302F4dfB617Cf122821d0EdBD1970315 | ↗ |
| Asset | Underlying | aToken | Variable debt |
|---|---|---|---|
| WETH | 0x4200000000000000000000000000000000000006 | 0xE196206B972cA97EC055AFFf139c31AA80518da9 | 0x3E43566016C25B610B0a154F34906E43F7C655b8 |
| WBTC | 0xCCCfe101020C83c5a1Ba2CD5Cf52B49F61295c47 | 0x98051c85eC94374a9641Fef53E8479E43d46FD95 | 0xCaA85cfC708b2627E184779B0ad741A20E3a1c7E |
| USDC | 0x620584625b374cfe9A1A5cD06457E7B8152a6e65 | 0x70A9125a5a2C312220d64Ed3dd714fF8fED543fd | 0x038b9Fe02Ee6F0e3d0d30f27F51b803204dfbB95 |
| USDT | 0x77b66f495306610C8406a55BD5452c3EA306AfF6 | 0xB777B39075B2797DA701b04d4A7e66F8aCE60997 | 0x0FC30Ca1D128f7f83dEf30A8260E62b1A6a1b967 |
| WXRP | 0x5D11FB441425A800BaD9e8DC4f76Fe0AD0E76C1C | 0x2b40936bA27f8F4C6d941966280fAC3bCE22f52F | 0x34152c63ffA90d0456932D343749741388A6A2Be |
| WSOL | 0x3Decb81E7b7E3FDE4ae81B03ABf65FA96a0B88AE | 0xa7e4f0906c4BcB6E01b1047Ccf613568196F3e7A | 0x6b53f4EBaCEeEB9AB363b947d8BD5C8B07f85923 |
Deployment JSON files contain ABI and bytecode. Load the artifact and resolve the address from deployment records.
const pool = new ethers.Contract(
poolAddress, PoolArtifact.abi, signer
);No Giwalend-specific SDK is included yet. Use ethers v5, viem, or an Aave-compatible client with these addresses and ABIs.
await pool.supply(
asset, amount, user, 0
);