12 / 14 · Docs
Contracts
Testnet addresses, ABIs and chain details.
Bythos runs on Elysium Testnet in Phase 0 · pool sounding. This page lists the network details, the deployed contracts and what each one does.
Network
| Field | Value |
|---|---|
| Network | Elysium Testnet |
| Chain id | 99801 |
| RPC | https://testnet-rpc.elysium.kinetiq.xyz |
| Native currency | HYPE (18 decimals) |
| Explorer | https://testnet.elysium.kinetiq.xyz/explorer |
| Testnet HYPE | Elysium faucet |
Add the network to your wallet with these values, then claim testnet HYPE from the Elysium faucet before using the app.
Deployed addresses
| Contract | Address | Role |
|---|---|---|
| MarketFactory | 0xe6cd190c5b396D27441bB50b1788d5941F470E2d | Creates markets, holds the 90-day tBYTHOS locks |
| SoundingV0 | 0x1FE6a64CEaabd53425506245Cbd5E799F4003Fb9 | Phase 0 depth oracle: pool walk, 15-min minimum, TWAP cap |
| Trawl | 0x0E9fBe2A1f4C7A05F44De2AbcfCff4d1a4C3D706 | Liquidation through the pool, transfer fallback |
| AbyssReserve | 0xf4d628ea4aA5d341706c9C8bB937374CF037E6a4 | Per-market HYPE first-loss fund |
| Treasury | 0x63e933Ace1c5F8A5d67CdF6277C7abA60c09c426 | Holds the Treasury half of the protocol share |
| WHYPE | 0xC2AB911b1aaedc6d2d99D59D5c2Cb497F2e5f7fe | Wrapped native HYPE |
| tBYTHOS | 0x7aB973EfA2560D603404DE5A53ADDa9F700D34d9 | Testnet lock token with a one-time faucet |
| MockRouter | 0xf305246fEc147eD11EA4468B41cD536c7357a4B7 | Testnet swap helper for the demo pools |
Testnet state can be reset at any time. After a reset, addresses can change. Always use the addresses shown here, not ones saved from an earlier session.
Contracts
All contracts are written in Solidity 0.8.26 and built with Foundry.
Protocol
| Contract | Role |
|---|---|
WHYPE | Wrapped HYPE. Markets wrap supplied native HYPE into WHYPE, and pools pair tokens against it. |
SoundingV0 | The Phase 0 depth oracle. Reads a Market's registered pool, computes Depth Value, keeps snapshots, the 15-minute minimum and the 30-minute TWAP. |
SoundingV1 | The Phase 1 depth oracle, stubbed. Same interface; every call reverts with NotYetAvailable(). |
Market | One per token. Holds lenders' HYPE, issues ERC-4626-style shares, manages Lines, accrues interest on the 2% / 12% / 60% curve. |
MarketFactory | Creates Markets with create(token, pool) against a 100,000 tBYTHOS lock for 90 days, and returns the lock with release(market). |
Trawl | Liquidates Lines with health below 1.00 through liquidate(market, borrower), or liquidateByTransfer(market, borrower) when the pool cannot be read. |
AbyssReserve | Holds WHYPE per Market as a first-loss fund. Funded by the protocol share and fund(market, amount); paid out through cover(amount) by its Market only. |
Treasury | Receives the other half of the protocol share and holds it on testnet. |
Testnet mocks
| Contract | Role |
|---|---|
MockToken | Faucet ERC-20. Used for tBYTHOS and the demo tokens DEEP, MID and THIN. |
MockPair | UniswapV2-style constant-product pair with a 0.3% fee. Each demo token is paired with WHYPE. |
MockRouter | Testnet swap helper for trading against the mock pairs. |
Faucets
| Token | Amount | Limit |
|---|---|---|
| tBYTHOS | 1,000,000 tBYTHOS | once per address |
| DEEP | 20,000 DEEP | once per address |
| MID | 20,000 MID | once per address |
| THIN | 20,000 THIN | once per address |
tBYTHOS is a mock with no value, used only for the Market creation lock. $BYTHOS is not launched. No contract address.
Key interfaces
The Sounding interface, shared by SoundingV0 and SoundingV1:
interface ISounding {
struct Level { uint256 price; uint256 qty; uint256 cumulativeHype; }
function sound(address token, uint256 qty) external view returns (uint256 depthValue);
function soundDetailed(address token, uint256 qty) external view returns (Level[] memory levels, uint256 depthValue, uint256 walked);
function minSounding(address token, uint256 qty, uint256 window) external view returns (uint256);
function twap(address token, uint256 window) external view returns (uint256 priceE18);
function applied(address token, uint256 qty) external view returns (uint256);
function record(address token) external;
}
The Line functions on each Market:
deposit(amount) first deposit opens the Line; matures after 50 blocks
withdraw(amount) requires debt at most the limit afterwards
borrow(amount) paid in native HYPE; requires debt at most the limit afterwards
repay() payable; any excess is refunded
See Sounding, Lines and Trawl for the behavior behind each call.
ABIs and source
The contract source lives in the repository at packages/contracts/src. The ABIs used by the site live at apps/web/src/abi.
Differences from mainnet
- Testnet does not check that a token's LP is locked in Horkos.
- Market creation locks tBYTHOS instead of $BYTHOS.
- The Treasury holds its share of protocol revenue; there are no buybacks.
SoundingV1is a stub until the ArbOS upgrade adds the EL1Read and EL1Write precompiles.
Official announcements: @BythosDepth