@skillzmarket/sdk 0.1.0 → 0.1.2

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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { init } from '../creator/init.js';
3
+ init().catch((error) => {
4
+ console.error('Error during setup:', error.message);
5
+ process.exit(1);
6
+ });
7
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -19,9 +19,12 @@
19
19
  export { skill } from './skill.js';
20
20
  export { serve } from './serve.js';
21
21
  export { register } from './register.js';
22
+ export type { RegisterOptions } from './register.js';
23
+ export { init, checkConfig } from './init.js';
22
24
  export { authenticate, refreshAccessToken } from './auth.js';
23
25
  export type { AuthResult, RefreshResult } from './auth.js';
24
26
  export type { SkillOptions, SkillHandler, SkillDefinition, SkillsMap, ServeOptions, ParsedPrice, JsonSchema, RegistrationOptions, RegistrationResult, } from './types.js';
25
27
  export { parsePrice, formatPriceForX402 } from './utils/price.js';
26
- export { resolveWallet, maskPrivateKey } from './utils/wallet.js';
28
+ export { resolveWalletToAddress, resolveWallet, maskPrivateKey, verifyWalletMatch } from './utils/wallet.js';
29
+ export type { WalletConfig } from './utils/wallet.js';
27
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7G,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -19,8 +19,9 @@
19
19
  export { skill } from './skill.js';
20
20
  export { serve } from './serve.js';
21
21
  export { register } from './register.js';
22
+ export { init, checkConfig } from './init.js';
22
23
  export { authenticate, refreshAccessToken } from './auth.js';
23
24
  // Re-export utilities for advanced usage
24
25
  export { parsePrice, formatPriceForX402 } from './utils/price.js';
25
- export { resolveWallet, maskPrivateKey } from './utils/wallet.js';
26
+ export { resolveWalletToAddress, resolveWallet, maskPrivateKey, verifyWalletMatch } from './utils/wallet.js';
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAgB7D,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAgB7D,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Interactive setup for Skillz Market SDK.
3
+ * Guides the user through getting and configuring their API key.
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { init } from '@skillzmarket/sdk/creator';
8
+ *
9
+ * // Run interactive setup
10
+ * await init();
11
+ * ```
12
+ */
13
+ export declare function init(): Promise<void>;
14
+ /**
15
+ * Check if the SDK is configured with necessary credentials.
16
+ * Returns an object with configuration status and any issues found.
17
+ */
18
+ export declare function checkConfig(): {
19
+ configured: boolean;
20
+ apiKey: boolean;
21
+ walletAddress: boolean;
22
+ issues: string[];
23
+ };
24
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/creator/init.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6J1C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAwBA"}
@@ -0,0 +1,182 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as readline from 'readline';
4
+ const DASHBOARD_URL = 'https://skillz.market/dashboard';
5
+ /**
6
+ * Interactive setup for Skillz Market SDK.
7
+ * Guides the user through getting and configuring their API key.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { init } from '@skillzmarket/sdk/creator';
12
+ *
13
+ * // Run interactive setup
14
+ * await init();
15
+ * ```
16
+ */
17
+ export async function init() {
18
+ const rl = readline.createInterface({
19
+ input: process.stdin,
20
+ output: process.stdout,
21
+ });
22
+ const question = (prompt) => {
23
+ return new Promise((resolve) => {
24
+ rl.question(prompt, (answer) => {
25
+ resolve(answer.trim());
26
+ });
27
+ });
28
+ };
29
+ console.log('');
30
+ console.log('='.repeat(60));
31
+ console.log(' Skillz Market SDK - Setup');
32
+ console.log('='.repeat(60));
33
+ console.log('');
34
+ // Check for existing API key
35
+ const existingKey = process.env.SKILLZ_API_KEY;
36
+ if (existingKey) {
37
+ console.log('✓ Found existing API key in environment: SKILLZ_API_KEY');
38
+ console.log(` Key prefix: ${existingKey.slice(0, 11)}...`);
39
+ console.log('');
40
+ const overwrite = await question('Do you want to set up a new key? (y/N): ');
41
+ if (overwrite.toLowerCase() !== 'y') {
42
+ console.log('');
43
+ console.log('Setup complete! Your existing API key will be used.');
44
+ rl.close();
45
+ return;
46
+ }
47
+ console.log('');
48
+ }
49
+ // Instructions for getting an API key
50
+ console.log('To register skills, you need an API key from Skillz Market.');
51
+ console.log('');
52
+ console.log('Steps to get your API key:');
53
+ console.log('');
54
+ console.log(' 1. Go to: ' + DASHBOARD_URL);
55
+ console.log(' 2. Connect your wallet');
56
+ console.log(' 3. Sign to authenticate (one-time)');
57
+ console.log(' 4. Find the "API Keys" section');
58
+ console.log(' 5. Click "Create Key" and copy the key');
59
+ console.log('');
60
+ // Wait for user to get the key
61
+ const apiKey = await question('Paste your API key here (sk_...): ');
62
+ if (!apiKey) {
63
+ console.log('');
64
+ console.log('No API key provided. Setup cancelled.');
65
+ rl.close();
66
+ return;
67
+ }
68
+ if (!apiKey.startsWith('sk_')) {
69
+ console.log('');
70
+ console.log('⚠️ Warning: API keys should start with "sk_"');
71
+ console.log(' The key you entered might be invalid.');
72
+ console.log('');
73
+ }
74
+ // Ask for wallet address
75
+ console.log('');
76
+ const walletAddress = await question('Your wallet address for receiving payments (0x...): ');
77
+ if (!walletAddress) {
78
+ console.log('');
79
+ console.log('No wallet address provided. Setup cancelled.');
80
+ rl.close();
81
+ return;
82
+ }
83
+ if (!walletAddress.startsWith('0x') || walletAddress.length !== 42) {
84
+ console.log('');
85
+ console.log('⚠️ Warning: Wallet address should be 42 characters starting with "0x"');
86
+ console.log('');
87
+ }
88
+ // Ask where to save
89
+ console.log('');
90
+ console.log('Where would you like to save the configuration?');
91
+ console.log('');
92
+ console.log(' 1. Create/update .env file (recommended)');
93
+ console.log(' 2. Show commands to set environment variables');
94
+ console.log(' 3. Cancel');
95
+ console.log('');
96
+ const choice = await question('Choose an option (1/2/3): ');
97
+ console.log('');
98
+ if (choice === '1') {
99
+ // Write to .env file
100
+ const envPath = path.resolve(process.cwd(), '.env');
101
+ let envContent = '';
102
+ // Read existing .env if it exists
103
+ if (fs.existsSync(envPath)) {
104
+ envContent = fs.readFileSync(envPath, 'utf-8');
105
+ // Remove existing SKILLZ_ variables
106
+ envContent = envContent
107
+ .split('\n')
108
+ .filter((line) => !line.startsWith('SKILLZ_API_KEY=') && !line.startsWith('SKILLZ_WALLET_ADDRESS='))
109
+ .join('\n');
110
+ if (envContent && !envContent.endsWith('\n')) {
111
+ envContent += '\n';
112
+ }
113
+ }
114
+ // Add new variables
115
+ envContent += `\n# Skillz Market SDK Configuration\n`;
116
+ envContent += `SKILLZ_API_KEY=${apiKey}\n`;
117
+ envContent += `SKILLZ_WALLET_ADDRESS=${walletAddress}\n`;
118
+ fs.writeFileSync(envPath, envContent);
119
+ console.log('✓ Configuration saved to .env');
120
+ console.log('');
121
+ console.log('Make sure .env is in your .gitignore!');
122
+ }
123
+ else if (choice === '2') {
124
+ console.log('Add these to your environment:');
125
+ console.log('');
126
+ console.log(` export SKILLZ_API_KEY="${apiKey}"`);
127
+ console.log(` export SKILLZ_WALLET_ADDRESS="${walletAddress}"`);
128
+ console.log('');
129
+ console.log('Or add to your shell profile (~/.bashrc, ~/.zshrc, etc.)');
130
+ }
131
+ else {
132
+ console.log('Setup cancelled.');
133
+ rl.close();
134
+ return;
135
+ }
136
+ console.log('');
137
+ console.log('='.repeat(60));
138
+ console.log(' Setup Complete!');
139
+ console.log('='.repeat(60));
140
+ console.log('');
141
+ console.log('You can now use the SDK:');
142
+ console.log('');
143
+ console.log(' import { skill, serve } from "@skillzmarket/sdk/creator";');
144
+ console.log('');
145
+ console.log(' const mySkill = skill({ price: "$0.001" }, async (input) => {');
146
+ console.log(' return { result: "Hello!" };');
147
+ console.log(' });');
148
+ console.log('');
149
+ console.log(' serve({ mySkill }, {');
150
+ console.log(' register: { endpoint: "https://your-server.com", enabled: true }');
151
+ console.log(' });');
152
+ console.log('');
153
+ rl.close();
154
+ }
155
+ /**
156
+ * Check if the SDK is configured with necessary credentials.
157
+ * Returns an object with configuration status and any issues found.
158
+ */
159
+ export function checkConfig() {
160
+ const issues = [];
161
+ const apiKey = process.env.SKILLZ_API_KEY;
162
+ const walletAddress = process.env.SKILLZ_WALLET_ADDRESS || process.env.SKILLZ_WALLET_KEY;
163
+ if (!apiKey) {
164
+ issues.push('SKILLZ_API_KEY is not set. Run `npx @skillzmarket/sdk init` to configure.');
165
+ }
166
+ else if (!apiKey.startsWith('sk_')) {
167
+ issues.push('SKILLZ_API_KEY should start with "sk_"');
168
+ }
169
+ if (!walletAddress) {
170
+ issues.push('SKILLZ_WALLET_ADDRESS is not set. This is required for receiving payments.');
171
+ }
172
+ else if (!walletAddress.startsWith('0x')) {
173
+ issues.push('Wallet address should start with "0x"');
174
+ }
175
+ return {
176
+ configured: issues.length === 0,
177
+ apiKey: !!apiKey && apiKey.startsWith('sk_'),
178
+ walletAddress: !!walletAddress && walletAddress.startsWith('0x'),
179
+ issues,
180
+ };
181
+ }
182
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/creator/init.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,29 @@
1
- import type { PrivateKeyAccount } from 'viem/accounts';
1
+ import type { Address } from 'viem';
2
2
  import type { SkillsMap, RegistrationResult, RegistrationOptions } from './types.js';
3
3
  export interface RegisterOptions {
4
- account: PrivateKeyAccount;
4
+ /** API key for authentication */
5
+ apiKey: string;
6
+ /** Payment address to receive skill payments */
7
+ paymentAddress: Address;
8
+ /** Public endpoint URL where skills are accessible */
5
9
  endpoint: string;
10
+ /** API URL for the Skillz Market registry */
6
11
  apiUrl?: string;
12
+ /** Error handling mode */
7
13
  onError?: 'throw' | 'warn' | 'silent';
8
14
  }
9
15
  /**
10
- * Register skills with the Skillz Market registry.
16
+ * Register skills with the Skillz Market registry using API key authentication.
11
17
  *
12
18
  * @example
13
19
  * ```typescript
14
20
  * import { skill, register } from '@skillzmarket/sdk/creator';
15
- * import { privateKeyToAccount } from 'viem/accounts';
16
21
  *
17
22
  * const echo = skill({ price: '$0.001' }, async (input) => ({ echo: input }));
18
23
  *
19
- * const account = privateKeyToAccount('0x...');
20
24
  * const results = await register({ echo }, {
21
- * account,
25
+ * apiKey: 'sk_abc123...', // or process.env.SKILLZ_API_KEY
26
+ * paymentAddress: '0x4554A88d9e4D1bef5338F65A3Cd335C6A27E5368',
22
27
  * endpoint: 'https://my-skills.example.com',
23
28
  * });
24
29
  * ```
@@ -31,5 +36,5 @@ export declare function register(skills: SkillsMap, options: RegisterOptions): P
31
36
  /**
32
37
  * Build registration options from ServeOptions.register
33
38
  */
34
- export declare function buildRegisterOptions(registerOpts: RegistrationOptions, account: PrivateKeyAccount): RegisterOptions;
39
+ export declare function buildRegisterOptions(registerOpts: RegistrationOptions, apiKey: string, paymentAddress: Address): RegisterOptions;
35
40
  //# sourceMappingURL=register.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/creator/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOrF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;CACvC;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0C/B;AAgHD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,iBAAiB,GACzB,eAAe,CAOjB"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/creator/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMrF,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;CACvC;AA0BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyC/B;AAoHD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,GACtB,eAAe,CAQjB"}
@@ -1,4 +1,3 @@
1
- import { authenticate, authenticatedFetch } from './auth.js';
2
1
  const DEFAULT_API_URL = 'https://api.skillz.market';
3
2
  const MAX_RETRIES = 3;
4
3
  const BASE_DELAY_MS = 1000;
@@ -15,18 +14,17 @@ function getBackoffDelay(attempt) {
15
14
  return BASE_DELAY_MS * Math.pow(2, attempt);
16
15
  }
17
16
  /**
18
- * Register skills with the Skillz Market registry.
17
+ * Register skills with the Skillz Market registry using API key authentication.
19
18
  *
20
19
  * @example
21
20
  * ```typescript
22
21
  * import { skill, register } from '@skillzmarket/sdk/creator';
23
- * import { privateKeyToAccount } from 'viem/accounts';
24
22
  *
25
23
  * const echo = skill({ price: '$0.001' }, async (input) => ({ echo: input }));
26
24
  *
27
- * const account = privateKeyToAccount('0x...');
28
25
  * const results = await register({ echo }, {
29
- * account,
26
+ * apiKey: 'sk_abc123...', // or process.env.SKILLZ_API_KEY
27
+ * paymentAddress: '0x4554A88d9e4D1bef5338F65A3Cd335C6A27E5368',
30
28
  * endpoint: 'https://my-skills.example.com',
31
29
  * });
32
30
  * ```
@@ -36,23 +34,20 @@ function getBackoffDelay(attempt) {
36
34
  * @returns Array of registration results for each skill
37
35
  */
38
36
  export async function register(skills, options) {
39
- const { account, endpoint, apiUrl = DEFAULT_API_URL, onError = 'warn' } = options;
37
+ const { apiKey, paymentAddress, endpoint, apiUrl = DEFAULT_API_URL, onError = 'warn' } = options;
40
38
  const skillNames = Object.keys(skills);
41
39
  if (skillNames.length === 0) {
42
40
  return [];
43
41
  }
44
- // Normalize endpoint (remove trailing slash)
45
- const normalizedEndpoint = endpoint.replace(/\/$/, '');
46
- // Authenticate with the API
47
- let token;
48
- try {
49
- const authResult = await authenticate(account, { apiUrl });
50
- token = authResult.token;
51
- }
52
- catch (error) {
53
- const message = `Failed to authenticate for registration: ${error instanceof Error ? error.message : String(error)}`;
42
+ if (!apiKey) {
43
+ const message = 'API key required for registration. Either:\n' +
44
+ '1. Pass `apiKey` option to serve()\n' +
45
+ '2. Set SKILLZ_API_KEY environment variable\n\n' +
46
+ 'Get an API key from https://skillz.market/dashboard';
54
47
  return handleRegistrationError(message, skillNames, onError);
55
48
  }
49
+ // Normalize endpoint (remove trailing slash)
50
+ const normalizedEndpoint = endpoint.replace(/\/$/, '');
56
51
  // Register each skill
57
52
  const results = [];
58
53
  for (const [name, definition] of Object.entries(skills)) {
@@ -61,12 +56,12 @@ export async function register(skills, options) {
61
56
  name,
62
57
  endpoint: skillEndpoint,
63
58
  price: definition.parsedPrice.amount,
64
- paymentAddress: account.address,
59
+ paymentAddress,
65
60
  description: definition.options.description,
66
61
  inputSchema: definition.options.inputSchema,
67
62
  outputSchema: definition.options.outputSchema,
68
63
  };
69
- const result = await registerSkillWithRetry(name, payload, token, apiUrl, onError);
64
+ const result = await registerSkillWithRetry(name, payload, apiKey, apiUrl, onError);
70
65
  results.push(result);
71
66
  }
72
67
  return results;
@@ -74,12 +69,16 @@ export async function register(skills, options) {
74
69
  /**
75
70
  * Register a single skill with retry logic
76
71
  */
77
- async function registerSkillWithRetry(name, payload, token, apiUrl, onError) {
72
+ async function registerSkillWithRetry(name, payload, apiKey, apiUrl, onError) {
78
73
  let lastError;
79
74
  for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
80
75
  try {
81
- const response = await authenticatedFetch(`${apiUrl}/skills`, token, {
76
+ const response = await fetch(`${apiUrl}/skills`, {
82
77
  method: 'POST',
78
+ headers: {
79
+ 'Content-Type': 'application/json',
80
+ 'Authorization': `Bearer ${apiKey}`,
81
+ },
83
82
  body: JSON.stringify(payload),
84
83
  });
85
84
  if (response.ok) {
@@ -154,9 +153,10 @@ function handleRegistrationError(message, skillNames, onError) {
154
153
  /**
155
154
  * Build registration options from ServeOptions.register
156
155
  */
157
- export function buildRegisterOptions(registerOpts, account) {
156
+ export function buildRegisterOptions(registerOpts, apiKey, paymentAddress) {
158
157
  return {
159
- account,
158
+ apiKey,
159
+ paymentAddress,
160
160
  endpoint: registerOpts.endpoint,
161
161
  apiUrl: registerOpts.apiUrl,
162
162
  onError: registerOpts.onError,
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/creator/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/creator/register.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/creator/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAY1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,KAAK,CACzB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA6Kf"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/creator/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,KAAK,CACzB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAuLf"}
@@ -1,7 +1,7 @@
1
1
  import { Hono } from 'hono';
2
2
  import { cors } from 'hono/cors';
3
3
  import { serve as honoServe } from '@hono/node-server';
4
- import { resolveWallet } from './utils/wallet.js';
4
+ import { resolveWalletToAddress } from './utils/wallet.js';
5
5
  import { createPaymentMiddleware } from './payment.js';
6
6
  import { register, buildRegisterOptions } from './register.js';
7
7
  const DEFAULT_PORT = 3002;
@@ -26,14 +26,16 @@ const DEFAULT_API_URL = 'https://api.skillz.market';
26
26
  * @param options - Server configuration options
27
27
  */
28
28
  export async function serve(skills, options = {}) {
29
- const { port = DEFAULT_PORT, wallet, network = DEFAULT_NETWORK, facilitatorUrl = DEFAULT_FACILITATOR_URL, appName = DEFAULT_APP_NAME, onCall, onError, register: registerOpts, trackCalls = true, apiUrl = DEFAULT_API_URL, } = options;
29
+ const { port = DEFAULT_PORT, wallet, apiKey, network = DEFAULT_NETWORK, facilitatorUrl = DEFAULT_FACILITATOR_URL, appName = DEFAULT_APP_NAME, onCall, onError, register: registerOpts, trackCalls = true, apiUrl = DEFAULT_API_URL, } = options;
30
30
  // Validate skills
31
31
  const skillNames = Object.keys(skills);
32
32
  if (skillNames.length === 0) {
33
33
  throw new Error('No skills provided. Pass at least one skill to serve().');
34
34
  }
35
- // Resolve wallet
36
- const { account, address: walletAddress } = resolveWallet(wallet);
35
+ // Resolve wallet to address (no private key needed now!)
36
+ const walletAddress = resolveWalletToAddress(wallet);
37
+ // Resolve API key
38
+ const resolvedApiKey = apiKey ?? process.env.SKILLZ_API_KEY ?? '';
37
39
  // Create Hono app
38
40
  const app = new Hono();
39
41
  // Enable CORS
@@ -134,26 +136,33 @@ export async function serve(skills, options = {}) {
134
136
  console.log('');
135
137
  // Auto-register skills if registration is configured
136
138
  if (registerOpts && registerOpts.enabled !== false) {
137
- console.log(' Registering skills with Skillz Market...');
138
- console.log('');
139
- const registerOptions = buildRegisterOptions(registerOpts, account);
140
- const results = await register(skills, registerOptions);
141
- // Log registration results
142
- const successful = results.filter((r) => r.success);
143
- const failed = results.filter((r) => !r.success);
144
- if (successful.length > 0) {
145
- console.log(' ✓ Registered skills:');
146
- for (const result of successful) {
147
- console.log(` - ${result.name} (${result.slug})`);
148
- }
139
+ if (!resolvedApiKey) {
140
+ console.warn(' ⚠️ No API key provided. Skills will not be registered.');
141
+ console.warn(' Get an API key from https://skillz.market/dashboard');
149
142
  console.log('');
150
143
  }
151
- if (failed.length > 0 && registerOpts.onError !== 'silent') {
152
- console.log(' Failed to register:');
153
- for (const result of failed) {
154
- console.log(` - ${result.name}: ${result.error}`);
155
- }
144
+ else {
145
+ console.log(' Registering skills with Skillz Market...');
156
146
  console.log('');
147
+ const registerOptions = buildRegisterOptions(registerOpts, resolvedApiKey, walletAddress);
148
+ const results = await register(skills, registerOptions);
149
+ // Log registration results
150
+ const successful = results.filter((r) => r.success);
151
+ const failed = results.filter((r) => !r.success);
152
+ if (successful.length > 0) {
153
+ console.log(' ✓ Registered skills:');
154
+ for (const result of successful) {
155
+ console.log(` - ${result.name} (${result.slug})`);
156
+ }
157
+ console.log('');
158
+ }
159
+ if (failed.length > 0 && registerOpts.onError !== 'silent') {
160
+ console.log(' ✗ Failed to register:');
161
+ for (const result of failed) {
162
+ console.log(` - ${result.name}: ${result.error}`);
163
+ }
164
+ console.log('');
165
+ }
157
166
  }
158
167
  console.log('='.repeat(50));
159
168
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/creator/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/creator/serve.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import type { Hex } from 'viem';
2
1
  /**
3
2
  * JSON Schema type for describing skill input/output
4
3
  */
@@ -110,10 +109,16 @@ export interface ServeOptions {
110
109
  */
111
110
  port?: number;
112
111
  /**
113
- * Wallet private key for receiving payments.
114
- * Falls back to SKILLZ_WALLET_KEY environment variable.
112
+ * Wallet address for receiving payments.
113
+ * Accepts either a 42-char address or a 66-char private key (derives address).
114
+ * Falls back to SKILLZ_WALLET_ADDRESS or SKILLZ_WALLET_KEY environment variables.
115
115
  */
116
- wallet?: Hex;
116
+ wallet?: string;
117
+ /**
118
+ * API key for registration. Get one from the Skillz Market dashboard.
119
+ * Falls back to SKILLZ_API_KEY environment variable.
120
+ */
121
+ apiKey?: string;
117
122
  /**
118
123
  * Network identifier for x402 payments.
119
124
  * Default: 'eip155:8453' (Base mainnet)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/creator/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/creator/types.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,34 @@
1
1
  import type { Hex, Address } from 'viem';
2
2
  import type { PrivateKeyAccount } from 'viem/accounts';
3
+ /**
4
+ * Wallet configuration that can be resolved to an address
5
+ */
6
+ export type WalletConfig = Hex | PrivateKeyAccount;
7
+ /**
8
+ * Resolve wallet input to an address.
9
+ * Accepts either a 42-char address or 66-char private key.
10
+ *
11
+ * Priority:
12
+ * 1. Explicit wallet option
13
+ * 2. SKILLZ_WALLET_ADDRESS environment variable
14
+ * 3. SKILLZ_WALLET_KEY environment variable (derives address)
15
+ *
16
+ * @param wallet - Optional explicit wallet address or private key
17
+ * @returns The wallet address
18
+ * @throws Error if no wallet is configured or invalid format
19
+ */
20
+ export declare function resolveWalletToAddress(wallet?: string): Address;
3
21
  /**
4
22
  * Resolve wallet configuration from options or environment.
23
+ * Returns a full account (with private key) for signing operations.
5
24
  *
6
25
  * Priority:
7
26
  * 1. Explicit wallet option
8
27
  * 2. SKILLZ_WALLET_KEY environment variable
9
28
  *
29
+ * @deprecated Use resolveWalletToAddress when you only need the address.
30
+ * This function requires the private key and should only be used
31
+ * when signing is needed.
10
32
  * @param wallet - Optional explicit wallet private key
11
33
  * @returns Object with account and address
12
34
  * @throws Error if no wallet is configured
@@ -19,4 +41,27 @@ export declare function resolveWallet(wallet?: Hex): {
19
41
  * Mask a private key for safe logging (show first 6 and last 4 chars)
20
42
  */
21
43
  export declare function maskPrivateKey(key: Hex): string;
44
+ /**
45
+ * Verify two wallet sources resolve to the same address.
46
+ *
47
+ * Use this to ensure the wallet used for registration matches
48
+ * the wallet used for serving (receiving payments).
49
+ *
50
+ * @param wallet1 - First wallet (private key or account)
51
+ * @param wallet2 - Second wallet (private key, account, or address)
52
+ * @returns Object with match status and resolved addresses
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const result = verifyWalletMatch(registerAccount, serveWallet);
57
+ * if (!result.match) {
58
+ * throw new Error(`Wallet mismatch: ${result.address1} vs ${result.address2}`);
59
+ * }
60
+ * ```
61
+ */
62
+ export declare function verifyWalletMatch(wallet1: WalletConfig, wallet2: WalletConfig | Address): {
63
+ match: boolean;
64
+ address1: Address;
65
+ address2: Address;
66
+ };
22
67
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/creator/utils/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CA8BA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAK/C"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/creator/utils/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,iBAAiB,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CA+B/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CA8BA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAK/C;AAYD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GAAG,OAAO,GAC9B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAY1D"}
@@ -1,11 +1,51 @@
1
1
  import { privateKeyToAccount } from 'viem/accounts';
2
+ /**
3
+ * Resolve wallet input to an address.
4
+ * Accepts either a 42-char address or 66-char private key.
5
+ *
6
+ * Priority:
7
+ * 1. Explicit wallet option
8
+ * 2. SKILLZ_WALLET_ADDRESS environment variable
9
+ * 3. SKILLZ_WALLET_KEY environment variable (derives address)
10
+ *
11
+ * @param wallet - Optional explicit wallet address or private key
12
+ * @returns The wallet address
13
+ * @throws Error if no wallet is configured or invalid format
14
+ */
15
+ export function resolveWalletToAddress(wallet) {
16
+ const input = wallet ?? process.env.SKILLZ_WALLET_ADDRESS ?? process.env.SKILLZ_WALLET_KEY;
17
+ if (!input) {
18
+ throw new Error('No wallet configured. Either:\n' +
19
+ '1. Pass `wallet` option with an address: serve({ skills }, { wallet: "0x..." })\n' +
20
+ '2. Set SKILLZ_WALLET_ADDRESS environment variable\n\n' +
21
+ 'The wallet address receives payments from skill calls.');
22
+ }
23
+ if (!input.startsWith('0x')) {
24
+ throw new Error('Invalid wallet format. Must start with "0x"');
25
+ }
26
+ // 42 chars = address (0x + 40 hex chars)
27
+ if (input.length === 42) {
28
+ return input;
29
+ }
30
+ // 66 chars = private key (0x + 64 hex chars) - derive address
31
+ if (input.length === 66) {
32
+ return privateKeyToAccount(input).address;
33
+ }
34
+ throw new Error('Invalid wallet: must be 42-char address or 66-char private key.\n' +
35
+ 'Address example: 0x4554A88d9e4D1bef5338F65A3Cd335C6A27E5368\n' +
36
+ 'Private key example: 0x1234567890abcdef...');
37
+ }
2
38
  /**
3
39
  * Resolve wallet configuration from options or environment.
40
+ * Returns a full account (with private key) for signing operations.
4
41
  *
5
42
  * Priority:
6
43
  * 1. Explicit wallet option
7
44
  * 2. SKILLZ_WALLET_KEY environment variable
8
45
  *
46
+ * @deprecated Use resolveWalletToAddress when you only need the address.
47
+ * This function requires the private key and should only be used
48
+ * when signing is needed.
9
49
  * @param wallet - Optional explicit wallet private key
10
50
  * @returns Object with account and address
11
51
  * @throws Error if no wallet is configured
@@ -42,4 +82,42 @@ export function maskPrivateKey(key) {
42
82
  }
43
83
  return `${key.slice(0, 6)}...${key.slice(-4)}`;
44
84
  }
85
+ /**
86
+ * Resolve a wallet config to an address
87
+ */
88
+ function resolveWalletAddress(wallet) {
89
+ if (typeof wallet === 'string') {
90
+ return privateKeyToAccount(wallet).address;
91
+ }
92
+ return wallet.address;
93
+ }
94
+ /**
95
+ * Verify two wallet sources resolve to the same address.
96
+ *
97
+ * Use this to ensure the wallet used for registration matches
98
+ * the wallet used for serving (receiving payments).
99
+ *
100
+ * @param wallet1 - First wallet (private key or account)
101
+ * @param wallet2 - Second wallet (private key, account, or address)
102
+ * @returns Object with match status and resolved addresses
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const result = verifyWalletMatch(registerAccount, serveWallet);
107
+ * if (!result.match) {
108
+ * throw new Error(`Wallet mismatch: ${result.address1} vs ${result.address2}`);
109
+ * }
110
+ * ```
111
+ */
112
+ export function verifyWalletMatch(wallet1, wallet2) {
113
+ const address1 = resolveWalletAddress(wallet1);
114
+ const address2 = typeof wallet2 === 'string' && wallet2.length === 42
115
+ ? wallet2
116
+ : resolveWalletAddress(wallet2);
117
+ return {
118
+ match: address1.toLowerCase() === address2.toLowerCase(),
119
+ address1,
120
+ address2,
121
+ };
122
+ }
45
123
  //# sourceMappingURL=wallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/creator/utils/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIpD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,MAAY;IAIxC,MAAM,UAAU,GAAG,MAAM,IAAK,OAAO,CAAC,GAAG,CAAC,iBAAqC,CAAC;IAEhF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,iCAAiC;YAC/B,8EAA8E;YAC9E,mDAAmD;YACnD,gDAAgD,CACnD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,4DAA4D;YAC1D,gCAAgC,CACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO;YACL,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ;IACrC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/creator/utils/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillzmarket/sdk",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "SDK for discovering and calling paid AI skills with automatic x402 payments",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,6 +18,9 @@
18
18
  "default": "./dist/creator/index.js"
19
19
  }
20
20
  },
21
+ "bin": {
22
+ "skillz-init": "./dist/bin/init.js"
23
+ },
21
24
  "files": [
22
25
  "dist",
23
26
  "README.md",
@@ -64,6 +67,7 @@
64
67
  "@x402/fetch": "^2.2.0",
65
68
  "@x402/hono": "^2.2.0",
66
69
  "hono": "^4.0.0",
70
+ "user": "^0.0.0",
67
71
  "viem": "^2.0.0"
68
72
  },
69
73
  "peerDependencies": {