BaseのMiniAppKitを使ってシューティングゲームアプリを作るリポジトリ
npx create-onchain@latest --mini- 
GitHubリポジトリのフォークとクローン まずこのリポジトリを自分のアカウントにフォークします。 その後このリポジトリをクローンします。 
- 
環境変数用のファイル生成 cp .env.example .env 
- 
環境変数のセットアップ farcaster上にmini appとしてデプロイするために以下の5つの値を埋める必要がある NEXT_PUBLIC_URL= NEXT_PUBLIC_ONCHAINKIT_API_KEY= FARCASTER_HEADER= FARCASTER_PAYLOAD= FARCASTER_SIGNATURE= - 
NEXT_PUBLIC_URLについてVercelにアプリをデプロイした後にURLをそのまま貼り付ければOK! 
- 
NEXT_PUBLIC_ONCHAINKIT_API_KEYについてCoinbase Developer PlaformにログインしてAPIキーを発行しその値を貼り付ければOK! 
- 
残りの3つの値について FarcasterのWebサイトにログインし、setting⇨からvercelにデプロイしたURLを入力して検証し、表示された値を環境変数として貼り付ける FARCASTER_HEADER= FARCASTER_PAYLOAD= FARCASTER_SIGNATURE= 
- 
スマートコントラクトのデプロイ Remix IDEで以下のコードをコピー&ペーストしてチェーンをBase Sepoliaに指定してデプロイする。 // SPDX-License-Identifier: MIT // Compatible with OpenZeppelin Contracts ^5.4.0 pragma solidity ^0.8.27; import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; import {ERC1155Burnable} from "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol"; import {ERC1155Supply} from "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; /** * シューティングゲームNFT * 倒した敵の数だけERC1155のNFTがミントされる */ contract ShootingGameNFT is ERC1155, Ownable, ERC1155Burnable, ERC1155Supply { constructor(address initialOwner) ERC1155("") Ownable(initialOwner) {} function setURI(string memory newuri) public onlyOwner { _setURI(newuri); } function mint(address account, uint256 id, uint256 amount, bytes memory data) public { _mint(account, id, amount, data); } function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) public onlyOwner { _mintBatch(to, ids, amounts, data); } // The following functions are overrides required by Solidity. function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal override(ERC1155, ERC1155Supply) { super._update(from, to, ids, values); } } デプロイしたコントラクトのアドレスは utils/constants.tsの以下の値に設定する// base sepoliaにデプロイしたシューティングゲームNFT export const NFT_ADDRESS = <ここにデプロイしたコントラクトのアドレスを貼り付ける>; 
 
- 
- 
ビルド pnpm run build 
- 
ローカルで起動 pnpm run dev 
- 
プレビュー vercel 
- 
リリース vercel --prod