mcpField
N
near-dapp

near-dapp

github.com/near開発1674 回インストール4 週間前に更新
リポジトリ

near-dapp について

NEAR dApp の作成や、既存の React・非 React アプリへのウォレット接続に使うスキルです。用途に応じて、スキャフォールディング、React hooks、低レベルコネクターの手順を案内します。

主な機能

  1. 01create-near-app によるアプリ作成
  2. 02hooks を使った React のウォレット接続
  3. 03非 React 向けコネクター設定
  4. 04コントラクト状態の読み書き

活用シーン

  1. 01NEAR dApp の新規作成
  2. 02React アプリへのウォレットログイン追加
  3. 03バニラ JavaScript でのウォレット接続
  4. 04NEAR コントラクトメソッドの読み出しや呼び出し

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/near/agent-skills --skill near-dapp

インストール後、Claude Code で/near-dappを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
create-near-app.md
near-connect-hooks.md
near-connect.md

詳細

NEAR dApp

上流ドキュメント

選択ガイド

次に従うパスを判断します。

パス A:新規プロジェクト

NEAR dApp をゼロから作成する場合です。

  1. references/create-near-app.md を読みます
  2. スキャフォールディングを実行します。
npx create-near-app@latest

または、引数を指定します。

npx create-near-app my-app --frontend vite-react --contract rs --install

フレームワークの選択肢: vite-react | next-app | next-page コントラクトの選択肢: rs(Rust)| ts(TypeScript)

  1. スキャフォールディングしたアプリでウォレット接続が必要な場合は、パス B も実行します。
パス B:既存のプロジェクト

既存の React アプリに NEAR ウォレット接続を追加する場合です。

  1. React フックの API とパターンについて、references/near-connect-hooks.md を読みます
  2. 低レベルのウォレット API または React 以外の連携が必要な場合は、references/near-connect.md も読みます

クイックセットアップ:

npm install near-connect-hooks @hot-labs/near-connect near-api-js
// 1. Wrap app root with NearProvider
import { NearProvider } from 'near-connect-hooks';

<NearProvider config={{ network: 'mainnet' }}>
  <App />
</NearProvider>

// 2. Use hook in components
import { useNearWallet } from 'near-connect-hooks';

const { signedAccountId, signIn, signOut, viewFunction, callFunction } = useNearWallet();
パス C:React 以外または Vanilla JS

React フックを使わずに、@hot-labs/near-connect を直接使用します。

  1. references/near-connect.md を読みます
npm install @hot-labs/near-connect
import { NearConnector } from "@hot-labs/near-connect";

const connector = new NearConnector({ network: "mainnet" });
connector.on("wallet:signIn", async (t) => {
  const wallet = await connector.wallet();
  const address = t.accounts[0].accountId;
});
await connector.connect();

主なパターン

  • コントラクトの状態を読み取る(ウォレット不要):viewFunction({ contractId, method, args })
  • コントラクトに書き込む(ウォレットが必要):callFunction({ contractId, method, args, deposit })
  • NEAR を送金する:transfer({ receiverId, amount })
  • NEAR ↔ yoctoNEAR:near-api-js の nearToYocto() / yoctoToNear() を使用します
  • 1 NEAR = "1000000000000000000000000" yoctoNEAR
  • デフォルトのガス量:"30000000000000"(30 TGas)

コメント