1k-adding-chains

Adding New Chains to OneKey

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "1k-adding-chains" with this command: npx skills add onekeyhq/app-monorepo/onekeyhq-app-monorepo-1k-adding-chains

Adding New Chains to OneKey

Overview

OneKey supports 40+ blockchains with pluggable chain implementations. This guide covers the process of adding new chain support.

Steps to Add a New Chain

  1. Implement Chain Core Logic

Location: packages/core/src/chains/

Create a new directory for the chain:

packages/core/src/chains/mychain/ ├── index.ts # Main exports ├── types.ts # Chain-specific types ├── CoreChainSoftware/ # Software wallet implementation │ └── index.ts ├── sdkMychain/ # SDK wrapper if needed │ └── index.ts └── @tests/ # Chain tests └── index.test.ts

  1. Add Chain Configuration

Location: packages/shared/src/config/chains/

Add chain constants and configuration:

export const CHAIN_MYCHAIN = { id: 'mychain', name: 'My Chain', symbol: 'MYC', decimals: 18, // ... other chain config };

  1. Update UI Components for Chain-Specific Features

Location: packages/kit/src/

Add any chain-specific UI components or modifications needed for:

  • Transaction building

  • Address display

  • Token management

  • Network selection

  1. Add Tests for Chain Functionality

Location: packages/core/src/chains/mychain/@tests/

Write comprehensive tests:

describe('MyChain', () => { it('should generate valid addresses', () => { // test address generation });

it('should sign transactions correctly', () => { // test transaction signing });

it('should validate addresses', () => { // test address validation }); });

Chain Implementation Checklist

  • Core chain logic in packages/core/src/chains/

  • Chain configuration in packages/shared/

  • Address generation and validation

  • Transaction building and signing

  • Balance fetching

  • Token support (if applicable)

  • Hardware wallet support (if applicable)

  • UI components updated

  • Tests written and passing

  • Documentation added

Reference Existing Implementations

Look at existing chain implementations for guidance:

  • EVM chains: packages/core/src/chains/evm/

  • Bitcoin: packages/core/src/chains/btc/

  • Solana: packages/core/src/chains/sol/

Common Patterns

Chain Registry Pattern

// packages/core/src/chains/index.ts export const chainRegistry = { evm: () => import('./evm'), btc: () => import('./btc'), sol: () => import('./sol'), mychain: () => import('./mychain'), };

Address Validation

export function validateAddress(address: string): boolean { // Implement chain-specific validation return isValidAddress(address); }

Transaction Building

export async function buildTransaction(params: TxParams): Promise<UnsignedTx> { // Build unsigned transaction return { // transaction data }; }

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

1k-defi-module-integration

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
General

implementing-figma-designs

No summary provided by upstream source.

Repository SourceNeeds Review