HyperEVM 開発 · HyperEVM の基本 · 2/8
開発環境の準備
Hardhat の準備
Hardhat は、よく使われる Ethereum の開発フレームワークです。下の設定は Hardhat 2 の形式です(Hardhat 3 は設定もプラグインも違います)。そのため、バージョンを固定します。
mkdir my-hyperevm-project && cd my-hyperevm-project
npm init -y
npm install --save-dev hardhat@^2.28 @nomicfoundation/hardhat-toolbox@^6
npx hardhat init
hardhat.config.ts
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
// Use a throwaway testnet key from your environment — never commit keys
const accounts = process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [];
const config: HardhatUserConfig = {
solidity: {
version: "0.8.24",
settings: { evmVersion: "cancun" }, // HyperEVM runs Cancun (without blobs)
},
networks: {
hyperevm: {
url: "https://rpc.hyperliquid.xyz/evm",
chainId: 999,
accounts,
},
hyperevmTestnet: {
url: "https://rpc.hyperliquid-testnet.xyz/evm",
chainId: 998,
accounts,
},
},
};
export default config;
Foundry の準備
Foundry は、速くて持ち運びやすい EVM 開発用のツール群です。
# Install Foundry
curl -L https://foundry.paradigm.xyz | bash
foundryup
# Create project
forge init my-hyperevm-project
cd my-hyperevm-project
foundry.toml
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc_version = "0.8.24"
evm_version = "cancun"
[rpc_endpoints]
hyperevm = "https://rpc.hyperliquid.xyz/evm"
hyperevm_testnet = "https://rpc.hyperliquid-testnet.xyz/evm"
コントラクトをデプロイする
まずテストネットにデプロイします(ガス用のテストネット HYPE は、HyperEVM Tools に載っている faucet でもらえます)。
Hardhat で
// scripts/deploy.ts
import { ethers } from "hardhat";
async function main() {
const Contract = await ethers.getContractFactory("MyContract");
const contract = await Contract.deploy();
await contract.waitForDeployment();
console.log("Deployed to:", await contract.getAddress());
}
main().catch(console.error);
npx hardhat run scripts/deploy.ts --network hyperevmTestnet
Foundry で
forge create src/MyContract.sol:MyContract \
--rpc-url hyperevm_testnet \
--private-key $PRIVATE_KEY \
--broadcast
大きなコントラクトと大ブロック
小ブロックのガス上限は 3M です(2026年10月時点)。多くのコントラクトのデプロイはこれを超えます。30M ガスの大ブロックを使うには、デプロイするアドレスから HyperCore の操作 {"type": "evmUserModify", "usingBigBlocks": true} を送ります(Python SDK には exchange.use_big_blocks(True) があります)。デプロイしたら、false に戻します。デプロイするアドレスは、HyperCore のユーザーとしてすでに存在している必要があります。たとえば、HyperCore で USDC を受け取ったことがあれば足ります。eth_bigBlockGasPrice という RPC メソッドで、次の大ブロックの基本手数料がわかります。デュアルブロック構成も見てください。
テストネットでの実測(2026-10-19、hyperevm-perp。学習用のプロジェクトで、監査は受けていません): 約 2.8M ガス(約 14 KB のコントラクト)のデプロイが、ブロックのガス上限を超えるとして拒否されました。一方、2026-10-20 に読んだ最新のブロックヘッダーでは、メインネットもテストネットもガス上限は 3,000,000 でした。取引が実際に受ける上限は、ヘッダーの値より低いのかもしれません。デプロイが 2M ガスに近づいたら、大ブロックを使う前提で準備してください。終わったら大ブロックを必ず戻します。有効のあいだは、そのアドレスからの取引がすべて大ブロック(デュアルブロックの資料によれば 1 分に 1 つ)を待つからです。
コントラクトの検証
HyperEVMScan(Etherscan 系のエクスプローラー、チェーン 999)でコントラクトを検証します。
# Foundry (Etherscan API key in ETHERSCAN_API_KEY)
forge verify-contract <ADDRESS> src/MyContract.sol:MyContract \
--chain 999 \
--verifier etherscan
# Hardhat (requires the etherscan config for chain 999)
npx hardhat verify --network hyperevm <ADDRESS> <constructor-args>
テスト
デプロイする前に、必ず手元でテストします。
# Hardhat
npx hardhat test
# Foundry (faster)
forge test -vvv
読み取り用の precompile と CoreWriter は、手元の Hardhat や Anvil のノードにはありません。HyperCore とつないだ結合テストには、テストネットへのデプロイを使ってください。