@bitshard.io/bitshard-sdk 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 bitshard-io
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,211 @@
1
+ # BitShard SDK
2
+
3
+ BitShard SDK is a TypeScript library for distributed key generation (DKG) and threshold signatures using the DKLs23 protocol. It enables secure multi-party computation (MPC) wallets with flexible n-of-m threshold configurations.
4
+
5
+ ## Features
6
+
7
+ - **Distributed Key Generation**: Secure generation of threshold key shares across multiple parties
8
+ - **Threshold Signatures**: Sign transactions with any t-of-n parties
9
+ - **Multi-Chain Support**: Native support for Ethereum, Bitcoin, and EVM-compatible chains
10
+ - **WebSocket Coordination**: Real-time protocol coordination between parties
11
+ - **Flexible Configuration**: Support for any n-of-m threshold scheme
12
+ - **Pre-signature Management**: Secure generation and consumption of pre-signatures
13
+ - **Address Derivation**: Consistent address generation across all supported chains
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm i @bitshard.io/bitshard-sdk
19
+ ```
20
+
21
+ For browser environments, you'll also need the web WASM module:
22
+
23
+ ```bash
24
+ npm install @silencelaboratories/dkls-wasm-ll-web
25
+ ```
26
+
27
+ ## Quick Start
28
+
29
+ ### Local Testing (All Parties in One Process)
30
+
31
+ ```typescript
32
+ import { BitShardSDK } from '@bitshard.io/bitshard-sdk'
33
+
34
+ const sdk = new BitShardSDK();
35
+
36
+ // Create a 2-of-3 threshold wallet locally
37
+ const wallet = await sdk.createLocalWallet({
38
+ totalParties: 3,
39
+ threshold: 2,
40
+ partyIds: [0, 1, 2]
41
+ });
42
+
43
+ // Derive addresses
44
+ const addresses = sdk.deriveAddresses(wallet.publicKey);
45
+ console.log('Ethereum address:', addresses.ethereum);
46
+ console.log('Bitcoin address:', addresses.bitcoin);
47
+
48
+ // Sign a message
49
+ const message = 'Hello BitShard!';
50
+ const signature = await sdk.personalSign(message, wallet.keyshares, {
51
+ threshold: 2,
52
+ publicKey: wallet.publicKey
53
+ });
54
+ ```
55
+
56
+ ### Distributed Setup (WebSocket Coordination)
57
+
58
+ ```typescript
59
+ // Party 0 (Coordinator)
60
+ const party0 = sdk.createParty({
61
+ partyId: 0,
62
+ totalParties: 3,
63
+ threshold: 2,
64
+ role: 'coordinator'
65
+ });
66
+
67
+ // Connect to WebSocket server
68
+ await party0.connect('ws://localhost:8080/ws');
69
+
70
+ // Initiate DKG
71
+ const session = await party0.initiateDKG();
72
+
73
+ // Other parties join using session.id
74
+ // ... coordinate protocol rounds via WebSocket ...
75
+
76
+ const keyshare = await party0.finalize();
77
+ ```
78
+
79
+ ## Architecture
80
+
81
+ The SDK is organized into several modules:
82
+
83
+ - **Core**: DKLS protocol implementation and party management
84
+ - **Crypto**: Address derivation and encoding utilities
85
+ - **Protocols**: DKG, signing, and key refresh protocols
86
+ - **Chains**: Multi-chain configuration and transaction handling
87
+ - **RPC**: EIP-1193 compatible RPC methods
88
+ - **WebSocket**: Real-time protocol coordination
89
+
90
+ ## Security
91
+
92
+ **⚠️ CRITICAL: Pre-signatures MUST NOT be reused**
93
+
94
+ Reusing pre-signatures will expose your private key. The SDK includes built-in protection against pre-signature reuse, but developers must ensure proper handling in their applications.
95
+
96
+ ## Documentation
97
+
98
+ - [Architecture Design](./ARCHITECTURE_DESIGN.md)
99
+ - [API Specification](./API_SPEC.md)
100
+ - [API Reference](./API_REFERENCE.md)
101
+
102
+ ## Examples
103
+
104
+ See the [examples](./examples) directory for:
105
+ - Basic wallet creation
106
+ - WebSocket coordination
107
+ - Multi-party signing
108
+ - Chain-specific transactions
109
+ - Docker deployment
110
+
111
+ ## License
112
+
113
+ MIT
114
+
115
+ ## Contributing
116
+
117
+ Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.
118
+
119
+ # Releasing new version guide
120
+
121
+ This document describes the standard release process for publishing the `@bitshard.io/bitshard-sdk` package.
122
+
123
+ > **Rule:** Always push commits and tags to GitHub **before** publishing to npm.
124
+
125
+ ---
126
+
127
+ ## Release Steps
128
+
129
+ ### 1. Commit your changes
130
+
131
+ ```bash
132
+ git add .
133
+ git commit -m "feat: describe your change"
134
+ ```
135
+
136
+ ---
137
+
138
+ ### 2. Bump version and create a Git tag
139
+
140
+ Patch release example (`0.0.1` → `0.0.2`):
141
+
142
+ ```bash
143
+ npm version patch
144
+ ```
145
+
146
+ This will:
147
+ - Update `package.json`
148
+ - Create an annotated Git tag (e.g. `v0.0.2`)
149
+
150
+ ---
151
+
152
+ ### 3. Push commits and tags to GitHub
153
+
154
+ ```bash
155
+ git push origin main --follow-tags
156
+ ```
157
+
158
+ This ensures Git is the source of truth before publishing.
159
+
160
+ ---
161
+
162
+ ### 4. Build the package
163
+
164
+ ```bash
165
+ npm run build
166
+ ```
167
+
168
+ Verify:
169
+ - Build output exists (e.g. `dist/`)
170
+ - `package.json` points to built files (`main`, `module`, `types`)
171
+
172
+ ---
173
+
174
+ ### 5. Publish to npm
175
+
176
+ ```bash
177
+ npm publish --access public
178
+ ```
179
+
180
+ > Scoped packages default to private unless published with `--access public` or `publishConfig.access = "public"`.
181
+
182
+ ---
183
+
184
+ ### 6. Verify release
185
+
186
+ ```bash
187
+ npm view @bitshard.io/bitshard-sdk version
188
+ git tag --list
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Release Checklist
194
+
195
+ - [ ] Changes committed
196
+ - [ ] Version bumped via `npm version`
197
+ - [ ] Commits and tags pushed to GitHub
198
+ - [ ] Build successful
199
+ - [ ] npm publish successful
200
+
201
+ ---
202
+
203
+ ## Notes
204
+
205
+ - Do not publish to npm without a Git tag
206
+ - Ensure you are authenticated with npm using a publish-capable token (2FA-compliant)
207
+ - Prefer annotated tags for all releases
208
+
209
+ ## Support
210
+
211
+ For support, please open an issue on GitHub or contact dev@bitshard.io
@@ -24,6 +24,18 @@ export declare class BitShardSDK {
24
24
  threshold?: number;
25
25
  partyIds?: number[];
26
26
  }): Promise<LocalWallet>;
27
+ /**
28
+ * Serialize keyshares (WASM objects) to base64 array for storage
29
+ * @param keyshares Array of Keyshare WASM objects
30
+ * @returns Array of base64-encoded strings
31
+ */
32
+ static serializeKeyshares(keyshares: Keyshare[]): string[];
33
+ /**
34
+ * Deserialize base64 array back to Keyshare WASM objects
35
+ * @param serialized Array of base64-encoded strings
36
+ * @returns Array of Keyshare WASM objects
37
+ */
38
+ static deserializeKeyshares(serialized: string[]): Keyshare[];
27
39
  /**
28
40
  * Create a party for distributed setup
29
41
  * @param config Party configuration
@@ -55,9 +67,9 @@ export declare class BitShardSDK {
55
67
  * @param options Signing options including publicKey for v calculation
56
68
  * @returns Signature result
57
69
  */
58
- personalSign(message: string, keyshares: Keyshare[], options?: {
70
+ personalSign(message: string, keyshares: Keyshare[], options: {
59
71
  threshold?: number;
60
- publicKey?: string;
72
+ publicKey: string;
61
73
  }): Promise<SignatureResult>;
62
74
  /**
63
75
  * Sign a personal message using a wallet (convenience method)
@@ -137,9 +149,6 @@ export declare class BitShardSDK {
137
149
  * @returns Bitcoin configuration or undefined
138
150
  */
139
151
  getBitcoinConfig(): BitcoinConfig | undefined;
140
- /**
141
- * Initialize default chain configurations
142
- */
143
152
  private initializeDefaultChains;
144
153
  /**
145
154
  * Get preset chain configuration
@@ -1 +1 @@
1
- {"version":3,"file":"BitShardSDK.d.ts","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BitShardSDK.d.ts","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ const dkls_wasm_ll_node_1 = require("@silencelaboratories/dkls-wasm-ll-node");
5
5
  const DKLSService_1 = require("./core/DKLSService");
6
6
  const DKLSParty_1 = require("./core/DKLSParty");
7
7
  const addresses_1 = require("./crypto/addresses");
8
+ const config_1 = require("./chains/config");
8
9
  /**
9
10
  * Main SDK class for BitShard MPC operations
10
11
  */
@@ -52,6 +53,28 @@ class BitShardSDK {
52
53
  }
53
54
  };
54
55
  }
56
+ /**
57
+ * Serialize keyshares (WASM objects) to base64 array for storage
58
+ * @param keyshares Array of Keyshare WASM objects
59
+ * @returns Array of base64-encoded strings
60
+ */
61
+ static serializeKeyshares(keyshares) {
62
+ return keyshares.map(ks => {
63
+ const bytes = ks.toBytes();
64
+ return Buffer.from(bytes).toString('base64');
65
+ });
66
+ }
67
+ /**
68
+ * Deserialize base64 array back to Keyshare WASM objects
69
+ * @param serialized Array of base64-encoded strings
70
+ * @returns Array of Keyshare WASM objects
71
+ */
72
+ static deserializeKeyshares(serialized) {
73
+ return serialized.map(b64 => {
74
+ const bytes = new Uint8Array(Buffer.from(b64, 'base64'));
75
+ return dkls_wasm_ll_node_1.Keyshare.fromBytes(bytes);
76
+ });
77
+ }
55
78
  /**
56
79
  * Create a party for distributed setup
57
80
  * @param config Party configuration
@@ -100,7 +123,7 @@ class BitShardSDK {
100
123
  * @param options Signing options including publicKey for v calculation
101
124
  * @returns Signature result
102
125
  */
103
- async personalSign(message, keyshares, options = {}) {
126
+ async personalSign(message, keyshares, options) {
104
127
  // Prepare message with EIP-191 prefix
105
128
  const messageBytes = Buffer.from(message, 'utf8');
106
129
  const prefix = `\x19Ethereum Signed Message:\n${messageBytes.length}`;
@@ -111,7 +134,7 @@ class BitShardSDK {
111
134
  // Hash the prefixed message with Keccak256 (Ethereum standard)
112
135
  const { keccak256 } = require('viem');
113
136
  const messageHash = Buffer.from(keccak256(prefixedMessage).slice(2), 'hex');
114
- // Sign with DKLS (pass public key if available for v calculation)
137
+ // Sign with DKLS (public key required for v calculation)
115
138
  const threshold = options.threshold ?? keyshares.length;
116
139
  const publicKey = options.publicKey;
117
140
  return this.dklsService.signMessage(messageHash, keyshares, threshold, publicKey);
@@ -236,98 +259,10 @@ class BitShardSDK {
236
259
  getBitcoinConfig() {
237
260
  return this.bitcoinConfig;
238
261
  }
239
- /**
240
- * Initialize default chain configurations
241
- */
242
262
  initializeDefaultChains() {
243
- // Ethereum
244
- this.chains.set('ethereum', {
245
- chainId: 1,
246
- name: 'Ethereum Mainnet',
247
- rpcUrl: 'https://eth.llamarpc.com',
248
- explorer: 'https://etherscan.io',
249
- nativeCurrency: {
250
- name: 'Ether',
251
- symbol: 'ETH',
252
- decimals: 18
253
- }
254
- });
255
- // Arbitrum One
256
- this.chains.set('arbitrum-one', {
257
- chainId: 42161,
258
- name: 'Arbitrum One',
259
- rpcUrl: 'https://arb1.arbitrum.io/rpc',
260
- explorer: 'https://arbiscan.io',
261
- nativeCurrency: {
262
- name: 'Ether',
263
- symbol: 'ETH',
264
- decimals: 18
265
- },
266
- gasConfig: {
267
- maxFeePerGas: '0.1',
268
- maxPriorityFeePerGas: '0.01'
269
- }
270
- });
271
- // Arbitrum Nova
272
- this.chains.set('arbitrum-nova', {
273
- chainId: 42170,
274
- name: 'Arbitrum Nova',
275
- rpcUrl: 'https://nova.arbitrum.io/rpc',
276
- explorer: 'https://nova.arbiscan.io',
277
- nativeCurrency: {
278
- name: 'Ether',
279
- symbol: 'ETH',
280
- decimals: 18
281
- }
282
- });
283
- // Arbitrum Sepolia
284
- this.chains.set('arbitrum-sepolia', {
285
- chainId: 421614,
286
- name: 'Arbitrum Sepolia',
287
- rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
288
- explorer: 'https://sepolia.arbiscan.io',
289
- nativeCurrency: {
290
- name: 'Ether',
291
- symbol: 'ETH',
292
- decimals: 18
293
- }
294
- });
295
- // Polygon
296
- this.chains.set('polygon', {
297
- chainId: 137,
298
- name: 'Polygon',
299
- rpcUrl: 'https://polygon-rpc.com',
300
- explorer: 'https://polygonscan.com',
301
- nativeCurrency: {
302
- name: 'MATIC',
303
- symbol: 'MATIC',
304
- decimals: 18
305
- }
306
- });
307
- // BNB Smart Chain
308
- this.chains.set('bnb', {
309
- chainId: 56,
310
- name: 'BNB Smart Chain',
311
- rpcUrl: 'https://bsc-dataseed.binance.org',
312
- explorer: 'https://bscscan.com',
313
- nativeCurrency: {
314
- name: 'BNB',
315
- symbol: 'BNB',
316
- decimals: 18
317
- }
318
- });
319
- // Avalanche C-Chain
320
- this.chains.set('avalanche', {
321
- chainId: 43114,
322
- name: 'Avalanche C-Chain',
323
- rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
324
- explorer: 'https://snowtrace.io',
325
- nativeCurrency: {
326
- name: 'AVAX',
327
- symbol: 'AVAX',
328
- decimals: 18
329
- }
330
- });
263
+ for (const [name, config] of Object.entries(config_1.ALL_CHAINS)) {
264
+ this.chains.set(name, config);
265
+ }
331
266
  }
332
267
  /**
333
268
  * Get preset chain configuration
@@ -1 +1 @@
1
- {"version":3,"file":"BitShardSDK.js","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":";;;AAAA,8EAAkE;AAClE,oDAAiD;AACjD,gDAA6C;AAU7C,kDAAqD;AAErD;;GAEG;AACH,MAAa,WAAW;IAKpB;;;OAGG;IACH,YAAY,SAAoB,EAAE;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QAExB,4BAA4B;QAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,gCAAgC;QAChC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;gBAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAIpB,EAAE;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtF,uBAAuB;QACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExF,oCAAoC;QACpC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAC3C,4BAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CACtE,CAAC;QAEF,OAAO;YACH,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS;YACT,MAAM,EAAE;gBACJ,YAAY;gBACZ,SAAS;gBACT,QAAQ;aACX;SACJ,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAmB;QAC3B,OAAO,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAQ;QAClB,OAAO,yBAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAS;QACrB,OAAO,yBAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAoB;QAChC,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,YAAY,CAAC,CAAC;QAChD,OAAO;YACH,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS,EAAE,SAAS,CAAC,SAAS;SACjC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CACd,OAAe,EACf,SAAqB,EACrB,UAAsD,EAAE;QAExD,sCAAsC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,iCAAiC,YAAY,CAAC,MAAM,EAAE,CAAC;QACtE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3B,YAAY;SACf,CAAC,CAAC;QAEH,+DAA+D;QAC/D,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE5E,kEAAkE;QAClE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,sBAAsB,CACxB,OAAe,EACf,MAAmB,EACnB,UAAkC,EAAE;QAEpC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE;YAChD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;YACvD,SAAS,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACV,IAAyB,EACzB,SAAqB,EACrB,UAAsD,EAAE;QAExD,uCAAuC;QACvC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ;YACtC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAC3B,IAAyB,EACzB,MAAmB,EACnB,UAAkC,EAAE;QAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;YACvD,SAAS,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACjB,SAAc,EACd,SAAqB,EACrB,UAAkC,EAAE;QAEpC,yCAAyC;QACzC,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;QAEjF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CACpB,EAAO,EACP,SAAqB,EACrB,UAAkC,EAAE;QAEpC,6CAA6C;QAC7C,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAE5E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjF,OAAO,SAAS,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAY,EAAE,MAAmB;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,IAAY;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,MAAqB;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC3B,WAAW;QACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;YACxB,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,0BAA0B;YAClC,QAAQ,EAAE,sBAAsB;YAChC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,eAAe;QACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;YAC5B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,8BAA8B;YACtC,QAAQ,EAAE,qBAAqB;YAC/B,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;YACD,SAAS,EAAE;gBACP,YAAY,EAAE,KAAK;gBACnB,oBAAoB,EAAE,MAAM;aAC/B;SACJ,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;YAC7B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,8BAA8B;YACtC,QAAQ,EAAE,0BAA0B;YACpC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAChC,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,wCAAwC;YAChD,QAAQ,EAAE,6BAA6B;YACvC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;YACvB,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,yBAAyB;YACnC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACnB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,kCAAkC;YAC1C,QAAQ,EAAE,qBAAqB;YAC/B,cAAc,EAAE;gBACZ,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,uCAAuC;YAC/C,QAAQ,EAAE,sBAAsB;YAChC,cAAc,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,IAAY;QAC/B,4BAA4B;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACJ;AA1ZD,kCA0ZC"}
1
+ {"version":3,"file":"BitShardSDK.js","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- /**
2
- * Chain configuration registry
3
- */
4
- export type { ChainConfig, BitcoinConfig } from '../core/types';
1
+ import type { ChainConfig, BitcoinConfig } from '../core/types';
2
+ export type { ChainConfig, BitcoinConfig };
3
+ export declare const ARBITRUM_CHAINS: Record<string, ChainConfig>;
4
+ export declare const EVM_CHAINS: Record<string, ChainConfig>;
5
+ export declare const ALL_CHAINS: Record<string, ChainConfig>;
6
+ export declare function getChain(network: string): ChainConfig;
7
+ export declare function getArbitrumChains(): Record<string, ChainConfig>;
8
+ export declare function getSupportedChains(): Record<string, ChainConfig>;
5
9
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AAE3C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA8BvD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAmClD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAGlD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAMrD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAE/D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAEhE"}
@@ -1,7 +1,91 @@
1
1
  "use strict";
2
- /**
3
- * Chain configuration registry
4
- */
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- // TODO: Implement chain registry
3
+ exports.ALL_CHAINS = exports.EVM_CHAINS = exports.ARBITRUM_CHAINS = void 0;
4
+ exports.getChain = getChain;
5
+ exports.getArbitrumChains = getArbitrumChains;
6
+ exports.getSupportedChains = getSupportedChains;
7
+ exports.ARBITRUM_CHAINS = {
8
+ 'arbitrum-one': {
9
+ chainId: 42161,
10
+ name: 'Arbitrum One',
11
+ rpcUrl: 'https://arb1.arbitrum.io/rpc',
12
+ explorer: 'https://arbiscan.io',
13
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
14
+ gasConfig: { maxFeePerGas: '0.1', maxPriorityFeePerGas: '0.01' },
15
+ isTestnet: false,
16
+ alchemySubdomain: 'arb-mainnet',
17
+ },
18
+ 'arbitrum-nova': {
19
+ chainId: 42170,
20
+ name: 'Arbitrum Nova',
21
+ rpcUrl: 'https://nova.arbitrum.io/rpc',
22
+ explorer: 'https://nova.arbiscan.io',
23
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
24
+ isTestnet: false,
25
+ alchemySubdomain: 'arbnova-mainnet',
26
+ },
27
+ 'arbitrum-sepolia': {
28
+ chainId: 421614,
29
+ name: 'Arbitrum Sepolia',
30
+ rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
31
+ explorer: 'https://sepolia.arbiscan.io',
32
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
33
+ isTestnet: true,
34
+ faucetUrl: 'https://faucet.quicknode.com/arbitrum/sepolia',
35
+ alchemySubdomain: 'arb-sepolia',
36
+ },
37
+ };
38
+ exports.EVM_CHAINS = {
39
+ 'ethereum': {
40
+ chainId: 1,
41
+ name: 'Ethereum Mainnet',
42
+ rpcUrl: 'https://eth.llamarpc.com',
43
+ explorer: 'https://etherscan.io',
44
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
45
+ isTestnet: false,
46
+ alchemySubdomain: 'eth-mainnet',
47
+ },
48
+ 'polygon': {
49
+ chainId: 137,
50
+ name: 'Polygon',
51
+ rpcUrl: 'https://polygon-rpc.com',
52
+ explorer: 'https://polygonscan.com',
53
+ nativeCurrency: { name: 'MATIC', symbol: 'MATIC', decimals: 18 },
54
+ isTestnet: false,
55
+ alchemySubdomain: 'polygon-mainnet',
56
+ },
57
+ 'bnb': {
58
+ chainId: 56,
59
+ name: 'BNB Smart Chain',
60
+ rpcUrl: 'https://bsc-dataseed.binance.org',
61
+ explorer: 'https://bscscan.com',
62
+ nativeCurrency: { name: 'BNB', symbol: 'BNB', decimals: 18 },
63
+ isTestnet: false,
64
+ },
65
+ 'avalanche': {
66
+ chainId: 43114,
67
+ name: 'Avalanche C-Chain',
68
+ rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
69
+ explorer: 'https://snowtrace.io',
70
+ nativeCurrency: { name: 'AVAX', symbol: 'AVAX', decimals: 18 },
71
+ isTestnet: false,
72
+ },
73
+ };
74
+ exports.ALL_CHAINS = {
75
+ ...exports.ARBITRUM_CHAINS,
76
+ ...exports.EVM_CHAINS,
77
+ };
78
+ function getChain(network) {
79
+ const chain = exports.ALL_CHAINS[network];
80
+ if (!chain) {
81
+ throw new Error(`Unknown chain: ${network}. Supported: ${Object.keys(exports.ALL_CHAINS).join(', ')}`);
82
+ }
83
+ return chain;
84
+ }
85
+ function getArbitrumChains() {
86
+ return { ...exports.ARBITRUM_CHAINS };
87
+ }
88
+ function getSupportedChains() {
89
+ return { ...exports.ALL_CHAINS };
90
+ }
7
91
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,iCAAiC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"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"}
@@ -190,6 +190,12 @@ export interface ChainConfig {
190
190
  maxFeePerGas?: string;
191
191
  maxPriorityFeePerGas?: string;
192
192
  };
193
+ /** Whether this is a testnet */
194
+ isTestnet?: boolean;
195
+ /** Faucet URL for testnets */
196
+ faucetUrl?: string;
197
+ /** Alchemy subdomain for API access (e.g. "arb-sepolia") */
198
+ alchemySubdomain?: string;
193
199
  }
194
200
  /**
195
201
  * Bitcoin network configuration
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitshard.io/bitshard-sdk",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "BitShard MPC SDK for distributed key generation and threshold signatures",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,6 +11,7 @@ import type {
11
11
  BitcoinConfig
12
12
  } from './core/types';
13
13
  import { deriveAddresses } from './crypto/addresses';
14
+ import { ALL_CHAINS } from './chains/config';
14
15
 
15
16
  /**
16
17
  * Main SDK class for BitShard MPC operations
@@ -77,6 +78,30 @@ export class BitShardSDK {
77
78
  };
78
79
  }
79
80
 
81
+ /**
82
+ * Serialize keyshares (WASM objects) to base64 array for storage
83
+ * @param keyshares Array of Keyshare WASM objects
84
+ * @returns Array of base64-encoded strings
85
+ */
86
+ static serializeKeyshares(keyshares: Keyshare[]): string[] {
87
+ return keyshares.map(ks => {
88
+ const bytes = ks.toBytes();
89
+ return Buffer.from(bytes).toString('base64');
90
+ });
91
+ }
92
+
93
+ /**
94
+ * Deserialize base64 array back to Keyshare WASM objects
95
+ * @param serialized Array of base64-encoded strings
96
+ * @returns Array of Keyshare WASM objects
97
+ */
98
+ static deserializeKeyshares(serialized: string[]): Keyshare[] {
99
+ return serialized.map(b64 => {
100
+ const bytes = new Uint8Array(Buffer.from(b64, 'base64'));
101
+ return Keyshare.fromBytes(bytes);
102
+ });
103
+ }
104
+
80
105
  /**
81
106
  * Create a party for distributed setup
82
107
  * @param config Party configuration
@@ -132,7 +157,7 @@ export class BitShardSDK {
132
157
  async personalSign(
133
158
  message: string,
134
159
  keyshares: Keyshare[],
135
- options: { threshold?: number; publicKey?: string } = {}
160
+ options: { threshold?: number; publicKey: string }
136
161
  ): Promise<SignatureResult> {
137
162
  // Prepare message with EIP-191 prefix
138
163
  const messageBytes = Buffer.from(message, 'utf8');
@@ -146,7 +171,7 @@ export class BitShardSDK {
146
171
  const { keccak256 } = require('viem');
147
172
  const messageHash = Buffer.from(keccak256(prefixedMessage).slice(2), 'hex');
148
173
 
149
- // Sign with DKLS (pass public key if available for v calculation)
174
+ // Sign with DKLS (public key required for v calculation)
150
175
  const threshold = options.threshold ?? keyshares.length;
151
176
  const publicKey = options.publicKey;
152
177
 
@@ -308,104 +333,10 @@ export class BitShardSDK {
308
333
  return this.bitcoinConfig;
309
334
  }
310
335
 
311
- /**
312
- * Initialize default chain configurations
313
- */
314
336
  private initializeDefaultChains(): void {
315
- // Ethereum
316
- this.chains.set('ethereum', {
317
- chainId: 1,
318
- name: 'Ethereum Mainnet',
319
- rpcUrl: 'https://eth.llamarpc.com',
320
- explorer: 'https://etherscan.io',
321
- nativeCurrency: {
322
- name: 'Ether',
323
- symbol: 'ETH',
324
- decimals: 18
325
- }
326
- });
327
-
328
- // Arbitrum One
329
- this.chains.set('arbitrum-one', {
330
- chainId: 42161,
331
- name: 'Arbitrum One',
332
- rpcUrl: 'https://arb1.arbitrum.io/rpc',
333
- explorer: 'https://arbiscan.io',
334
- nativeCurrency: {
335
- name: 'Ether',
336
- symbol: 'ETH',
337
- decimals: 18
338
- },
339
- gasConfig: {
340
- maxFeePerGas: '0.1',
341
- maxPriorityFeePerGas: '0.01'
342
- }
343
- });
344
-
345
- // Arbitrum Nova
346
- this.chains.set('arbitrum-nova', {
347
- chainId: 42170,
348
- name: 'Arbitrum Nova',
349
- rpcUrl: 'https://nova.arbitrum.io/rpc',
350
- explorer: 'https://nova.arbiscan.io',
351
- nativeCurrency: {
352
- name: 'Ether',
353
- symbol: 'ETH',
354
- decimals: 18
355
- }
356
- });
357
-
358
- // Arbitrum Sepolia
359
- this.chains.set('arbitrum-sepolia', {
360
- chainId: 421614,
361
- name: 'Arbitrum Sepolia',
362
- rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
363
- explorer: 'https://sepolia.arbiscan.io',
364
- nativeCurrency: {
365
- name: 'Ether',
366
- symbol: 'ETH',
367
- decimals: 18
368
- }
369
- });
370
-
371
- // Polygon
372
- this.chains.set('polygon', {
373
- chainId: 137,
374
- name: 'Polygon',
375
- rpcUrl: 'https://polygon-rpc.com',
376
- explorer: 'https://polygonscan.com',
377
- nativeCurrency: {
378
- name: 'MATIC',
379
- symbol: 'MATIC',
380
- decimals: 18
381
- }
382
- });
383
-
384
- // BNB Smart Chain
385
- this.chains.set('bnb', {
386
- chainId: 56,
387
- name: 'BNB Smart Chain',
388
- rpcUrl: 'https://bsc-dataseed.binance.org',
389
- explorer: 'https://bscscan.com',
390
- nativeCurrency: {
391
- name: 'BNB',
392
- symbol: 'BNB',
393
- decimals: 18
394
- }
395
- });
396
-
397
- // Avalanche C-Chain
398
- this.chains.set('avalanche', {
399
- chainId: 43114,
400
- name: 'Avalanche C-Chain',
401
- rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
402
- explorer: 'https://snowtrace.io',
403
- nativeCurrency: {
404
- name: 'AVAX',
405
- symbol: 'AVAX',
406
- decimals: 18
407
- }
408
- });
337
+ for (const [name, config] of Object.entries(ALL_CHAINS)) {
338
+ this.chains.set(name, config);
339
+ }
409
340
  }
410
341
 
411
342
  /**
@@ -1,7 +1,93 @@
1
- /**
2
- * Chain configuration registry
3
- */
1
+ import type { ChainConfig, BitcoinConfig } from '../core/types';
4
2
 
5
- export type { ChainConfig, BitcoinConfig } from '../core/types';
3
+ export type { ChainConfig, BitcoinConfig };
6
4
 
7
- // TODO: Implement chain registry
5
+ export const ARBITRUM_CHAINS: Record<string, ChainConfig> = {
6
+ 'arbitrum-one': {
7
+ chainId: 42161,
8
+ name: 'Arbitrum One',
9
+ rpcUrl: 'https://arb1.arbitrum.io/rpc',
10
+ explorer: 'https://arbiscan.io',
11
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
12
+ gasConfig: { maxFeePerGas: '0.1', maxPriorityFeePerGas: '0.01' },
13
+ isTestnet: false,
14
+ alchemySubdomain: 'arb-mainnet',
15
+ },
16
+ 'arbitrum-nova': {
17
+ chainId: 42170,
18
+ name: 'Arbitrum Nova',
19
+ rpcUrl: 'https://nova.arbitrum.io/rpc',
20
+ explorer: 'https://nova.arbiscan.io',
21
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
22
+ isTestnet: false,
23
+ alchemySubdomain: 'arbnova-mainnet',
24
+ },
25
+ 'arbitrum-sepolia': {
26
+ chainId: 421614,
27
+ name: 'Arbitrum Sepolia',
28
+ rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
29
+ explorer: 'https://sepolia.arbiscan.io',
30
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
31
+ isTestnet: true,
32
+ faucetUrl: 'https://faucet.quicknode.com/arbitrum/sepolia',
33
+ alchemySubdomain: 'arb-sepolia',
34
+ },
35
+ };
36
+
37
+ export const EVM_CHAINS: Record<string, ChainConfig> = {
38
+ 'ethereum': {
39
+ chainId: 1,
40
+ name: 'Ethereum Mainnet',
41
+ rpcUrl: 'https://eth.llamarpc.com',
42
+ explorer: 'https://etherscan.io',
43
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
44
+ isTestnet: false,
45
+ alchemySubdomain: 'eth-mainnet',
46
+ },
47
+ 'polygon': {
48
+ chainId: 137,
49
+ name: 'Polygon',
50
+ rpcUrl: 'https://polygon-rpc.com',
51
+ explorer: 'https://polygonscan.com',
52
+ nativeCurrency: { name: 'MATIC', symbol: 'MATIC', decimals: 18 },
53
+ isTestnet: false,
54
+ alchemySubdomain: 'polygon-mainnet',
55
+ },
56
+ 'bnb': {
57
+ chainId: 56,
58
+ name: 'BNB Smart Chain',
59
+ rpcUrl: 'https://bsc-dataseed.binance.org',
60
+ explorer: 'https://bscscan.com',
61
+ nativeCurrency: { name: 'BNB', symbol: 'BNB', decimals: 18 },
62
+ isTestnet: false,
63
+ },
64
+ 'avalanche': {
65
+ chainId: 43114,
66
+ name: 'Avalanche C-Chain',
67
+ rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
68
+ explorer: 'https://snowtrace.io',
69
+ nativeCurrency: { name: 'AVAX', symbol: 'AVAX', decimals: 18 },
70
+ isTestnet: false,
71
+ },
72
+ };
73
+
74
+ export const ALL_CHAINS: Record<string, ChainConfig> = {
75
+ ...ARBITRUM_CHAINS,
76
+ ...EVM_CHAINS,
77
+ };
78
+
79
+ export function getChain(network: string): ChainConfig {
80
+ const chain = ALL_CHAINS[network];
81
+ if (!chain) {
82
+ throw new Error(`Unknown chain: ${network}. Supported: ${Object.keys(ALL_CHAINS).join(', ')}`);
83
+ }
84
+ return chain;
85
+ }
86
+
87
+ export function getArbitrumChains(): Record<string, ChainConfig> {
88
+ return { ...ARBITRUM_CHAINS };
89
+ }
90
+
91
+ export function getSupportedChains(): Record<string, ChainConfig> {
92
+ return { ...ALL_CHAINS };
93
+ }
package/src/core/types.ts CHANGED
@@ -201,6 +201,12 @@ export interface ChainConfig {
201
201
  maxFeePerGas?: string;
202
202
  maxPriorityFeePerGas?: string;
203
203
  };
204
+ /** Whether this is a testnet */
205
+ isTestnet?: boolean;
206
+ /** Faucet URL for testnets */
207
+ faucetUrl?: string;
208
+ /** Alchemy subdomain for API access (e.g. "arb-sepolia") */
209
+ alchemySubdomain?: string;
204
210
  }
205
211
 
206
212
  /**