onchainkit

onchainkit

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

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

OnchainKit区块链应用React组件TypeScript工具Web3开发Github开源项目
<p align="center"> <a href="https://onchainkit.xyz"> <picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/logo/v0-29.png"> <img alt="OnchainKit logo 氛围" src="https://yellow-cdn.veclightyear.com/835a84d5/2c28f6d2-07ec-480a-8f3d-286995ddc0a0.png" width="auto"> </picture> </a> </p>

OnchainKit

<p align="left"> React组件和TypeScript实用工具,帮助您构建顶级的链上应用。 <p> <p align="left"> <a href="https://www.npmjs.com/package/@coinbase/onchainkit" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/v/@coinbase/onchainkit?colorA=21262d&colorB=21262d&style=flat"> <img src="https://img.shields.io/npm/v/@coinbase/onchainkit?colorA=f6f8fa&colorB=f6f8fa&style=flat" alt="版本"> </picture> </a> <a href="https://github.com/coinbase/onchainkit/blob/main/LICENSE.md" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/l/@coinbase/onchainkit?colorA=21262d&colorB=21262d&style=flat"> <img src="https://img.shields.io/npm/l/@coinbase/onchainkit?colorA=f6f8fa&colorB=f6f8fa&style=flat" alt="MIT许可证"> </picture> </a> <a href="https://www.npmjs.com/package/@coinbase/onchainkit" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/dm/@coinbase/onchainkit?colorA=21262d&colorB=21262d&style=flat"> <img src="https://img.shields.io/npm/dm/@coinbase/onchainkit?colorA=f6f8fa&colorB=f6f8fa&style=flat" alt="每月下载量"> </picture> </a> </p> <br />

文档

访问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密钥。

<img alt="OnchainKit复制API密钥" src="https://onchainkit.xyz/assets/copy-api-key-guide.png" width="auto" />

配置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>
<picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/assets/onchainkit-identity.png"> <img alt="OnchainKit身份组件" src="https://yellow-cdn.veclightyear.com/835a84d5/f26ea026-511f-4d68-b9ca-4e3ac9176a7b.png" width="auto"> </picture>

将您的网页转换为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>
<picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/assets/onchainkit-wallet-1.png"> <img alt="OnchainKit钱包组件" src="https://yellow-cdn.veclightyear.com/835a84d5/f581b1f8-ec09-41cb-8910-9027043c6f02.png" width="auto"> </picture> <picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/assets/onchainkit-wallet-2.png"> <img alt="OnchainKit钱包组件" src="https://yellow-cdn.veclightyear.com/835a84d5/0350c135-c0ed-4a1f-859a-658a3055344f.png" width="auto"> </picture>

使用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>
<picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/assets/onchainkit-token.png"> <img alt="OnchainKit钱包组件" src="https://yellow-cdn.veclightyear.com/835a84d5/2ac5b69d-f5e3-4725-a891-82ce22761aaa.png" width="auto"> </picture>

实用工具

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

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

设计

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

<a href="https://www.figma.com/community/file/1370194397345450683"> <p>Figma - 使用方法</p> <picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/assets/onchainkit-figma-design-how-to-use.png"> <img alt="OnchainKit标志氛围" src="https://yellow-cdn.veclightyear.com/835a84d5/af8bcee4-0fdb-4353-b32a-d302cde47473.png" width="auto"> </picture> <p>Figma - 组件</p> <picture> <source media="(prefers-color-scheme: dark)" srcset="./site/docs/public/assets/onchainkit-figma-design-components.png"> <img alt="OnchainKit标志氛围" src="https://yellow-cdn.veclightyear.com/835a84d5/4c0cc4f3-1276-4b11-baa1-9e4d0b3baa8b.png" width="auto"> </picture> </a>

链上应用模板

社区 ☁️ 🌁 ☁️

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

作者

许可证

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

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

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

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多