Project Icon

onchainkit

React组件和TypeScript工具库助力链上应用开发

OnchainKit是一个面向链上应用开发的开源库,提供React组件和TypeScript工具。主要功能包括身份展示、Frame元数据处理、钱包连接等组件,以及配置、身份查询、代币操作等实用函数。该项目还开源了Figma设计文件,便于快速构建界面。OnchainKit由经验丰富的开发者维护,拥有活跃的社区。

OnchainKit logo 氛围

OnchainKit

React组件和TypeScript实用工具,帮助您构建顶级的链上应用。

版本 MIT许可证 每月下载量


文档

访问onchainkit.xyz查看文档和指南。

快速开始

您可以通过将OnchainKit作为依赖项安装到现有项目中来使用它。

安装

让我们将OnchainKit及其依赖项作为依赖项安装。

# Yarn: 添加库
yarn add @coinbase/onchainkit

# 或

# 使用NPM
npm install @coinbase/onchainkit

# 使用PNPM
pnpm add @coinbase/onchainkit

# 使用BUN
bun add @coinbase/onchainkit

配置OnchainKitProvider

<OnchainKitProvider />组件为您的应用提供了与OnchainKit组件和实用工具交互所需的基本上下文。

chain属性设置为您的目标链,并提供API密钥以访问嵌入式API。

'use client';
import { ReactNode } from 'react';
import { base } from 'viem/chains';
import { OnchainKitProvider } from '@coinbase/onchainkit';

type Props = { children: ReactNode };

function OnchainProviders({ children }: Props) {
  return (
    <OnchainKitProvider apiKey="YOUR_PUBLIC_API_KEY" chain={base}>
      <YourKit />
    </OnchainKitProvider>
  );
};

export default OnchainProviders;

Coinbase开发者平台API获取API密钥。

OnchainKit复制API密钥

配置WagmiProvider

OnchainKit的许多组件需要WagmiProvider来访问Wagmi实用工具。

如果您的应用程序已经包含了这些设置,可以跳过此步骤。

OnchainProviders.tsx

'use client';
import { ReactNode } from 'react';
import { OnchainKitProvider } from '@coinbase/onchainkit';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; // [!code focus]
import { base } from 'viem/chains';
import { WagmiProvider } from 'wagmi'; // [!code focus]
import { wagmiConfig } from './wagmi'; // [!code focus]

type Props = { children: ReactNode };

const queryClient = new QueryClient(); // [!code focus]

function OnchainProviders({ children }: Props) {
  return (
    <WagmiProvider config={wagmiConfig}> // [!code focus]
      <QueryClientProvider client={queryClient}> // [!code focus]
        <OnchainKitProvider
          apiKey={YOUR_PUBLIC_API_KEY}
          chain={base}
        >
          {children} // [!code focus]
        </OnchainKitProvider>
      </QueryClientProvider> // [!code focus]
    </WagmiProvider> // [!code focus]
  );
}

export default OnchainProviders;

wagmi.ts

import { http, createConfig } from 'wagmi';
import { base } from 'wagmi/chains';
import { coinbaseWallet } from 'wagmi/connectors';

export const wagmiConfig = createConfig({
  chains: [base],
  multiInjectedProviderDiscovery: false,
  connectors: [
    coinbaseWallet({
      appName: 'yourAppName',
      preference: 'all',
      version: '4',
    }),
  ],
  ssr: true,
  transports: {
    [base.id]: http(),
  },
});

为组件添加样式

所有OnchainKit组件都预先配置了样式。

只需将以下代码放在应用程序入口点的顶部,即可使组件开箱即用。

import '@coinbase/onchainkit/styles.css';

对于tailwindcss用户,请参考Tailwindcss集成指南

组件

显示ENS头像、认证徽章、ENS名称和账户地址

<Identity
  address="0x838aD0EAE54F99F1926dA7C3b6bFbF617389B4D9"
  schemaId="0xf8b05c79f090979bf4a80270aba232dff11a10d9ca55c4f88de95317970f0de9"
>
  <Avatar>
    <Badge />
  </Avatar>
  <Name />
  <Address />
</Identity>
OnchainKit身份组件

将您的网页转换为Frame

import { FrameMetadata } from '@coinbase/onchainkit/frame';

export default function HomePage() {
  return (
    ...
    <FrameMetadata
      buttons={[
        {
          label: '讲述故事',
        },
        {
          action: 'link',
          label: '链接到Google',
          target: 'https://www.google.com'
        },
        {
          action: 'post_redirect',
          label: '重定向到可爱的图片',
        },
      ]}
      image={{
       src: 'https://zizzamia.xyz/park-3.png',
       aspectRatio: '1:1'
      }}
      input={{
        text: '讲一个关于船的故事',
      }}
      postUrl="https://zizzamia.xyz/api/frame"
    />
    ...
  );
}

使用Connect Wallet创建或连接您的钱包,由Smart Wallet提供支持。

<Wallet>
  <ConnectWallet>
    <Avatar className="h-6 w-6" />
    <Name />
  </ConnectWallet>
  <WalletDropdown>
    <Identity className="px-4 pt-3 pb-2" hasCopyAddressOnClick>
      <Avatar />
      <Name>
        <Badge />
      </Name>
      <Address />
      <EthBalance />
    </Identity>
    <WalletDropdownLink icon="wallet" href="https://wallet.coinbase.com">
      前往钱包仪表板
    </WalletDropdownLink>
    <WalletDropdownDisconnect />
  </WalletDropdown>
</Wallet> 
OnchainKit钱包组件 OnchainKit钱包组件

使用getTokens搜索代币,并使用TokenSearchTokenChipTokenImageTokenRow显示它们

const [filteredTokens, setFilteredTokens] = useState<Token[]>([]);

const handleChange = useCallback((value) => {
async function getData(value) {
const tokens: Token[] = await getTokens({ search: value }); // [!code focus]
setFilteredTokens(filteredTokens);
}
getData(value);
}, []);
...

<div className="flex flex-col gap-4 rounded-3xl bg-white p-4">
  <TokenSearch onChange={handleChange} delayMs={200} /> // [!code focus]
  {filteredTokens.length > 0 && (
    <div className="flex gap-2">
      {filteredTokens.map((token) => (
        <TokenChip key={token.name} token={token} onClick={handleSelect} /> // [!code focus]
      ))}
    </div>
  )}
  {filteredTokens.length > 0 ? (
    <div>
      <div className="text-body text-black">代币</div>
      <div>
        {filteredTokens.map((token) => (
          <TokenRow key={token.name} token={token} onClick={handleSelect} /> // [!code focus]
        ))}
      </div>
    </div>
  ) : (
    <div className="text-body text-black">未找到代币</div>
  )}
</div>
OnchainKit钱包组件

实用工具

如果你正在寻找基本的TypeScript实用工具,我们有许多现成的选项可供使用。

配置
框架
身份
交换
代币
钱包
Farcaster
XMTP

设计

我们所有的组件设计都是开源的。你可以访问Figma文件,将其用于你的链上项目。

Figma - 使用方法

OnchainKit标志氛围

Figma - 组件

OnchainKit标志氛围

链上应用模板

社区 ☁️ 🌁 ☁️

查看以下地方获取更多OnchainKit相关内容:

作者

许可证

本项目采用MIT许可证 - 详情请见LICENSE.md文件

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号