mcpField
N
near-dapp

near-dapp

github.com/near开发1674 次安装4 周前更新
代码仓库

关于 near-dapp

用于创建 NEAR dApp,或为现有 React 与非 React 应用添加钱包连接的技能。它根据任务引导使用脚手架、React hooks 或底层连接器。

主要功能

  1. 01使用 create-near-app 创建应用
  2. 02通过 hooks 连接 React 钱包
  3. 03配置非 React 钱包连接器
  4. 04读取和写入合约状态

适用场景

  1. 01从零开始搭建 NEAR dApp
  2. 02为 React 应用添加钱包登录
  3. 03在原生 JavaScript 中连接钱包
  4. 04读取或调用 NEAR 合约方法

安装

复制下面的命令,在终端中运行。

$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. 阅读 references/near-connect-hooks.md — React hooks API 和模式
  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

直接使用 @hot-labs/near-connect,无需 React hooks。

  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
  • 默认 gas: "30000000000000"(30 TGas)

评论

支持 Markdown