madeonsol-x402 0.2.1 → 0.3.0
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/README.md +43 -28
- package/dist/index.d.ts +34 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -20
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,32 +1,61 @@
|
|
|
1
1
|
# madeonsol-x402
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
TypeScript SDK for the [MadeOnSol](https://madeonsol.com) Solana KOL intelligence API.
|
|
4
|
+
|
|
5
|
+
## Authentication
|
|
6
|
+
|
|
7
|
+
Three options (in priority order):
|
|
8
|
+
|
|
9
|
+
| Method | Option | Best for |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| **MadeOnSol API key** (recommended) | `apiKey` | Developers — [get a free key](https://madeonsol.com/developer) |
|
|
12
|
+
| RapidAPI key | `rapidApiKey` | RapidAPI subscribers |
|
|
13
|
+
| x402 micropayments | `privateKey` | AI agents with Solana wallets |
|
|
4
14
|
|
|
5
15
|
## Install
|
|
6
16
|
|
|
7
17
|
```bash
|
|
8
|
-
npm install madeonsol-x402
|
|
18
|
+
npm install madeonsol-x402
|
|
9
19
|
```
|
|
10
20
|
|
|
21
|
+
> x402 peer deps (`@x402/fetch @x402/svm @x402/core @solana/kit @scure/base`) are only needed when using `privateKey`.
|
|
22
|
+
|
|
11
23
|
## Quick Start
|
|
12
24
|
|
|
13
25
|
```ts
|
|
14
26
|
import { createClient } from "madeonsol-x402";
|
|
15
27
|
|
|
16
|
-
|
|
28
|
+
// Option 1: API key (simplest — get one free at madeonsol.com/developer)
|
|
29
|
+
const client = createClient("msk_your_api_key_here");
|
|
30
|
+
|
|
31
|
+
// Option 2: x402 micropayments (auto-detected when no msk_ prefix)
|
|
32
|
+
// const client = createClient(process.env.SOLANA_PRIVATE_KEY!);
|
|
33
|
+
|
|
17
34
|
const { trades } = await client.kolFeed({ limit: 10 });
|
|
18
35
|
console.log(trades);
|
|
19
36
|
```
|
|
20
37
|
|
|
38
|
+
### Advanced initialization
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { MadeOnSolX402 } from "madeonsol-x402";
|
|
42
|
+
|
|
43
|
+
const client = new MadeOnSolX402({
|
|
44
|
+
apiKey: "msk_...", // OR
|
|
45
|
+
rapidApiKey: "rapid_...", // OR
|
|
46
|
+
privateKey: "base58...", // x402 micropayments
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
21
50
|
## Endpoints
|
|
22
51
|
|
|
23
|
-
| Method |
|
|
24
|
-
|
|
25
|
-
| `kolFeed(params?)` |
|
|
26
|
-
| `kolCoordination(params?)` |
|
|
27
|
-
| `kolLeaderboard(params?)` |
|
|
28
|
-
| `deployerAlerts(params?)` |
|
|
29
|
-
| `discovery()` |
|
|
52
|
+
| Method | Description |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `kolFeed(params?)` | Real-time KOL trade feed from 946+ tracked wallets |
|
|
55
|
+
| `kolCoordination(params?)` | Tokens being accumulated by multiple KOLs simultaneously |
|
|
56
|
+
| `kolLeaderboard(params?)` | KOL performance rankings by PnL and win rate |
|
|
57
|
+
| `deployerAlerts(params?)` | Alerts from elite Pump.fun deployers with KOL enrichment |
|
|
58
|
+
| `discovery()` | Lists all endpoints, prices, and parameter docs (free) |
|
|
30
59
|
|
|
31
60
|
## Parameters
|
|
32
61
|
|
|
@@ -38,33 +67,19 @@ console.log(trades);
|
|
|
38
67
|
|
|
39
68
|
**deployerAlerts** — `since` (ISO8601), `limit` (1-100), `offset` (number)
|
|
40
69
|
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
The SDK wraps the [x402 payment protocol](https://x402.org). When you call an endpoint, the library automatically:
|
|
44
|
-
|
|
45
|
-
1. Sends the request
|
|
46
|
-
2. Receives the 402 Payment Required response
|
|
47
|
-
3. Signs a USDC payment on Solana using your private key
|
|
48
|
-
4. Retries the request with the payment proof
|
|
49
|
-
5. Returns typed data
|
|
50
|
-
|
|
51
|
-
Your wallet needs USDC (SPL token) on Solana mainnet. Payments are settled via the PayAI facilitator.
|
|
52
|
-
|
|
53
|
-
## REST API (RapidAPI)
|
|
54
|
-
|
|
55
|
-
With a RapidAPI key, the `MadeOnSolREST` class provides webhook management and WebSocket streaming tokens:
|
|
70
|
+
## REST API (webhooks + streaming)
|
|
56
71
|
|
|
57
72
|
```ts
|
|
58
73
|
import { MadeOnSolREST } from "madeonsol-x402";
|
|
59
74
|
|
|
60
|
-
const rest = new MadeOnSolREST({
|
|
75
|
+
const rest = new MadeOnSolREST({ apiKey: "msk_your_key" });
|
|
76
|
+
// OR: new MadeOnSolREST({ rapidApiKey: "your_rapidapi_key" });
|
|
77
|
+
|
|
61
78
|
const token = await rest.getStreamToken();
|
|
62
79
|
// token.ws_url — KOL/deployer streaming (Pro/Ultra)
|
|
63
80
|
// token.dex_ws_url — all-DEX trade stream (Ultra only)
|
|
64
81
|
```
|
|
65
82
|
|
|
66
|
-
Ultra subscribers get access to the **DEX Trade Stream** — a real-time WebSocket feed of every Solana DEX trade, filterable by token, wallet, program, trade size, or direction.
|
|
67
|
-
|
|
68
83
|
## Discovery
|
|
69
84
|
|
|
70
85
|
```ts
|
package/dist/index.d.ts
CHANGED
|
@@ -1,48 +1,64 @@
|
|
|
1
1
|
import type { KolFeedParams, KolFeedResponse, KolCoordinationParams, KolCoordinationResponse, KolLeaderboardParams, KolLeaderboardResponse, DeployerAlertsParams, DeployerAlertsResponse, DiscoveryResponse, CreateWebhookParams, UpdateWebhookParams, Webhook, WebhookWithSecret, WebhookDelivery, WebhookTestResult, StreamToken } from "./types.js";
|
|
2
2
|
export type { KolTrade, KolFeedParams, KolFeedResponse, KolCoordinationToken, KolCoordinationParams, KolCoordinationResponse, KolLeaderboardEntry, KolLeaderboardParams, KolLeaderboardResponse, DeployerAlert, DeployerAlertsParams, DeployerAlertsResponse, DiscoveryEndpoint, DiscoveryResponse, WebhookEvent, WebhookFilters, Webhook, WebhookWithSecret, CreateWebhookParams, UpdateWebhookParams, WebhookDelivery, WebhookTestResult, StreamToken, } from "./types.js";
|
|
3
|
+
interface MadeOnSolClientOptions {
|
|
4
|
+
/** MadeOnSol API key (get one free at madeonsol.com/developer). Preferred auth method. */
|
|
5
|
+
apiKey?: string;
|
|
6
|
+
/** RapidAPI subscription key. */
|
|
7
|
+
rapidApiKey?: string;
|
|
8
|
+
/** Base58-encoded Solana private key for x402 USDC micropayments (for AI agents). */
|
|
9
|
+
privateKey?: string;
|
|
10
|
+
/** API base URL (default: https://madeonsol.com) */
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
/** @deprecated Use MadeOnSolClient instead */
|
|
3
14
|
interface MadeOnSolX402Options {
|
|
4
|
-
/** Base58-encoded Solana private key */
|
|
5
15
|
privateKey: string;
|
|
6
|
-
/** API base URL (default: https://madeonsol.com) */
|
|
7
16
|
baseUrl?: string;
|
|
8
17
|
}
|
|
9
18
|
export declare class MadeOnSolX402 {
|
|
10
19
|
private paidFetch;
|
|
11
20
|
private baseUrl;
|
|
21
|
+
private authMode;
|
|
22
|
+
private authHeaders;
|
|
12
23
|
private ready;
|
|
13
|
-
constructor(opts: MadeOnSolX402Options);
|
|
14
|
-
private
|
|
24
|
+
constructor(opts: MadeOnSolX402Options | MadeOnSolClientOptions);
|
|
25
|
+
private initX402;
|
|
15
26
|
private request;
|
|
16
|
-
/** Real-time KOL trade feed from 946+ tracked wallets.
|
|
27
|
+
/** Real-time KOL trade feed from 946+ tracked wallets. */
|
|
17
28
|
kolFeed(params?: KolFeedParams): Promise<KolFeedResponse>;
|
|
18
|
-
/** KOL convergence signals — tokens being accumulated by multiple KOLs.
|
|
29
|
+
/** KOL convergence signals — tokens being accumulated by multiple KOLs. */
|
|
19
30
|
kolCoordination(params?: KolCoordinationParams): Promise<KolCoordinationResponse>;
|
|
20
|
-
/** KOL performance rankings by PnL and win rate.
|
|
31
|
+
/** KOL performance rankings by PnL and win rate. */
|
|
21
32
|
kolLeaderboard(params?: KolLeaderboardParams): Promise<KolLeaderboardResponse>;
|
|
22
|
-
/** Real-time alerts from elite Pump.fun deployers.
|
|
33
|
+
/** Real-time alerts from elite Pump.fun deployers. */
|
|
23
34
|
deployerAlerts(params?: DeployerAlertsParams): Promise<DeployerAlertsResponse>;
|
|
24
35
|
/** Free discovery endpoint — lists all available endpoints and prices. */
|
|
25
36
|
discovery(): Promise<DiscoveryResponse>;
|
|
26
37
|
}
|
|
27
|
-
/**
|
|
28
|
-
export declare function createClient(
|
|
38
|
+
/** Create a client with API key auth (simplest option). */
|
|
39
|
+
export declare function createClient(apiKeyOrPrivateKey: string, baseUrl?: string): MadeOnSolX402;
|
|
29
40
|
interface MadeOnSolRESTOptions {
|
|
30
|
-
/**
|
|
31
|
-
apiKey
|
|
41
|
+
/** MadeOnSol API key (get one free at madeonsol.com/developer). Preferred. */
|
|
42
|
+
apiKey?: string;
|
|
43
|
+
/** RapidAPI API key. */
|
|
44
|
+
rapidApiKey?: string;
|
|
32
45
|
/** API base URL (default: https://madeonsol.com) */
|
|
33
46
|
baseUrl?: string;
|
|
34
|
-
/** RapidAPI host header
|
|
47
|
+
/** RapidAPI host header override */
|
|
35
48
|
rapidApiHost?: string;
|
|
36
49
|
}
|
|
37
50
|
/**
|
|
38
51
|
* REST API client for webhook management and WebSocket streaming tokens.
|
|
39
|
-
* Requires a
|
|
52
|
+
* Requires a Pro or Ultra subscription.
|
|
40
53
|
*/
|
|
41
54
|
export declare class MadeOnSolREST {
|
|
42
|
-
private apiKey;
|
|
43
55
|
private baseUrl;
|
|
44
|
-
private
|
|
45
|
-
constructor(opts: MadeOnSolRESTOptions
|
|
56
|
+
private headers;
|
|
57
|
+
constructor(opts: MadeOnSolRESTOptions | {
|
|
58
|
+
apiKey: string;
|
|
59
|
+
baseUrl?: string;
|
|
60
|
+
rapidApiHost?: string;
|
|
61
|
+
});
|
|
46
62
|
private request;
|
|
47
63
|
/** Create a webhook. Returns the webhook with HMAC secret (only shown once). */
|
|
48
64
|
createWebhook(params: CreateWebhookParams): Promise<{
|
|
@@ -72,5 +88,5 @@ export declare class MadeOnSolREST {
|
|
|
72
88
|
getStreamToken(): Promise<StreamToken>;
|
|
73
89
|
}
|
|
74
90
|
/** Convenience factory — creates a REST API client for webhooks + streaming. */
|
|
75
|
-
export declare function createRESTClient(
|
|
91
|
+
export declare function createRESTClient(apiKeyOrRapidApiKey: string, baseUrl?: string): MadeOnSolREST;
|
|
76
92
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,42 @@
|
|
|
1
1
|
const DEFAULT_BASE_URL = "https://madeonsol.com";
|
|
2
|
+
const RAPIDAPI_HOST = "madeonsol-solana-kol-tracker-tools-api.p.rapidapi.com";
|
|
3
|
+
function resolveAuthHeaders(mode, key, rapidApiHost) {
|
|
4
|
+
if (mode === "madeonsol")
|
|
5
|
+
return { Authorization: `Bearer ${key}` };
|
|
6
|
+
if (mode === "rapidapi")
|
|
7
|
+
return { "x-rapidapi-key": key, "x-rapidapi-host": rapidApiHost ?? RAPIDAPI_HOST };
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
2
10
|
export class MadeOnSolX402 {
|
|
3
11
|
paidFetch;
|
|
4
12
|
baseUrl;
|
|
13
|
+
authMode;
|
|
14
|
+
authHeaders;
|
|
5
15
|
ready;
|
|
6
16
|
constructor(opts) {
|
|
7
17
|
this.baseUrl = (opts.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, "");
|
|
8
|
-
this.
|
|
18
|
+
this.authHeaders = {};
|
|
19
|
+
// Resolve auth: apiKey > rapidApiKey > privateKey
|
|
20
|
+
const clientOpts = opts;
|
|
21
|
+
if (clientOpts.apiKey) {
|
|
22
|
+
this.authMode = "madeonsol";
|
|
23
|
+
this.authHeaders = resolveAuthHeaders("madeonsol", clientOpts.apiKey);
|
|
24
|
+
this.ready = Promise.resolve();
|
|
25
|
+
}
|
|
26
|
+
else if (clientOpts.rapidApiKey) {
|
|
27
|
+
this.authMode = "rapidapi";
|
|
28
|
+
this.authHeaders = resolveAuthHeaders("rapidapi", clientOpts.rapidApiKey);
|
|
29
|
+
this.ready = Promise.resolve();
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.authMode = "x402";
|
|
33
|
+
const pk = clientOpts.privateKey ?? opts.privateKey;
|
|
34
|
+
if (!pk)
|
|
35
|
+
throw new Error("Provide apiKey, rapidApiKey, or privateKey. Get a free API key at madeonsol.com/developer");
|
|
36
|
+
this.ready = this.initX402(pk);
|
|
37
|
+
}
|
|
9
38
|
}
|
|
10
|
-
async
|
|
39
|
+
async initX402(privateKey) {
|
|
11
40
|
const { wrapFetchWithPayment } = await import("@x402/fetch");
|
|
12
41
|
const { x402Client } = await import("@x402/core/client");
|
|
13
42
|
const { ExactSvmScheme } = await import("@x402/svm/exact/client");
|
|
@@ -20,33 +49,36 @@ export class MadeOnSolX402 {
|
|
|
20
49
|
}
|
|
21
50
|
async request(path, params) {
|
|
22
51
|
await this.ready;
|
|
23
|
-
const
|
|
52
|
+
const apiPath = this.authMode === "x402" ? path : path.replace("/api/x402/", "/api/v1/");
|
|
53
|
+
const url = new URL(apiPath, this.baseUrl);
|
|
24
54
|
if (params) {
|
|
25
55
|
for (const [k, v] of Object.entries(params)) {
|
|
26
56
|
if (v !== undefined)
|
|
27
57
|
url.searchParams.set(k, String(v));
|
|
28
58
|
}
|
|
29
59
|
}
|
|
30
|
-
const res =
|
|
60
|
+
const res = this.authMode === "x402"
|
|
61
|
+
? await this.paidFetch(url.toString())
|
|
62
|
+
: await fetch(url.toString(), { headers: this.authHeaders });
|
|
31
63
|
if (!res.ok) {
|
|
32
64
|
const body = await res.text().catch(() => "");
|
|
33
65
|
throw new Error(`MadeOnSol API error ${res.status}: ${body}`);
|
|
34
66
|
}
|
|
35
67
|
return res.json();
|
|
36
68
|
}
|
|
37
|
-
/** Real-time KOL trade feed from 946+ tracked wallets.
|
|
69
|
+
/** Real-time KOL trade feed from 946+ tracked wallets. */
|
|
38
70
|
async kolFeed(params) {
|
|
39
71
|
return this.request("/api/x402/kol/feed", params);
|
|
40
72
|
}
|
|
41
|
-
/** KOL convergence signals — tokens being accumulated by multiple KOLs.
|
|
73
|
+
/** KOL convergence signals — tokens being accumulated by multiple KOLs. */
|
|
42
74
|
async kolCoordination(params) {
|
|
43
75
|
return this.request("/api/x402/kol/coordination", params);
|
|
44
76
|
}
|
|
45
|
-
/** KOL performance rankings by PnL and win rate.
|
|
77
|
+
/** KOL performance rankings by PnL and win rate. */
|
|
46
78
|
async kolLeaderboard(params) {
|
|
47
79
|
return this.request("/api/x402/kol/leaderboard", params);
|
|
48
80
|
}
|
|
49
|
-
/** Real-time alerts from elite Pump.fun deployers.
|
|
81
|
+
/** Real-time alerts from elite Pump.fun deployers. */
|
|
50
82
|
async deployerAlerts(params) {
|
|
51
83
|
return this.request("/api/x402/deployer-hunter/alerts", params);
|
|
52
84
|
}
|
|
@@ -58,30 +90,39 @@ export class MadeOnSolX402 {
|
|
|
58
90
|
return res.json();
|
|
59
91
|
}
|
|
60
92
|
}
|
|
61
|
-
/**
|
|
62
|
-
export function createClient(
|
|
63
|
-
|
|
93
|
+
/** Create a client with API key auth (simplest option). */
|
|
94
|
+
export function createClient(apiKeyOrPrivateKey, baseUrl) {
|
|
95
|
+
// Auto-detect: msk_ prefix = API key, otherwise assume private key for backwards compat
|
|
96
|
+
if (apiKeyOrPrivateKey.startsWith("msk_")) {
|
|
97
|
+
return new MadeOnSolX402({ apiKey: apiKeyOrPrivateKey, baseUrl });
|
|
98
|
+
}
|
|
99
|
+
return new MadeOnSolX402({ privateKey: apiKeyOrPrivateKey, baseUrl });
|
|
64
100
|
}
|
|
65
101
|
/**
|
|
66
102
|
* REST API client for webhook management and WebSocket streaming tokens.
|
|
67
|
-
* Requires a
|
|
103
|
+
* Requires a Pro or Ultra subscription.
|
|
68
104
|
*/
|
|
69
105
|
export class MadeOnSolREST {
|
|
70
|
-
apiKey;
|
|
71
106
|
baseUrl;
|
|
72
|
-
|
|
107
|
+
headers;
|
|
73
108
|
constructor(opts) {
|
|
74
|
-
this.apiKey = opts.apiKey;
|
|
75
109
|
this.baseUrl = (opts.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, "");
|
|
76
|
-
|
|
110
|
+
if (opts.apiKey) {
|
|
111
|
+
this.headers = resolveAuthHeaders("madeonsol", opts.apiKey);
|
|
112
|
+
}
|
|
113
|
+
else if (opts.rapidApiKey) {
|
|
114
|
+
this.headers = resolveAuthHeaders("rapidapi", opts.rapidApiKey, opts.rapidApiHost);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
throw new Error("Provide apiKey or rapidApiKey. Get a free API key at madeonsol.com/developer");
|
|
118
|
+
}
|
|
77
119
|
}
|
|
78
120
|
async request(method, path, body) {
|
|
79
121
|
const res = await fetch(`${this.baseUrl}/api/v1${path}`, {
|
|
80
122
|
method,
|
|
81
123
|
headers: {
|
|
82
124
|
"Content-Type": "application/json",
|
|
83
|
-
|
|
84
|
-
"x-rapidapi-host": this.host,
|
|
125
|
+
...this.headers,
|
|
85
126
|
},
|
|
86
127
|
...(body ? { body: JSON.stringify(body) } : {}),
|
|
87
128
|
});
|
|
@@ -121,7 +162,10 @@ export class MadeOnSolREST {
|
|
|
121
162
|
}
|
|
122
163
|
}
|
|
123
164
|
/** Convenience factory — creates a REST API client for webhooks + streaming. */
|
|
124
|
-
export function createRESTClient(
|
|
125
|
-
|
|
165
|
+
export function createRESTClient(apiKeyOrRapidApiKey, baseUrl) {
|
|
166
|
+
if (apiKeyOrRapidApiKey.startsWith("msk_")) {
|
|
167
|
+
return new MadeOnSolREST({ apiKey: apiKeyOrRapidApiKey, baseUrl });
|
|
168
|
+
}
|
|
169
|
+
return new MadeOnSolREST({ rapidApiKey: apiKeyOrRapidApiKey, baseUrl });
|
|
126
170
|
}
|
|
127
171
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6CA,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|