![見出し画像](https://assets.st-note.com/production/uploads/images/172150719/rectangle_large_type_2_64531c4efc5d1b86621ede2728360dab.png?width=1200)
KAIAにコントラクトをデプロイしてみよう
こんにちは!チューリンガムの開発部門に所属の智中ニア(@nia_tn1012)です。
今回は、アジア発のブロックチェーンネットワーク「KAIA」にコントラクトをデプロイしてみたいと思います。
1. KAIAとは
「KAIA(カイア)」は、韓国のカカオが開発した「Klaytn(クレイトン)」とLINEが開発した「Finschia(フィンシア)」のブロックチェーンが統合されて、2024年8月に誕生した、EVMベースのブロックチェーンです。
公式のドキュメントによると、ブロックの生成と確認はわずか1秒と高速に処理でき、ガス代が安価(イーサリアムの約1/10)とされています。
Solidityで記述したコントラクトをサポートするので、既存で開発したコントラクトのコードをそのまま利用することもできます。
2. Hardhatを使って、コントラクトをKAIAにデプロイ
ここでは、Hardhatを使用して、コントラクトをKAIAのテストネット「Kairos(カイロス)」にデプロイしていきます。
2.1. KAIAのネットワークの設定
Hardhatの設定ファイル( hardhat.config.ts )に、KAIAのネットワークの設定を追加します。
const config: HardhatUserConfig = {
// ...
networks: {
// KAIAのメインネットのネットワークの設定
kaia: {
url: "https://public-en.node.kaia.io",
accounts: typeof process.env.PRIVATE_KEY === "string" ? [process.env.PRIVATE_KEY] : [],
},
// KAIAのテストネット(Kairos)のネットワークの設定
kairos: {
url: "https://public-en-kairos.node.kaia.io",
accounts: typeof process.env.PRIVATE_KEY === "string" ? [process.env.PRIVATE_KEY] : [],
},
},
};
デプロイに使用するウォレットアドレスに、KAIA Faucetのページから、KAIAのテストネットのトークンを付与します。
2.2. コントラクトをデプロイ
以下のコントラクトを、KAIAのテストネットにデプロイします。
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/access/Ownable.sol";
contract Greeter is Ownable {
string private message;
constructor(string memory _message) {
message = _message;
}
function greet() public view returns (string memory) {
return message;
}
function setGreeting(string memory _message) public onlyOwner {
message = _message;
}
}
// デプロイ用スクリプト(scripts/deploy.ts)
import { ethers, upgrades } from "hardhat";
async function main() {
const factory = await ethers.getContractFactory("Greeter");
const contract = await upgrades.deployProxy(factory, ["Hello, world!"]);
await contract.deployed();
console.log("Greeter deployed to:", contract.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
# KAIAのテストネットへのデプロイコマンド
yarn hardhat run scripts/deploy.ts --network kairos
# ※npmを使用している場合は、yarn → npx に変えて実行します。
デプロイしたコントラクトは、KaiaScan(KAIAのブロックチェーンエクスプローラー)などで確認できます。
https://kairos.kaiascan.io/ (テストネットはこちら)
![](https://assets.st-note.com/img/1738130493-T2EBYhxCMZJWFXLedizoVAmN.png?width=1200)
3. KAIAにデプロイしたコントラクトをverify
KAIAにデプロイしたコントラクトは、 hardhat-verify プラグインを使用して、verifyすることができます。
// Hardhatの設定ファイル(hardhat.config.ts)
import "@nomicfoundation/hardhat-verify";
const config: HardhatUserConfig = {
// ...
etherscan: {
apikey: {
kaia: "<KaiaScan_API_KEY>" || "",
kairos: "<KaiaScan_API_KEY>" || "",
},
customChains: {
{
network: "kaia",
chainId: 8217,
urls: {
apiURL: "https://mainnet-api.kaiascan.io/hardhat-verify",
browserURL: "https://kaiascan.io",
},
},
{
network: "kairos",
chainId: 1001,
urls: {
apiURL: "https://kairos-api.kaiascan.io/hardhat-verify",
browserURL: "https://kairos.kaiascan.io",
},
},
},
},
};
KaiaScanのAPIキーは、メインネットのKaiaScanのページから、アカウントを作成して取得します。
以下のコマンドで、KAIAにデプロイ済みのコントラクトをverifyします。
yarn hardhat verify {CONTRACT_ADDRESS} "Hello, world!" --network kairos
# {CONTRACT_ADDRESS}:
# 2.でデプロイしたコントラクトのアドレス
# ※npmを使用している場合は、yarn → npx に変えて実行します。
![](https://assets.st-note.com/img/1738130605-zUiYgVfhd1KZxXFCWPAcjHnN.png?width=1200)
4. チューリンガムからのお知らせ
チューリンガムは、LINEヤフー株式会社のグループ会社であるLINE NEXTとミニDapp(Mini Dapp)の導入支援を行うエージェンシー契約を締結いたしました。
ミニDapp(Mini Dapp)のリリースを検討中の企業様はこちらのフォームからお問い合わせください。
またチューリンガムでは、実績豊富なプロフェッショナル達が手厚くサポートしながら皆様のビジネスに合ったWeb3の構築を行うことができます。 Web3ビジネスをご検討中の方や、現在Web3に関してお困りの方も是非お気軽に弊社へご相談ください!
https://turingum.com/