onchainkit — Claude Code skill: OnchainKit components
A skill that teaches your coding agent the OnchainKit SDK: identity, wallet, transaction, swap and frame components with TypeScript examples.
npx skills add Mindrally/skills --skill onchainkit -a claude-codeWhat onchainkit does
This skill turns the agent into an OnchainKit guide. It covers the Identity, Wallet, Transaction, Swap and Frame component groups, how they compose, and which states each one can be in.
Expect TypeScript snippets rather than prose. The skill walks through wrapping the app in OnchainKitProvider at the root, wiring the API key and chain, and handling loading and error states. Identity gets its own notes on picking the right chain for ENS and Basename resolution. Swap covers quotes, slippage and price updates. Frame covers metadata, message validation and security.
You need an OnchainKit API key before anything runs — the sample reads it from NEXT_PUBLIC_ONCHAINKIT_API_KEY. The advice leans on React and TypeScript, so a plain JavaScript project will get less out of it.
What it helps with
- wire up wallet connection and show its state
- render a user card with avatar, name and badge
- send an onchain transaction and track its status
- build a token swap with slippage settings
- configure a Frame with correct metadata
Example prompts for the agent
- Add ConnectWallet with Avatar and Name, wrap the app in OnchainKitProvider
- Build a Swap component with token selection and quote handling
- Set up FrameMetadata and validate incoming frame messages
How to install onchainkit
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill onchainkit -a claude-code2Manually: put the files in place
~/.claude/skills/onchainkit/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/onchainkit/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill onchainkit -a codex2Manually: put the files in place
.agents/skills/onchainkit/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill onchainkit -a cursor2Manually: put the files in place
.cursor/skills/onchainkit/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills onchainkit2Manually: put the files in place
.github/skills/onchainkit/SKILL.md1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill onchainkit -a gemini-cli2Platform CLI
gemini skills install https://github.com/Mindrally/skills --path onchainkitManually: put the files in place
.devin/skills/onchainkit/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Mindrally/skills --skill onchainkit -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about onchainkit
How do I install onchainkit in Claude?
Run npx skills add Mindrally/skills --skill onchainkit -a claude-code. The skill lands in ~/.claude/skills/onchainkit/SKILL.md.
What does the onchainkit skill do?
It gives the agent working knowledge of OnchainKit SDK components and utilities — Identity, Wallet, Transaction, Swap and Frame — with TypeScript examples and error handling patterns.
What do I need before using it?
An OnchainKit API key and a configured chain passed to OnchainKitProvider. The example reads the key from NEXT_PUBLIC_ONCHAINKIT_API_KEY.
Source text
SKILL.md · Apache-2.0
---
name: onchainkit
description: Expert guidance for building onchain applications with OnchainKit SDK components and utilities
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# OnchainKit
You are an expert in OnchainKit, a comprehensive SDK for building onchain applications. You have deep knowledge of all OnchainKit components, utilities, and best practices.
## Key Principles
- Deliver focused, technical responses centered on OnchainKit implementation
- Supply accurate TypeScript examples leveraging OnchainKit components
- Respect OnchainKit's component hierarchy and composition patterns
- Use clear variable names and proper TypeScript types
- Address proper error handling and edge cases
## Component Knowledge Areas
### Identity Components
- Avatar, Name, Badge components for user identity
- Proper chain selection for ENS/Basename resolution
- Appropriate loading state and fallback handling
- Composable patterns with Identity provider
### Wallet Components
- ConnectWallet implementation with proper configuration
- WalletDropdown for additional options
- Correct wallet connection state handling
- Wallet provider and chain configuration
### Transaction Components
- Transaction component usage for onchain transactions
- Proper error handling and status updates
- Gas estimation and sponsorship configuration
- Transaction lifecycle state management
### Swap Components
- Token selection and amount input implementation
- Quote and price update handling
- Slippage and setting configuration
- Swap transaction state management
### Frame Components
- FrameMetadata for proper frame configuration
- Frame message handling and validation
- Frame response handling
- Security best practices
## Implementation Best Practices
- Wrap components with OnchainKitProvider at the app root
- Configure API keys and chain settings properly
- Handle loading and error states appropriately
- Follow component composition patterns
- Implement proper TypeScript types
- Use proper error handling patterns
- Follow security best practices
## Error Handling Strategy
- Implement proper error boundaries
- Handle API errors gracefully
- Provide user-friendly error messages
- Use proper TypeScript error types
- Handle edge cases appropriately
## Key Conventions
1. Always use OnchainKitProvider at the app root
2. Follow component hierarchy and composition patterns
3. Handle all possible component states
4. Use proper TypeScript types
5. Implement proper error handling
6. Follow security best practices
## Example Implementation
```tsx
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
```
© Mindrally · Apache-2.0 · Mindrally/skills