@xona-labs/xpay 0.2.20 → 0.2.22
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/CHANGELOG.md +37 -0
- package/README.md +43 -3
- package/SKILL.md +3 -0
- package/dist/cli/index.js +40 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shop.d.ts +24 -0
- package/dist/cli/shop.d.ts.map +1 -0
- package/dist/cli/shop.js +160 -0
- package/dist/cli/shop.js.map +1 -0
- package/dist/cli/token.d.ts +7 -0
- package/dist/cli/token.d.ts.map +1 -1
- package/dist/cli/token.js +45 -0
- package/dist/cli/token.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/shop/index.d.ts +48 -0
- package/dist/shop/index.d.ts.map +1 -0
- package/dist/shop/index.js +61 -0
- package/dist/shop/index.js.map +1 -0
- package/dist/token/index.d.ts +11 -0
- package/dist/token/index.d.ts.map +1 -1
- package/dist/token/index.js +13 -1
- package/dist/token/index.js.map +1 -1
- package/dist/token/rwa.d.ts +46 -0
- package/dist/token/rwa.d.ts.map +1 -0
- package/dist/token/rwa.js +101 -0
- package/dist/token/rwa.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +109 -0
- package/dist/tools/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ import { signersFromProfile, deriveKeysFromMnemonic } from "./profile/index.js";
|
|
|
23
23
|
import { fetchReport } from "./report/index.js";
|
|
24
24
|
import { transfer } from "./transfer/index.js";
|
|
25
25
|
import { findTokens } from "./token/index.js";
|
|
26
|
+
import { findRwaTokens } from "./token/rwa.js";
|
|
26
27
|
import { swap, swapQuote } from "./swap/index.js";
|
|
27
28
|
import { trade, tradeQuote } from "./trading/index.js";
|
|
28
29
|
import { trendingTokens, newTokens } from "./trading/discovery.js";
|
|
@@ -42,6 +43,7 @@ export { fetchPayAIResources } from "./discover/payai.js";
|
|
|
42
43
|
export { fetchOrbitX402Resources } from "./discover/orbitx402.js";
|
|
43
44
|
export { fetchAgencResources, fetchAgencListing, fetchAgencTask, listingToResource, isAgencResource, AGENC_SCHEME, } from "./agenc/api.js";
|
|
44
45
|
export { findTokens, resolveTradeToken, enrichTokenBalances, AmbiguousTokenError, NATIVE_SOL_MINT, } from "./token/index.js";
|
|
46
|
+
export { findRwaTokens, } from "./token/rwa.js";
|
|
45
47
|
export { swap as swapTokens, swapQuote as quoteSwap, } from "./swap/index.js";
|
|
46
48
|
export { trade as tradeTokens, tradeQuote as quoteTrade, RH_CONTRACTS, } from "./trading/index.js";
|
|
47
49
|
export { trendingTokens, newTokens, tokenPriceUsd, robinhoodHoldings, } from "./trading/discovery.js";
|
|
@@ -105,6 +107,11 @@ export function createXPay(options) {
|
|
|
105
107
|
apiKey: options.profile?.config.swap?.apiKey,
|
|
106
108
|
...opts,
|
|
107
109
|
}),
|
|
110
|
+
findRwaTokens: (opts) => findRwaTokens({
|
|
111
|
+
endpoint: options.profile?.config.swap?.endpoint,
|
|
112
|
+
apiKey: options.profile?.config.swap?.apiKey,
|
|
113
|
+
...opts,
|
|
114
|
+
}),
|
|
108
115
|
swapQuote: (args) => swapQuote({ ...args, wallet, config: options.profile?.config.swap }),
|
|
109
116
|
swap: (args) => swap({ ...args, wallet, guardrail, config: options.profile?.config.swap }),
|
|
110
117
|
tradeQuote: (args) => tradeQuote({ ...args, wallet, config: options.profile?.config.trading }),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAmC,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAwB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAsB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAyC,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAuB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAmC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAqC,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,SAAS,EAAwB,MAAM,wBAAwB,CAAC;AASzF,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,SAAS,IAAI,SAAS,GAKvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,IAAI,WAAW,EACpB,UAAU,IAAI,UAAU,EACxB,YAAY,GAMb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,SAAS,EACT,aAAa,EACb,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xona shop partner integration: product discovery across Google Shopping,
|
|
3
|
+
* Amazon, and eBay behind xona's x402-paywalled /shop/search endpoint.
|
|
4
|
+
*
|
|
5
|
+
* Flow differs from zauth in one important way: there is a FREE preflight
|
|
6
|
+
* (POST /api/shop/quote) that parses the query server-side and reports the
|
|
7
|
+
* exact price plus whether the query is even a product search. Callers should
|
|
8
|
+
* quote first, then pay: the paid door rejects non-product queries but still
|
|
9
|
+
* charges for the parse, so the free quote is what keeps agents from paying
|
|
10
|
+
* for a query that returns nothing. The search itself is synchronous, so
|
|
11
|
+
* there is no polling step.
|
|
12
|
+
*/
|
|
13
|
+
export declare const SHOP_BASE: string;
|
|
14
|
+
/** Marketplaces the resource can fan out to. Price scales with how many are searched. */
|
|
15
|
+
export declare const SHOP_MARKETPLACES: readonly ["google_shopping", "amazon", "ebay"];
|
|
16
|
+
export interface ShopSearchParams {
|
|
17
|
+
/** Free-text shopper query. The only required field; everything else overrides the server-side parse. */
|
|
18
|
+
query: string;
|
|
19
|
+
/** Restrict to a subset of google_shopping / amazon / ebay. Fewer marketplaces means a lower price. */
|
|
20
|
+
marketplaces?: string[];
|
|
21
|
+
price_min?: number;
|
|
22
|
+
price_max?: number;
|
|
23
|
+
/** new | open_box | refurbished | used | for_parts */
|
|
24
|
+
condition?: string;
|
|
25
|
+
/** relevance | price_asc | price_desc | rating | reviews | discount | newest */
|
|
26
|
+
sort?: string;
|
|
27
|
+
country?: string;
|
|
28
|
+
/** Max results after merge/dedupe. Server default 20. */
|
|
29
|
+
limit?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface ShopQuote {
|
|
32
|
+
success: boolean;
|
|
33
|
+
is_product_query: boolean;
|
|
34
|
+
price_usd: number;
|
|
35
|
+
would_search: string[];
|
|
36
|
+
intent?: Record<string, unknown>;
|
|
37
|
+
[key: string]: unknown;
|
|
38
|
+
}
|
|
39
|
+
/** Free preflight against /api/shop/quote. No wallet, no SerpAPI credit spent. */
|
|
40
|
+
export declare function fetchShopQuote(params: ShopSearchParams): Promise<ShopQuote>;
|
|
41
|
+
/**
|
|
42
|
+
* Search results carry per-product fields the typical agent never reads
|
|
43
|
+
* (image URLs, marketplace position, internal scoring). Trim each product to
|
|
44
|
+
* the comparison-relevant fields; use the raw payload when full detail
|
|
45
|
+
* matters (CLI --json).
|
|
46
|
+
*/
|
|
47
|
+
export declare function compactShopResult(data: unknown): unknown;
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shop/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,SAAS,QAAiE,CAAC;AAExF,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,gDAAiD,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,yGAAyG;IACzG,KAAK,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,kFAAkF;AAClF,wBAAsB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAqBjF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAoBxD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xona shop partner integration: product discovery across Google Shopping,
|
|
3
|
+
* Amazon, and eBay behind xona's x402-paywalled /shop/search endpoint.
|
|
4
|
+
*
|
|
5
|
+
* Flow differs from zauth in one important way: there is a FREE preflight
|
|
6
|
+
* (POST /api/shop/quote) that parses the query server-side and reports the
|
|
7
|
+
* exact price plus whether the query is even a product search. Callers should
|
|
8
|
+
* quote first, then pay: the paid door rejects non-product queries but still
|
|
9
|
+
* charges for the parse, so the free quote is what keeps agents from paying
|
|
10
|
+
* for a query that returns nothing. The search itself is synchronous, so
|
|
11
|
+
* there is no polling step.
|
|
12
|
+
*/
|
|
13
|
+
export const SHOP_BASE = process.env.XPAY_SHOP_ENDPOINT ?? "https://api.xona-agent.com";
|
|
14
|
+
/** Marketplaces the resource can fan out to. Price scales with how many are searched. */
|
|
15
|
+
export const SHOP_MARKETPLACES = ["google_shopping", "amazon", "ebay"];
|
|
16
|
+
/** Free preflight against /api/shop/quote. No wallet, no SerpAPI credit spent. */
|
|
17
|
+
export async function fetchShopQuote(params) {
|
|
18
|
+
const res = await fetch(`${SHOP_BASE}/api/shop/quote`, {
|
|
19
|
+
method: "POST",
|
|
20
|
+
headers: { "content-type": "application/json" },
|
|
21
|
+
body: JSON.stringify(params),
|
|
22
|
+
});
|
|
23
|
+
const text = await res.text();
|
|
24
|
+
let data;
|
|
25
|
+
try {
|
|
26
|
+
data = text ? JSON.parse(text) : {};
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
data = { raw: text };
|
|
30
|
+
}
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
const detail = typeof data === "object" && data !== null && "message" in data
|
|
33
|
+
? String(data.message)
|
|
34
|
+
: text.slice(0, 200);
|
|
35
|
+
throw new Error(`shop quote ${res.status}${detail ? `: ${detail}` : ""}`);
|
|
36
|
+
}
|
|
37
|
+
return data;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Search results carry per-product fields the typical agent never reads
|
|
41
|
+
* (image URLs, marketplace position, internal scoring). Trim each product to
|
|
42
|
+
* the comparison-relevant fields; use the raw payload when full detail
|
|
43
|
+
* matters (CLI --json).
|
|
44
|
+
*/
|
|
45
|
+
export function compactShopResult(data) {
|
|
46
|
+
if (typeof data !== "object" || data === null)
|
|
47
|
+
return data;
|
|
48
|
+
const { results, ...rest } = data;
|
|
49
|
+
if (!Array.isArray(results))
|
|
50
|
+
return data;
|
|
51
|
+
return {
|
|
52
|
+
...rest,
|
|
53
|
+
results: results.map((p) => {
|
|
54
|
+
if (typeof p !== "object" || p === null)
|
|
55
|
+
return p;
|
|
56
|
+
const { image: _image, product_id: _pid, position: _pos, sponsored: _sponsored, relevance_score: _score, badges: _badges, ...keep } = p;
|
|
57
|
+
return keep;
|
|
58
|
+
}),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shop/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,4BAA4B,CAAC;AAExF,yFAAyF;AACzF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AA2BhF,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB;IAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,iBAAiB,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,GACV,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,SAAS,IAAI,IAAI;YAC5D,CAAC,CAAC,MAAM,CAAE,IAA6B,CAAC,OAAO,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAiB,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAA+B,CAAC;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YAClD,MAAM,EACJ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,OAAO,EACf,GAAG,IAAI,EACR,GAAG,CAA4B,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/dist/token/index.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export interface TokenInfo {
|
|
|
23
23
|
organicScore?: number;
|
|
24
24
|
tokenProgram?: string;
|
|
25
25
|
icon?: string;
|
|
26
|
+
/** Jupiter's tag list (e.g. verified, rwa, stocks, xstocks, yield). */
|
|
27
|
+
tags?: string[];
|
|
26
28
|
}
|
|
27
29
|
export interface TokenApiOptions {
|
|
28
30
|
/** Jupiter API base. Default https://api.jup.ag (env: XPAY_JUPITER_ENDPOINT). */
|
|
@@ -75,6 +77,15 @@ export declare function enrichTokenBalances(balances: Array<{
|
|
|
75
77
|
address?: string;
|
|
76
78
|
isNative?: boolean;
|
|
77
79
|
}>, opts?: TokenApiOptions): Promise<EnrichedTokenBalance[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Raw Jupiter search, exported for callers that need the unranked result set
|
|
82
|
+
* (e.g. RWA discovery, which filters by tag before ranking). `limit` above the
|
|
83
|
+
* API's default 20 is passed through; at or below it is left client-side so
|
|
84
|
+
* findTokens keeps ranking from the full default window.
|
|
85
|
+
*/
|
|
86
|
+
export declare function searchTokens(query: string, opts?: TokenApiOptions & {
|
|
87
|
+
limit?: number;
|
|
88
|
+
}): Promise<TokenInfo[]>;
|
|
78
89
|
/** GET with a 10s timeout and backoff retries on 429 (keyless bucket is small). */
|
|
79
90
|
export declare function jupiterFetch(url: string, apiKey?: string, init?: RequestInit): Promise<unknown>;
|
|
80
91
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,0FAA0F;AAC1F,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,0FAA0F;AAC1F,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,8FAA8F;AAC9F,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;gBACrB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;CAUnD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,SAAS,EAAE,CAAC,CAetB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoDrG;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EAC1H,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA0BjC;AAqBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB;AAiCD,mFAAmF;AACnF,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BrG"}
|
package/dist/token/index.js
CHANGED
|
@@ -126,11 +126,22 @@ export async function enrichTokenBalances(balances, opts = {}) {
|
|
|
126
126
|
return balances;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Raw Jupiter search, exported for callers that need the unranked result set
|
|
131
|
+
* (e.g. RWA discovery, which filters by tag before ranking). `limit` above the
|
|
132
|
+
* API's default 20 is passed through; at or below it is left client-side so
|
|
133
|
+
* findTokens keeps ranking from the full default window.
|
|
134
|
+
*/
|
|
135
|
+
export async function searchTokens(query, opts = {}) {
|
|
136
|
+
return searchJupiter(query, opts);
|
|
137
|
+
}
|
|
138
|
+
async function searchJupiter(query, opts = {}) {
|
|
130
139
|
const endpoint = opts.endpoint ?? process.env.XPAY_JUPITER_ENDPOINT ?? DEFAULT_ENDPOINT;
|
|
131
140
|
const apiKey = opts.apiKey ?? process.env.JUPITER_API_KEY;
|
|
132
141
|
const url = new URL("/tokens/v2/search", endpoint);
|
|
133
142
|
url.searchParams.set("query", query);
|
|
143
|
+
if (opts.limit && opts.limit > 20)
|
|
144
|
+
url.searchParams.set("limit", String(Math.min(opts.limit, 100)));
|
|
134
145
|
const body = (await jupiterFetch(url.toString(), apiKey));
|
|
135
146
|
if (!Array.isArray(body))
|
|
136
147
|
return [];
|
|
@@ -150,6 +161,7 @@ async function searchJupiter(query, opts) {
|
|
|
150
161
|
organicScore: numOrUndef(t.organicScore),
|
|
151
162
|
tokenProgram: t.tokenProgram,
|
|
152
163
|
icon: t.icon,
|
|
164
|
+
tags: Array.isArray(t.tags) ? t.tags : undefined,
|
|
153
165
|
}));
|
|
154
166
|
}
|
|
155
167
|
/** GET with a 10s timeout and backoff retries on 429 (keyless bucket is small). */
|
package/dist/token/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,eAAe,GAAG,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RWA (real-world asset) discovery on Solana — Jupiter Token API v2.
|
|
3
|
+
*
|
|
4
|
+
* "RWA" covers every tokenized off-chain asset: equities, ETFs, treasuries,
|
|
5
|
+
* commodities, private credit. What is actually TRADABLE on Solana DEXes
|
|
6
|
+
* today is narrower, and that is what this module surfaces:
|
|
7
|
+
*
|
|
8
|
+
* - Tokenized stocks/ETFs: Backed xStocks (TSLAx, SPYx, ...), Ondo Global
|
|
9
|
+
* Markets (TSLAon, GLDon, ...), Remora, Backpack Securities. Jupiter tags
|
|
10
|
+
* these `rwa` / `stocks` / `xstocks` on each token record.
|
|
11
|
+
* - Treasury-backed yieldcoins: Ondo USDY (tagged `yield`/`yb`, not `rwa`,
|
|
12
|
+
* so it is pinned here explicitly).
|
|
13
|
+
*
|
|
14
|
+
* Permissioned funds (BlackRock BUIDL, Ondo OUSG) exist on Solana but are
|
|
15
|
+
* KYC-gated: unverified on Jupiter, zero DEX liquidity, not swappable — they
|
|
16
|
+
* are deliberately excluded.
|
|
17
|
+
*
|
|
18
|
+
* Jupiter's tag ENDPOINT rejects `rwa`/`stocks`/`xstocks` as queries (only
|
|
19
|
+
* lst/verified work), so discovery sweeps the search endpoint with a few
|
|
20
|
+
* curated queries and filters by each token's `tags` array instead. Free,
|
|
21
|
+
* read-only, no wallet.
|
|
22
|
+
*/
|
|
23
|
+
import { type TokenInfo, type TokenApiOptions } from "./index.js";
|
|
24
|
+
export type RwaCategory = "stocks" | "treasuries";
|
|
25
|
+
export interface RwaToken extends TokenInfo {
|
|
26
|
+
category: RwaCategory;
|
|
27
|
+
/** Issuing platform, derived from Jupiter tags/naming. */
|
|
28
|
+
issuer: string;
|
|
29
|
+
}
|
|
30
|
+
export interface RwaFindOptions extends TokenApiOptions {
|
|
31
|
+
/** Substring filter on symbol/name, e.g. "tesla" matches TSLAx and TSLAon. */
|
|
32
|
+
query?: string;
|
|
33
|
+
/** Restrict to one category. Default: both. */
|
|
34
|
+
category?: RwaCategory;
|
|
35
|
+
/** Max results. Default 20. */
|
|
36
|
+
limit?: number;
|
|
37
|
+
/** Include unverified tokens (excluded by default — same scam caveat as any ticker). */
|
|
38
|
+
includeUnverified?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* List tradable RWA tokens on Solana, ranked by liquidity. The underlying
|
|
42
|
+
* sweep (5 Jupiter calls) is cached in-process for 5 minutes; query/category
|
|
43
|
+
* filtering is applied per call on the cached set.
|
|
44
|
+
*/
|
|
45
|
+
export declare function findRwaTokens(opts?: RwaFindOptions): Promise<RwaToken[]>;
|
|
46
|
+
//# sourceMappingURL=rwa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rwa.d.ts","sourceRoot":"","sources":["../../src/token/rwa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAgB,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAehF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAElD,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,QAAQ,EAAE,WAAW,CAAC;IACtB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAalF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RWA (real-world asset) discovery on Solana — Jupiter Token API v2.
|
|
3
|
+
*
|
|
4
|
+
* "RWA" covers every tokenized off-chain asset: equities, ETFs, treasuries,
|
|
5
|
+
* commodities, private credit. What is actually TRADABLE on Solana DEXes
|
|
6
|
+
* today is narrower, and that is what this module surfaces:
|
|
7
|
+
*
|
|
8
|
+
* - Tokenized stocks/ETFs: Backed xStocks (TSLAx, SPYx, ...), Ondo Global
|
|
9
|
+
* Markets (TSLAon, GLDon, ...), Remora, Backpack Securities. Jupiter tags
|
|
10
|
+
* these `rwa` / `stocks` / `xstocks` on each token record.
|
|
11
|
+
* - Treasury-backed yieldcoins: Ondo USDY (tagged `yield`/`yb`, not `rwa`,
|
|
12
|
+
* so it is pinned here explicitly).
|
|
13
|
+
*
|
|
14
|
+
* Permissioned funds (BlackRock BUIDL, Ondo OUSG) exist on Solana but are
|
|
15
|
+
* KYC-gated: unverified on Jupiter, zero DEX liquidity, not swappable — they
|
|
16
|
+
* are deliberately excluded.
|
|
17
|
+
*
|
|
18
|
+
* Jupiter's tag ENDPOINT rejects `rwa`/`stocks`/`xstocks` as queries (only
|
|
19
|
+
* lst/verified work), so discovery sweeps the search endpoint with a few
|
|
20
|
+
* curated queries and filters by each token's `tags` array instead. Free,
|
|
21
|
+
* read-only, no wallet.
|
|
22
|
+
*/
|
|
23
|
+
import { searchTokens } from "./index.js";
|
|
24
|
+
/**
|
|
25
|
+
* Search queries that together surface every rwa-tagged token family on
|
|
26
|
+
* Jupiter. "Ondo Tokenized" is deliberately specific: the generic "tokenized"
|
|
27
|
+
* ranking is volume-based and lets low-liquidity Ondo listings fall out of
|
|
28
|
+
* its top-100 between runs.
|
|
29
|
+
*/
|
|
30
|
+
const SWEEP_QUERIES = ["xstock", "Ondo Tokenized", "tokenized", "treasury", "remora"];
|
|
31
|
+
/** Ondo USDY — treasury-backed yieldcoin, tagged yield/yb on Jupiter rather than rwa. */
|
|
32
|
+
const USDY_MINT = "A1KLoBrKBde8Ty9qtNQUtq3C2ortoC3u7twggz7sEto6";
|
|
33
|
+
const CACHE_TTL_MS = 5 * 60_000;
|
|
34
|
+
let sweepCache;
|
|
35
|
+
/**
|
|
36
|
+
* List tradable RWA tokens on Solana, ranked by liquidity. The underlying
|
|
37
|
+
* sweep (5 Jupiter calls) is cached in-process for 5 minutes; query/category
|
|
38
|
+
* filtering is applied per call on the cached set.
|
|
39
|
+
*/
|
|
40
|
+
export async function findRwaTokens(opts = {}) {
|
|
41
|
+
const all = await sweep(opts);
|
|
42
|
+
const q = opts.query?.trim().toLowerCase();
|
|
43
|
+
const limit = opts.limit ?? 20;
|
|
44
|
+
return all
|
|
45
|
+
.filter((t) => (opts.category ? t.category === opts.category : true))
|
|
46
|
+
.filter((t) => (opts.includeUnverified ? true : t.verified))
|
|
47
|
+
.filter((t) => q ? t.symbol.toLowerCase().includes(q) || t.name.toLowerCase().includes(q) : true)
|
|
48
|
+
.slice(0, limit);
|
|
49
|
+
}
|
|
50
|
+
async function sweep(opts) {
|
|
51
|
+
if (sweepCache && Date.now() - sweepCache.at < CACHE_TTL_MS)
|
|
52
|
+
return sweepCache.tokens;
|
|
53
|
+
const byMint = new Map();
|
|
54
|
+
// Sequential on purpose: the keyless Jupiter bucket is small and
|
|
55
|
+
// jupiterFetch's 429 backoff works better without parallel bursts.
|
|
56
|
+
for (const query of SWEEP_QUERIES) {
|
|
57
|
+
let batch = [];
|
|
58
|
+
try {
|
|
59
|
+
batch = await searchTokens(query, { ...opts, limit: 100 });
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// One failed sweep query degrades coverage, not the whole listing.
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
for (const t of batch) {
|
|
66
|
+
const tags = t.tags ?? [];
|
|
67
|
+
if (!tags.includes("rwa") && !tags.includes("stocks"))
|
|
68
|
+
continue;
|
|
69
|
+
byMint.set(t.mint, { ...t, category: "stocks", issuer: issuerOf(t) });
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const [usdy] = await searchTokens(USDY_MINT, opts);
|
|
74
|
+
if (usdy && usdy.mint === USDY_MINT) {
|
|
75
|
+
byMint.set(usdy.mint, { ...usdy, category: "treasuries", issuer: "Ondo" });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
/* listing survives without USDY */
|
|
80
|
+
}
|
|
81
|
+
const tokens = [...byMint.values()].sort((a, b) => {
|
|
82
|
+
if (a.verified !== b.verified)
|
|
83
|
+
return a.verified ? -1 : 1;
|
|
84
|
+
return (b.liquidity ?? 0) - (a.liquidity ?? 0);
|
|
85
|
+
});
|
|
86
|
+
if (tokens.length > 0)
|
|
87
|
+
sweepCache = { at: Date.now(), tokens };
|
|
88
|
+
return tokens;
|
|
89
|
+
}
|
|
90
|
+
function issuerOf(t) {
|
|
91
|
+
if (t.tags?.includes("xstocks") || / xStock$/.test(t.name))
|
|
92
|
+
return "Backed xStocks";
|
|
93
|
+
if (t.name.includes("(Ondo Tokenized)"))
|
|
94
|
+
return "Ondo Global Markets";
|
|
95
|
+
if (/remora/i.test(t.name))
|
|
96
|
+
return "Remora";
|
|
97
|
+
if (/backpack/i.test(t.name))
|
|
98
|
+
return "Backpack Securities";
|
|
99
|
+
return "other";
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=rwa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rwa.js","sourceRoot":"","sources":["../../src/token/rwa.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAoBxC,MAAM,WAAW,UAAU,CAAC,IAAI;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,WAAgB,GAAG,UAAU,CAAC,aAAa,CAAC,CAsnBvF;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI;;;;;;;;;qCAxoBD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC;EAqpB9E;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI;;;;;;;;qCAxpBD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC;EAsqB9E"}
|
package/dist/tools/index.js
CHANGED
|
@@ -16,6 +16,8 @@ import { enrichTokenBalances } from "../token/index.js";
|
|
|
16
16
|
import { robinhoodHoldings } from "../trading/discovery.js";
|
|
17
17
|
import { forSana } from "../sana/tools.js";
|
|
18
18
|
import { ZAUTH_BASE, isScanPending, isScanning, pollRepoScan, fetchScanStatus, compactScanReport, } from "../zauth/index.js";
|
|
19
|
+
import { SHOP_BASE, fetchShopQuote, compactShopResult } from "../shop/index.js";
|
|
20
|
+
import { findRwaTokens } from "../token/rwa.js";
|
|
19
21
|
/** Base URL for xona's paid X (Twitter) data endpoints (x402-gated). */
|
|
20
22
|
const XDATA_BASE = process.env.XPAY_XDATA_ENDPOINT ?? "https://api.xona-agent.com";
|
|
21
23
|
/** Anthropic Claude tool definitions. */
|
|
@@ -302,6 +304,88 @@ export function forClaude(xpay, opts = {}) {
|
|
|
302
304
|
required: ["sessionToken"],
|
|
303
305
|
},
|
|
304
306
|
},
|
|
307
|
+
{
|
|
308
|
+
name: "xpay_rwa_find",
|
|
309
|
+
description: "List tradable RWA (real-world asset) tokens on Solana: FREE, read-only, no wallet. " +
|
|
310
|
+
"RWA means any tokenized off-chain asset, not just stocks. What is tradable on Solana " +
|
|
311
|
+
"DEXes today: tokenized stocks/ETFs (Backed xStocks like TSLAx/SPYx, Ondo Global Markets " +
|
|
312
|
+
"like TSLAon/GLDon, Remora, Backpack) plus the treasury-backed yieldcoin USDY. Ranked " +
|
|
313
|
+
"verified-first by liquidity, with live price/mcap from Jupiter. Results are swappable " +
|
|
314
|
+
"from USDC via xpay_swap (confirm with the user first). Caveats to relay when relevant: " +
|
|
315
|
+
"these are issuer IOUs tracking the underlying, not brokerage shares; permissioned funds " +
|
|
316
|
+
"(BUIDL, OUSG) are excluded because they are KYC-gated and not DEX-tradable.",
|
|
317
|
+
input_schema: {
|
|
318
|
+
type: "object",
|
|
319
|
+
properties: {
|
|
320
|
+
query: {
|
|
321
|
+
type: "string",
|
|
322
|
+
description: "Substring filter on symbol/name, e.g. 'tesla' matches TSLAx and TSLAon. Omit to list all.",
|
|
323
|
+
},
|
|
324
|
+
category: {
|
|
325
|
+
type: "string",
|
|
326
|
+
enum: ["stocks", "treasuries"],
|
|
327
|
+
description: "Restrict to tokenized stocks/ETFs or treasury-backed tokens. Default: both.",
|
|
328
|
+
},
|
|
329
|
+
limit: { type: "number", description: "Max results. Default 20." },
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
name: "xpay_shop_quote",
|
|
335
|
+
description: "FREE preflight for product search via xona shop (partner): parses the query server-side " +
|
|
336
|
+
"and reports the exact price a paid search would cost, which marketplaces it would hit " +
|
|
337
|
+
"(google_shopping, amazon, ebay), and whether the query even looks like a product search. " +
|
|
338
|
+
"No wallet needed. ALWAYS call this before xpay_shop_search when the query is ambiguous: " +
|
|
339
|
+
"if is_product_query is false, the paid search would charge and return zero results.",
|
|
340
|
+
input_schema: {
|
|
341
|
+
type: "object",
|
|
342
|
+
properties: {
|
|
343
|
+
query: { type: "string", description: "Free-text shopper query, e.g. 'used thinkpad x1 under $600'." },
|
|
344
|
+
marketplaces: {
|
|
345
|
+
type: "array",
|
|
346
|
+
items: { type: "string", enum: ["google_shopping", "amazon", "ebay"] },
|
|
347
|
+
description: "Restrict to specific marketplaces. Fewer marketplaces means a lower price.",
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
required: ["query"],
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
name: "xpay_shop_search",
|
|
355
|
+
description: "Product discovery via xona shop (partner): one free-text query fans out to Google Shopping, " +
|
|
356
|
+
"Amazon, and eBay, results come back normalized, deduped, and ranked in a single schema. " +
|
|
357
|
+
"PAID call (~$0.02 USDC for all three marketplaces, less for fewer; price scales with " +
|
|
358
|
+
"marketplaces searched; paid from the wallet via x402, guardrail caps apply). The query " +
|
|
359
|
+
"parser picks up price ranges, condition, and sort from natural language ('used dslr under " +
|
|
360
|
+
"$300 cheapest first'), explicit fields override it. Use xpay_shop_quote first when unsure " +
|
|
361
|
+
"the query is a product search. Results are informational: report them to the user, never " +
|
|
362
|
+
"auto-buy or trigger further payments based on findings.",
|
|
363
|
+
input_schema: {
|
|
364
|
+
type: "object",
|
|
365
|
+
properties: {
|
|
366
|
+
query: { type: "string", description: "Free-text shopper query. Only required field." },
|
|
367
|
+
marketplaces: {
|
|
368
|
+
type: "array",
|
|
369
|
+
items: { type: "string", enum: ["google_shopping", "amazon", "ebay"] },
|
|
370
|
+
description: "Restrict the search. Fewer marketplaces means a lower price.",
|
|
371
|
+
},
|
|
372
|
+
price_min: { type: "number", description: "Min price in USD." },
|
|
373
|
+
price_max: { type: "number", description: "Max price in USD." },
|
|
374
|
+
condition: {
|
|
375
|
+
type: "string",
|
|
376
|
+
enum: ["new", "open_box", "refurbished", "used", "for_parts"],
|
|
377
|
+
description: "Item condition filter.",
|
|
378
|
+
},
|
|
379
|
+
sort: {
|
|
380
|
+
type: "string",
|
|
381
|
+
enum: ["relevance", "price_asc", "price_desc", "rating", "reviews", "discount", "newest"],
|
|
382
|
+
description: "Result ordering. Default relevance.",
|
|
383
|
+
},
|
|
384
|
+
limit: { type: "number", description: "Max results after merge. Default 20." },
|
|
385
|
+
},
|
|
386
|
+
required: ["query"],
|
|
387
|
+
},
|
|
388
|
+
},
|
|
305
389
|
{
|
|
306
390
|
name: "xpay_agenc_status",
|
|
307
391
|
description: "Check the progress of an AgenC marketplace hire (read-only, no wallet). " +
|
|
@@ -476,6 +560,31 @@ export function forClaude(xpay, opts = {}) {
|
|
|
476
560
|
return { ...result, data: compactScanReport(data) };
|
|
477
561
|
},
|
|
478
562
|
xpay_zauth_scan_status: async (input) => compactScanReport(await fetchScanStatus(input.sessionToken)),
|
|
563
|
+
xpay_rwa_find: async (input) => findRwaTokens({
|
|
564
|
+
query: input.query,
|
|
565
|
+
category: input.category,
|
|
566
|
+
limit: input.limit ?? 20,
|
|
567
|
+
}),
|
|
568
|
+
xpay_shop_quote: async (input) => fetchShopQuote({
|
|
569
|
+
query: input.query,
|
|
570
|
+
marketplaces: input.marketplaces,
|
|
571
|
+
}),
|
|
572
|
+
xpay_shop_search: async (input) => {
|
|
573
|
+
const params = {
|
|
574
|
+
query: input.query,
|
|
575
|
+
marketplaces: input.marketplaces,
|
|
576
|
+
price_min: input.price_min,
|
|
577
|
+
price_max: input.price_max,
|
|
578
|
+
condition: input.condition,
|
|
579
|
+
sort: input.sort,
|
|
580
|
+
limit: input.limit,
|
|
581
|
+
};
|
|
582
|
+
const result = await xpay.useByUrl(`${SHOP_BASE}/shop/search`, {
|
|
583
|
+
method: "POST",
|
|
584
|
+
body: params,
|
|
585
|
+
});
|
|
586
|
+
return { ...result, data: compactShopResult(result.data) };
|
|
587
|
+
},
|
|
479
588
|
xpay_agenc_status: async (input) => fetchAgencTask(input.taskPda),
|
|
480
589
|
};
|
|
481
590
|
// Merge Sana tools if an API key is configured.
|