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

FieldValue
NetworkElysium Testnet
Chain id99801
RPChttps://testnet-rpc.elysium.kinetiq.xyz
Native currencyHYPE (18 decimals)
Explorerhttps://testnet.elysium.kinetiq.xyz/explorer
Testnet HYPEElysium faucet

Add the network to your wallet with these values, then claim testnet HYPE from the Elysium faucet before using the app.

Deployed addresses

ContractAddressRole
MarketFactory0xe6cd190c5b396D27441bB50b1788d5941F470E2dCreates markets, holds the 90-day tBYTHOS locks
SoundingV00x1FE6a64CEaabd53425506245Cbd5E799F4003Fb9Phase 0 depth oracle: pool walk, 15-min minimum, TWAP cap
Trawl0x0E9fBe2A1f4C7A05F44De2AbcfCff4d1a4C3D706Liquidation through the pool, transfer fallback
AbyssReserve0xf4d628ea4aA5d341706c9C8bB937374CF037E6a4Per-market HYPE first-loss fund
Treasury0x63e933Ace1c5F8A5d67CdF6277C7abA60c09c426Holds the Treasury half of the protocol share
WHYPE0xC2AB911b1aaedc6d2d99D59D5c2Cb497F2e5f7feWrapped native HYPE
tBYTHOS0x7aB973EfA2560D603404DE5A53ADDa9F700D34d9Testnet lock token with a one-time faucet
MockRouter0xf305246fEc147eD11EA4468B41cD536c7357a4B7Testnet swap helper for the demo pools
Demo marketMarketTokenPool
DEEP0xf94BCB399731b9Fd5Ba051fA5C73998D121C2d800x98682fd70470F92e3d08A09Eb5966E084756192f0xa02496bC3D577C2c4b4b6b6F6D1EC32A8Ca76cAb
MID0x27d5360e3ddF075396752644cd4eD57eD27F13330xdB5d415eaCBD31c7034C021c6341624FAABfd5910xa67e56dB5BEFAdc0a461dc1c5aA6FdAc85368d7a
THIN0xB2F213D29c65bfdB495Db8AeEa0177Afdb09B8240x8363813b2DB5e1489fb87656B6BE0D7fB016B9f30x6163af4E0B41702DA0228c06e2FF8F80757590fF

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

ContractRole
WHYPEWrapped HYPE. Markets wrap supplied native HYPE into WHYPE, and pools pair tokens against it.
SoundingV0The Phase 0 depth oracle. Reads a Market's registered pool, computes Depth Value, keeps snapshots, the 15-minute minimum and the 30-minute TWAP.
SoundingV1The Phase 1 depth oracle, stubbed. Same interface; every call reverts with NotYetAvailable().
MarketOne per token. Holds lenders' HYPE, issues ERC-4626-style shares, manages Lines, accrues interest on the 2% / 12% / 60% curve.
MarketFactoryCreates Markets with create(token, pool) against a 100,000 tBYTHOS lock for 90 days, and returns the lock with release(market).
TrawlLiquidates Lines with health below 1.00 through liquidate(market, borrower), or liquidateByTransfer(market, borrower) when the pool cannot be read.
AbyssReserveHolds 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.
TreasuryReceives the other half of the protocol share and holds it on testnet.

Testnet mocks

ContractRole
MockTokenFaucet ERC-20. Used for tBYTHOS and the demo tokens DEEP, MID and THIN.
MockPairUniswapV2-style constant-product pair with a 0.3% fee. Each demo token is paired with WHYPE.
MockRouterTestnet swap helper for trading against the mock pairs.

Faucets

TokenAmountLimit
tBYTHOS1,000,000 tBYTHOSonce per address
DEEP20,000 DEEPonce per address
MID20,000 MIDonce per address
THIN20,000 THINonce 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.
  • SoundingV1 is a stub until the ArbOS upgrade adds the EL1Read and EL1Write precompiles.

Official announcements: @BythosDepth