Skip to content

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
Demo market Market Token Pool
DEEP 0xf94BCB399731b9Fd5Ba051fA5C73998D121C2d80 0x98682fd70470F92e3d08A09Eb5966E084756192f 0xa02496bC3D577C2c4b4b6b6F6D1EC32A8Ca76cAb
MID 0x27d5360e3ddF075396752644cd4eD57eD27F1333 0xdB5d415eaCBD31c7034C021c6341624FAABfd591 0xa67e56dB5BEFAdc0a461dc1c5aA6FdAc85368d7a
THIN 0xB2F213D29c65bfdB495Db8AeEa0177Afdb09B824 0x8363813b2DB5e1489fb87656B6BE0D7fB016B9f3 0x6163af4E0B41702DA0228c06e2FF8F80757590fF

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.

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.
  • SoundingV1 is a stub until the ArbOS upgrade adds the EL1Read and EL1Write precompiles.

Official announcements: @BythosFi