Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
caeb355
initial
abcrane123 Apr 22, 2025
3333f72
chore: deprecate code (#2312)
abcrane123 Apr 24, 2025
fbab72c
feat: upgrade tailwind to v4 (#2313)
xtbase Apr 29, 2025
982e17c
chore: refactor fund components (#2311)
abcrane123 May 2, 2025
77278ee
Deprecate ock classes (#2325)
xtbase May 2, 2025
e15914e
chore: remove deprecated default components (#2328)
abcrane123 May 2, 2025
45b062d
feat: <Connected /> component (#2317)
dgca May 5, 2025
3063a61
v1: Fix lint issues (#2338)
dgca May 5, 2025
298c565
chore: Add onchainkit-v1 to CI test/lint/format workflows (#2340)
dgca May 6, 2025
0d14944
chore: Merge main into onchainkit-v1 (#2346)
dgca May 7, 2025
6f2a212
chore: merge main (#2356)
xtbase May 13, 2025
58c8392
Feat: React 19 + Nextjs 15 upgrade (#2337)
xtbase May 13, 2025
f79f88e
feat: explore render prop for transaction (#2316)
abcrane123 May 16, 2025
cd9eb4e
chore: switch enums -> object consts (#2363)
xtbase May 29, 2025
2f4dd0f
chore: token audit (#2357)
abcrane123 May 29, 2025
2f516b9
Feat: TextInput updates (#2361)
xtbase May 30, 2025
a634618
chore: update txn types (#2370)
abcrane123 May 30, 2025
1d86f30
[feat] Update popover (#2374)
xtbase Jun 2, 2025
5535237
chore: Buy component audit (#2371)
abcrane123 Jun 4, 2025
f743107
chore: remove useValue usage (#2381)
abcrane123 Jun 4, 2025
951325f
chore: audit identity (#2382)
abcrane123 Jun 5, 2025
ccee6d1
[feat][1/n] Update internal components (#2387)
xtbase Jun 9, 2025
5c9e30a
chore: audit earn (#2380)
abcrane123 Jun 9, 2025
9da304d
chore: rename nft types (#2386)
abcrane123 Jun 9, 2025
855758b
chore: rename appchain types (#2388)
abcrane123 Jun 9, 2025
a9d5b0c
chore: rename checkout types (#2385)
abcrane123 Jun 9, 2025
f57dbc7
[feat][2/n] Update rest of internal components (#2389)
xtbase Jun 9, 2025
43fb802
v1: Signature audit pt 1 (#2360)
dgca Jun 12, 2025
f9fe5b5
[feat] Update toast (#2397)
xtbase Jun 13, 2025
fd37650
chore: cleanup types and export utils (#2394)
abcrane123 Jun 13, 2025
74252e8
[feat] swap audit (#2379)
xtbase Jun 13, 2025
1aaeda5
[chore] core/api folder audit (#2392)
xtbase Jun 16, 2025
9487c5b
chore: Make theming based on data-attribute (#2410)
dgca Jun 25, 2025
2e66a93
chore: Merge main into ock-v1 (#2411)
dgca Jun 26, 2025
d051c38
chore: Prefix component classnames (#2310)
dgca Jun 26, 2025
4bd1b52
v1: Wallet audit (#2383)
dgca Jun 27, 2025
93e036f
refactor: MiniKit and OnchainKit audit (#2412)
dgca Jun 28, 2025
9502adf
chore: Merge main into onchainkit-v1 (#2414)
dgca Jun 30, 2025
b9c335a
Bump onchainkit version to v1
dgca Jun 30, 2025
483a3b0
chore: Publish create-onchain@alpha (#2416)
dgca Jul 1, 2025
0b46fe1
chore: add 'use client' directive to core provider modules for Next.j…
0xFloyd Jul 3, 2025
028865b
chore: Create new templates directory and add basic OnchainKit templa…
dgca Jul 7, 2025
021d8fb
chore: Simplify MiniKit template (#2420)
dgca Jul 7, 2025
b5970f8
chore: Update create-onchain CLI tool to handle new templates (#2421)
dgca Jul 8, 2025
c42d44a
refactor: Use floating UI for wallet dropdown (#2433)
dgca Jul 24, 2025
a0182c8
fix: Move wallet click outside logic to WalletDropdown (#2447)
dgca Aug 8, 2025
1616b94
fix: Get alpha into mergable state (#2452)
dgca Aug 15, 2025
ae083eb
Merge main into alpha
dgca Aug 15, 2025
c7bb397
frame-sdk => miniapp-sdk
dgca Aug 15, 2025
89dc81b
Remove notifications in playground
dgca Aug 15, 2025
60b9956
Skip create-onchain test if on alpha branch, since it checks out @latest
dgca Aug 15, 2025
f6b3b9e
refactor: Use Mantine for minikit example app (#2458)
dgca Aug 17, 2025
f9f09c3
chore: Set account association in MiniKit example app (#2459)
dgca Aug 17, 2025
def24a1
Add name to example minikit app fc:frame
dgca Aug 17, 2025
d7daf07
Add logging to useUserInfo
dgca Aug 17, 2025
6e2d959
Add logging to getUrlHost
dgca Aug 17, 2025
9142bf2
Try to get the hostname from request headers
dgca Aug 17, 2025
8674a3f
Clean up minikit example app hostname resolution
dgca Aug 17, 2025
2cd48df
feat: Add batched transaction example to MiniKit Example App (#2460)
dgca Aug 17, 2025
bd04a8d
fix: ConnectWallet render prop (#2454)
dgca Aug 18, 2025
ca070bf
feat: Update Sign in with Base wallet UI (#2456)
dgca Aug 18, 2025
4bc3309
chore: Upgrade guides + minor tweaks (#2464)
dgca Aug 18, 2025
3f75642
Add new project section to upgrade guide
dgca Aug 18, 2025
7659eae
Fix lint issues
dgca Aug 18, 2025
0462f5a
fix: Include .gitignore in alpha projects (#2467)
dgca Aug 20, 2025
5967791
See context
dgca Aug 21, 2025
c0b3675
pre
dgca Aug 21, 2025
df618c3
Overflow scroll context
dgca Aug 21, 2025
f96d9e1
Test logging quickauth payload
dgca Aug 21, 2025
ce1581b
feat: Add optional `defaultPublicClients` prop to allow creating cust…
dgca Sep 3, 2025
6d65eee
feat: adding support for custom unmounted content for wallet
xtbase Sep 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .changeset/formatter.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,4 @@ const changelogFunctions = {
},
};

export default changelogFunctions;
export default changelogFunctions;
43 changes: 0 additions & 43 deletions .github/labeler.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches: ['main']
pull_request:
branches: ['main']
branches: ['main', 'onchainkit-v1']
permissions:
contents: read
jobs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cli-basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:

jobs:
test:
if: github.head_ref != 'alpha'
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "cli: build & install minikit - snake"
name: "cli: build & install minikit"

on:
pull_request:
Expand All @@ -12,6 +12,7 @@ on:

jobs:
test:
if: github.head_ref != 'alpha'
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down Expand Up @@ -48,7 +49,7 @@ jobs:
run: |
mkdir test-project
cd test-project
(sleep 1; echo ""; sleep 1; echo ""; sleep 1; echo -e "\033[D\n"; sleep 1; echo -e "\033[D\n") | ../packages/create-onchain/dist/esm/cli.js --template=minikit-snake
(sleep 1; echo ""; sleep 1; echo ""; sleep 1; echo -e "\033[D\n"; sleep 1; echo -e "\033[D\n") | ../packages/create-onchain/dist/esm/cli.js --mini

- name: Install & Build test project
working-directory: ./test-project/my-minikit-app
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches: ['main']
pull_request:
branches: ['main']
branches: ['main', 'onchainkit-v1']
permissions:
contents: read
jobs:
Expand Down
19 changes: 0 additions & 19 deletions .github/workflows/labeler.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches: ['main']
pull_request:
branches: ['main']
branches: ['main', 'onchainkit-v1']
permissions:
contents: read
jobs:
Expand Down
15 changes: 13 additions & 2 deletions .github/workflows/release-alpha.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- alpha
paths:
- 'packages/onchainkit/**'

concurrency: ${{ github.workflow }}-${{ github.ref }}

Expand All @@ -28,13 +30,22 @@ jobs:
- name: 'Setup'
uses: ./.github/actions/setup

- name: Build
- name: Build OnchainKit
shell: bash
run: pnpm f:ock build

- name: Build create-onchain
shell: bash
run: pnpm f:create build

- name: Set deployment token
run: npm config set '//registry.npmjs.org/:_authToken' "${{ secrets.NPM_TOKEN }}"

- name: Publish alpha
- name: Publish OnchainKit alpha
id: publish-ock
shell: bash
run: pnpm f:ock publish-prerelease --tag alpha

- name: Publish create-onchain alpha
shell: bash
run: pnpm f:create publish-prerelease --tag alpha --version ${{ steps.publish-ock.outputs.version }}
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches: ['main']
pull_request:
branches: ['main']
branches: ['main', 'alpha']
permissions:
contents: read
jobs:
Expand Down
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ esm
tmp
/out-tsc
src/styles.css
src/tailwind.css

# dependencies
node_modules
Expand All @@ -31,6 +30,7 @@ npm-debug.log
yarn-error.log
testem.log
/typings
.ignore

# System Files
.DS_Store
Expand Down Expand Up @@ -59,5 +59,7 @@ storybook-static/
# Tarballs
*.tgz

# cursor
.cursorrules
# AI agent rules
.cursorrules
AGENT.md
.claude
103 changes: 103 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Plan & Review

### Before starting work
- Write a plan to .claude/tasks/TASK_NAME.md
- The plan should be a detailed implementation plan and the reasoning behind the plan, the tasks to implement the plan, and a briefdescription of each task
- Don't over plan, keep things simple and focused
- After you write the plan, ask me to review it. Do not continue until I approve the plan
- If it's clear that the task is too trivial to require a plan, you may skip the step of creating the written TASK_NAME.md. You should still start by explaining the plan of attack, and asking for approval before starting

### While implementing
- Update the plan as you go
- After you complete a task, mark it as done, and add a brief description of the changes you made

## Development Commands

### Building and Development
- `pnpm install` - Install dependencies across all packages
- `pnpm build` - Build all packages
- `pnpm f:ock build` - Build OnchainKit package only
- `pnpm f:play dev:watch` - Start playground in watch mode with OnchainKit rebuilding automatically
- `pnpm f:play dev` - Start playground development server only

### Testing and Quality
- `pnpm f:ock test` - Run tests for OnchainKit package
- `pnpm f:ock test:watch` - Run tests in watch mode
- `pnpm f:ock test:coverage` - Run tests with coverage
- `pnpm f:ock lint` - Run ESLint on OnchainKit package
- `pnpm f:ock typecheck` - Run TypeScript type checking

### Package Filters
The monorepo uses pnpm workspaces with these shortcuts:
- `pnpm f:ock` - `@coinbase/onchainkit` package
- `pnpm f:play` - `playground` package
- `pnpm f:create` - `create-onchain` package
- `pnpm f:manifest` - `miniapp-manifest-generator` package

## Architecture Overview

This is a monorepo containing multiple packages organized as pnpm workspaces:

### Core Package (`packages/onchainkit/`)
The main OnchainKit React component library with modular exports:
- `/api` - API utilities for blockchain operations
- `/buy` - Buy/funding components and hooks
- `/checkout` - E-commerce checkout components
- `/earn` - Yield/staking components (Morpho integration)
- `/fund` - Onramp funding components
- `/identity` - ENS/Basename identity components
- `/minikit` - Farcaster MiniKit integration
- `/swap` - Token swap components
- `/transaction` - Transaction components and utilities
- `/wallet` - Wallet connection components

### Supporting Packages
- `packages/playground/` - Next.js demo app for testing components
- `packages/create-onchain/` - CLI tool for bootstrapping apps (`npm create onchain`)
- `packages/miniapp-manifest-generator/` - Tool for generating Farcaster MiniApp manifests

### Templates and Examples
- `templates/` - Starter templates for different use cases
- `examples/` - Example implementations

## Key Development Patterns

### Component Structure
Components follow a consistent pattern with:
- Main component file (e.g., `Swap.tsx`)
- Provider component for context (e.g., `SwapProvider.tsx`)
- Hook files in `/hooks` subdirectory
- Utility functions in `/utils` subdirectory
- Type definitions in `types.ts`

### Testing Strategy
- Comprehensive test coverage with Vitest
- Component tests using React Testing Library
- Mock data in `/mocks` directories where needed

### Build System
- Vite for building the main package
- Module exports for tree-shaking optimization
- TypeScript with strict configuration
- PostCSS with Tailwind CSS preprocessing

### Styling
- Tailwind CSS with custom theme configuration
- CSS-in-JS for component-specific styles
- Responsive design patterns throughout

## Development Workflow

1. Use `pnpm f:play dev:watch` for component development - this runs the playground with OnchainKit rebuilding automatically
2. View changes at http://localhost:3000
3. Run tests with `pnpm f:ock test` before committing
4. Use `pnpm f:ock lint` and `pnpm f:ock typecheck` to ensure code quality

## Package Management
- Uses pnpm v10 with workspaces
- Node.js v20 required
- Peer dependencies: React 19, Viem 2.27+, Wagmi 2.16+
Loading