本文へ移動
レビューを依頼

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 とつないだ結合テストには、テストネットへのデプロイを使ってください。