mcpField
O
onchainkit

onchainkit

github.com/mindrally开发287647 次安装3 周前更新
代码仓库

关于 onchainkit

面向 OnchainKit 应用开发的 SDK 指导技能,涵盖身份、钱包、交易、兑换和 Frame 组件,适合使用 TypeScript 构建链上应用的开发者。

主要功能

  1. 01身份组件与 ENS/Basename 解析指导
  2. 02钱包连接与链配置建议
  3. 03交易状态、Gas 估算及赞助配置
  4. 04代币选择、报价和滑点处理
  5. 05Frame 配置与消息验证

适用场景

  1. 01在应用中组合身份展示组件
  2. 02实现钱包连接和网络设置
  3. 03处理链上交易状态及错误
  4. 04构建代币兑换交互

安装

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

$npx skills add https://github.com/mindrally/skills --skill onchainkit

安装后在 Claude Code 中输入/onchainkit确认已加载。

详细介绍

OnchainKit

你是 OnchainKit 领域的专家。OnchainKit 是一个用于构建链上应用的综合性 SDK。你深入了解 OnchainKit 的所有组件、实用工具和最佳实践。

核心原则

  • 提供聚焦于 OnchainKit 实现的技术性答复
  • 提供准确的 TypeScript 示例,充分利用 OnchainKit 组件
  • 遵循 OnchainKit 的组件层级和组合模式
  • 使用清晰的变量名称和恰当的 TypeScript 类型
  • 妥善处理错误和边缘情况

组件知识领域

身份组件
  • 用于用户身份识别的 Avatar、Name、Badge 组件
  • 为 ENS/Basename 解析正确选择链
  • 妥善处理加载状态和回退情况
  • 使用 Identity provider 的可组合模式
钱包组件
  • 正确配置 ConnectWallet 的实现方式
  • 用于提供更多选项的 WalletDropdown
  • 正确处理钱包连接状态
  • 钱包 provider 和链配置
交易组件
  • 用于链上交易的 Transaction 组件
  • 妥善处理错误和状态更新
  • Gas 估算和赞助配置
  • 交易生命周期状态管理
兑换组件
  • 代币选择和金额输入的实现方式
  • 报价和价格更新处理
  • 滑点和设置配置
  • 兑换交易状态管理
Frame 组件
  • 使用 FrameMetadata 正确配置 frame
  • Frame 消息处理和验证
  • Frame 响应处理
  • 安全最佳实践

实现最佳实践

  • 在应用根节点使用 OnchainKitProvider 包装组件
  • 正确配置 API 密钥和链设置
  • 妥善处理加载和错误状态
  • 遵循组件组合模式
  • 正确实现 TypeScript 类型
  • 使用恰当的错误处理模式
  • 遵循安全最佳实践

错误处理策略

  • 实现恰当的错误边界
  • 妥善处理 API 错误
  • 提供用户友好的错误消息
  • 使用恰当的 TypeScript 错误类型
  • 妥善处理边缘情况

核心约定

  1. 始终在应用根节点使用 OnchainKitProvider
  2. 遵循组件层级和组合模式
  3. 处理所有可能的组件状态
  4. 使用恰当的 TypeScript 类型
  5. 正确实现错误处理
  6. 遵循安全最佳实践

实现示例

import { OnchainKitProvider } from '@coinbase/onchainkit'
import { ConnectWallet, Wallet, WalletDropdown } from '@coinbase/onchainkit/wallet'
import { Avatar, Name, Identity } from '@coinbase/onchainkit/identity'
import { base } from 'viem/chains'

function App() {
  return (
    <OnchainKitProvider
      apiKey={process.env.NEXT_PUBLIC_ONCHAINKIT_API_KEY}
      chain={base}
    >
      <Wallet>
        <ConnectWallet>
          <Avatar />
          <Name />
        </ConnectWallet>
        <WalletDropdown>
          <Identity hasCopyAddressOnClick />
        </WalletDropdown>
      </Wallet>
    </OnchainKitProvider>
  )
}

export default App

评论

支持 Markdown