1k-adding-chains
1
总安装量
1
周安装量
#50977
全站排名
安装命令
npx skills add https://github.com/majiayu000/claude-skill-registry --skill 1k-adding-chains
Agent 安装分布
replit
1
amp
1
trae-cn
1
kimi-cli
1
codex
1
Skill 文档
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
2. 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
};
3. 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
4. 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
};
}