About 1k-feature-guides
A skill with development guides for extending OneKey app functionality. It covers blockchain chains, WebSocket events, push notifications, and pages and routes, with implementation steps and relevant files.
Key features
- 01Guide for adding blockchain chains
- 02Instructions for WebSocket event integration
- 03Push notification modes and handling
- 04Page types and route configuration
- 05Key files and reference implementations
Use cases
- 01Add a blockchain chain to OneKey
- 02Implement and acknowledge a WebSocket event
- 03Set up notification navigation or link opening
- 04Add a page and configure its route
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-feature-guidesAfter installing, type/1k-feature-guidesin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/rules/adding-chains.mdadding-socket-events.mdnotification-system.mdpage-and-route.mdDetails
From the project READMEFeature Development Guides
Comprehensive guides for extending OneKey app functionality.
Quick Reference
| Feature | Guide | Key Files |
|---|---|---|
| Add blockchain chain | adding-chains.md | packages/core/src/chains/ |
| Add WebSocket events | adding-socket-events.md | packages/shared/types/socket.ts |
| Push notifications | notification-system.md | packages/kit-bg/src/services/ServiceNotification/ |
| Pages & routes | page-and-route.md | packages/kit/src/routes/ |
Adding New Chains
See: references/rules/adding-chains.md
Key steps:
- Implement chain core logic in
packages/core/src/chains/mychain/ - Add chain configuration in
packages/shared/src/config/chains/ - Update UI components for chain-specific features
- Add comprehensive tests
Reference implementations:
- EVM chains:
packages/core/src/chains/evm/ - Bitcoin:
packages/core/src/chains/btc/ - Solana:
packages/core/src/chains/sol/
Adding WebSocket Events
See: references/rules/adding-socket-events.md
Key steps:
- Define event name in
EAppSocketEventNamesenum - Define payload type interface with
msgId: string - Add event handler in
PushProviderWebSocket.initWebSocket() - Always acknowledge messages via
ackNotificationMessage
this.socket.on(EAppSocketEventNames.myEvent, (payload: IMyPayload) => {
void this.backgroundApi.serviceNotification.ackNotificationMessage({
msgId: payload.msgId,
action: ENotificationPushMessageAckAction.arrived,
});
void this.backgroundApi.someService.handleEvent(payload);
});
Notification System
See: references/rules/notification-system.md
Notification modes:
| Mode | Action |
|---|---|
| 1 (page) | Navigate to specific page |
| 2 (dialog) | Show dialog |
| 3 (openInBrowser) | Open URL in external browser |
| 4 (openInApp) | Open URL in in-app browser |
| 5 (openInDapp) | Open URL in DApp browser |
Key files:
- Service:
packages/kit-bg/src/services/ServiceNotification/ServiceNotification.ts - Utils:
packages/shared/src/utils/notificationsUtils.ts - Types:
packages/shared/types/notification.ts
Pages & Routes
See: references/rules/page-and-route.md
Page types:
| Type | Description |
|---|---|
modal | Modal overlay pages |
stack | Tab route pages |
onboarding | Full screen onboarding pages |
Route configuration locations:
- Modal routes:
packages/kit/src/routes/Modal/router.tsx - Tab routes:
packages/kit/src/routes/Tab/router.ts - Onboarding:
packages/kit/src/views/Onboardingv2/router/index.tsx
Important:
- ⚠️ Never delete pages - use redirect pattern for deprecated routes
- ⚠️ Route paths must be unique across the entire application
- ⚠️ Always use
pop: truewithnavigation.navigate
Related Skills
/1k-coding-patterns- React and TypeScript best practices/1k-architecture- Project structure and import rules/1k-state-management- Jotai atom patterns
Comments
Markdown supported