HIP-4 documentation
Testnet · Exploratory documentation — not official Hyperliquid documentation.
HIP-4 Contest Contract
Third-party EVM (testnet)V10x4fd772e5708da2a7f097f51b3127e515a72744bd
V20x6d86b21e853758f5719408633e6bcb2cfd50cf07
Balance
94.37 HYPE
Active deposited balance
Platform fee
0.9% / implicit
V1: 90 bps view · V2: from pools
Active contests
4
IDs: 595, 596, 604, 608
Ownership
0xe21c…0d135
Renounce disabled
Mainnet
Not deployed
Testnet only
Versions
2
V1 reverse-engineered · V2 source + bytecode
V1 vs V2 — summary
V2 mystery selector 0xb2447e34 is withdrawPlatformFee(uint256,uint256) on the shipped source.
Full ABI JSON
HIP4Contest.v1.abi (bundled)
[
{
"inputs": [],
"name": "owner",
"outputs": [
{
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "platformFeeBps",
"outputs": [
{
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
}
],
"name": "getContestPool",
"outputs": [
{
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
}
],
"name": "getMerkleRoot",
"outputs": [
{
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
},
{
"name": "entryFee",
"type": "uint256"
}
],
"name": "createContest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
}
],
"name": "finalizeContest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
},
{
"name": "merkleRoot",
"type": "bytes32"
},
{
"name": "rewardPool",
"type": "uint256"
}
],
"name": "publishMerkleRoot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
},
{
"name": "sideId",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
},
{
"name": "sideId",
"type": "uint256"
},
{
"name": "user",
"type": "address"
}
],
"name": "refund",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
}
],
"name": "sweepUnclaimed",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "contestId",
"type": "uint256"
},
{
"name": "sideId",
"type": "uint256"
},
{
"name": "proof",
"type": "bytes32[]"
}
],
"name": "claim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"name": "contestExists",
"outputs": [
{
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "contestId",
"type": "uint256"
},
{
"indexed": true,
"name": "sideId",
"type": "uint256"
},
{
"indexed": false,
"name": "depositor",
"type": "address"
},
{
"indexed": false,
"name": "amount",
"type": "uint256"
}
],
"name": "DepositReceived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "contestId",
"type": "uint256"
},
{
"indexed": true,
"name": "sideId",
"type": "uint256"
},
{
"indexed": false,
"name": "claimer",
"type": "address"
},
{
"indexed": false,
"name": "amount",
"type": "uint256"
}
],
"name": "Claimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "contestId",
"type": "uint256"
}
],
"name": "ContestFinalized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "contestId",
"type": "uint256"
},
{
"indexed": false,
"name": "root",
"type": "bytes32"
},
{
"indexed": false,
"name": "rewardPool",
"type": "uint256"
}
],
"name": "MerkleRootPublished",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "contestId",
"type": "uint256"
},
{
"indexed": false,
"name": "entryFee",
"type": "uint256"
}
],
"name": "ContestCreated",
"type": "event"
}
]