@aibtc/mcp-server 1.70.1 → 1.71.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 CHANGED
@@ -15,7 +15,7 @@ Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg,
15
15
  - **Token Operations** - SIP-010 fungible token transfers and queries
16
16
  - **NFT Support** - SIP-009 NFT holdings, transfers, and metadata
17
17
  - **DeFi Trading** - ALEX DEX swaps and Zest Protocol lending/borrowing
18
- - **Stacking/PoX** - Stacking status and delegation
18
+ - **Stacking/PoX-5** - Stake STX with a signer manager, extend, unstake, claim sBTC rewards
19
19
  - **BNS Domains** - .btc domain lookups and management (V1 + V2)
20
20
  - **x402 Payments** - Automatic payment handling for paid APIs
21
21
 
@@ -386,10 +386,14 @@ Both addresses are derived from the same recovery phrase, making it easy to mana
386
386
  ### Stacking / PoX
387
387
  | Tool | Description |
388
388
  |------|-------------|
389
- | `get_pox_info` | Get current PoX cycle info |
390
- | `get_stacking_status` | Check stacking status |
391
- | `stack_stx` | Lock STX for stacking |
392
- | `extend_stacking` | Extend stacking period |
389
+ | `get_pox_info` | Current PoX-5 cycle, burn height, prepare phase |
390
+ | `get_stacking_status` | Locked amount, signer manager, unlock height |
391
+ | `list_stacking_signers` | Signer managers in the next cycle's signer set |
392
+ | `stack_stx` | Lock STX with a signer manager |
393
+ | `extend_stacking` | Extend, increase, switch signer or payout (stake-update) |
394
+ | `unstake_stx` | Stop early; unlocks next cycle |
395
+ | `get_stacking_rewards` | Unclaimed sBTC rewards for a cycle |
396
+ | `claim_stacking_rewards` | Claim a cycle's rewards through the signer manager |
393
397
 
394
398
  ### BNS Domains (V1 + V2)
395
399
  | Tool | Description |
@@ -29,7 +29,7 @@
29
29
  */
30
30
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
31
31
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
32
- import { ALL_ENDPOINTS } from "../endpoints/registry.js";
32
+ import { STATIC_ENDPOINTS } from "../endpoints/registry.js";
33
33
  const OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions";
34
34
  const DEFAULT_MODEL = "anthropic/claude-3.5-haiku";
35
35
  /**
@@ -154,7 +154,7 @@ function printSafetyReceipt(opts, exposed, totalTools) {
154
154
  ` write_tool_count=${writeToolCount}`,
155
155
  ` blocked_tool_count=${opts.block.size}`,
156
156
  ` session_spend_cap=${opts.maxSpendUstx ?? "default"} uSTX / ${opts.maxSpendSats ?? "default"} sats`,
157
- ` x402_endpoints_known=${ALL_ENDPOINTS.length}`,
157
+ ` x402_static_endpoints=${STATIC_ENDPOINTS.length}`,
158
158
  " (reports configured execution boundaries only; no value has moved)",
159
159
  ];
160
160
  console.error(lines.join("\n"));
@@ -9,7 +9,7 @@ export declare const MAINNET_CONTRACTS: {
9
9
  readonly SBTC_WITHDRAWAL: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-withdrawal";
10
10
  readonly USDCX: "SP120SBRBQJ00MCWS7TM5R8WJNTTKD5K0HFRC2CNE.usdcx";
11
11
  readonly BNS: "SP000000000000000000002Q6VF78.bns";
12
- readonly POX_4: "SP000000000000000000002Q6VF78.pox-4";
12
+ readonly POX_5: "SP000000000000000000002Q6VF78.pox-5";
13
13
  readonly ALEX_AMM_POOL: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.amm-swap-pool-v1-1";
14
14
  readonly ALEX_TOKEN: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex";
15
15
  readonly ALEX_WSTX: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2";
@@ -57,7 +57,7 @@ export declare const TESTNET_CONTRACTS: {
57
57
  readonly SBTC_WITHDRAWAL: "ST1F7QA2MDF17S807EPA36TSS8AMEFY4KA9TVGWXT.sbtc-withdrawal";
58
58
  readonly USDCX: "ST1F7QA2MDF17S807EPA36TSS8AMEFY4KA9TVGWXT.usdcx";
59
59
  readonly BNS: "ST000000000000000000002AMW42H.bns";
60
- readonly POX_4: "ST000000000000000000002AMW42H.pox-4";
60
+ readonly POX_5: "ST000000000000000000002AMW42H.pox-5";
61
61
  readonly IDENTITY_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2";
62
62
  readonly REPUTATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2";
63
63
  readonly VALIDATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.validation-registry-v2";
@@ -72,7 +72,7 @@ export declare function getContracts(network: Network): {
72
72
  readonly SBTC_WITHDRAWAL: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-withdrawal";
73
73
  readonly USDCX: "SP120SBRBQJ00MCWS7TM5R8WJNTTKD5K0HFRC2CNE.usdcx";
74
74
  readonly BNS: "SP000000000000000000002Q6VF78.bns";
75
- readonly POX_4: "SP000000000000000000002Q6VF78.pox-4";
75
+ readonly POX_5: "SP000000000000000000002Q6VF78.pox-5";
76
76
  readonly ALEX_AMM_POOL: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.amm-swap-pool-v1-1";
77
77
  readonly ALEX_TOKEN: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex";
78
78
  readonly ALEX_WSTX: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2";
@@ -96,7 +96,7 @@ export declare function getContracts(network: Network): {
96
96
  readonly SBTC_WITHDRAWAL: "ST1F7QA2MDF17S807EPA36TSS8AMEFY4KA9TVGWXT.sbtc-withdrawal";
97
97
  readonly USDCX: "ST1F7QA2MDF17S807EPA36TSS8AMEFY4KA9TVGWXT.usdcx";
98
98
  readonly BNS: "ST000000000000000000002AMW42H.bns";
99
- readonly POX_4: "ST000000000000000000002AMW42H.pox-4";
99
+ readonly POX_5: "ST000000000000000000002AMW42H.pox-5";
100
100
  readonly IDENTITY_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2";
101
101
  readonly REPUTATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2";
102
102
  readonly VALIDATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.validation-registry-v2";
@@ -12,7 +12,7 @@ export const MAINNET_CONTRACTS = {
12
12
  // BNS
13
13
  BNS: "SP000000000000000000002Q6VF78.bns",
14
14
  // Stacking
15
- POX_4: "SP000000000000000000002Q6VF78.pox-4",
15
+ POX_5: "SP000000000000000000002Q6VF78.pox-5",
16
16
  // ALEX DEX (SDK handles most operations, but we need pool contract for queries)
17
17
  ALEX_AMM_POOL: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.amm-swap-pool-v1-1",
18
18
  ALEX_TOKEN: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
@@ -112,7 +112,7 @@ export const TESTNET_CONTRACTS = {
112
112
  // BNS
113
113
  BNS: "ST000000000000000000002AMW42H.bns",
114
114
  // Stacking
115
- POX_4: "ST000000000000000000002AMW42H.pox-4",
115
+ POX_5: "ST000000000000000000002AMW42H.pox-5",
116
116
  // ERC-8004 Identity & Reputation
117
117
  IDENTITY_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2",
118
118
  REPUTATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2",
@@ -1,41 +1,23 @@
1
1
  /**
2
- * Known x402 endpoints registry
3
- * Endpoints from x402.biwas.xyz, x402.aibtc.com, stx402.com, and aibtc.com
2
+ * Static x402 endpoint entries for hosts that do not publish an OpenAPI spec.
3
+ *
4
+ * x402.aibtc.com and stx402.com publish `openapi.json`, so their endpoints are
5
+ * discovered live (see services/x402-discovery.service.ts) instead of listed here.
4
6
  */
5
- export type X402Source = "x402.biwas.xyz" | "x402.aibtc.com" | "stx402.com" | "aibtc.com";
7
+ export type StaticX402Source = "x402.biwas.xyz" | "aibtc.com";
6
8
  export interface X402Endpoint {
7
9
  path: string;
8
10
  method: "GET" | "POST" | "PUT" | "DELETE";
9
11
  description: string;
10
12
  cost: string;
11
13
  category: string;
12
- source: X402Source;
14
+ source: string;
13
15
  params?: Record<string, string>;
14
16
  body?: Record<string, string>;
15
17
  }
16
- export declare const ALL_ENDPOINTS: X402Endpoint[];
17
- /**
18
- * Search endpoints by keyword
19
- */
20
- export declare function searchEndpoints(query: string): X402Endpoint[];
21
- /**
22
- * Get endpoints by source
23
- */
24
- export declare function getEndpointsBySource(source: X402Source): X402Endpoint[];
18
+ export declare const STATIC_ENDPOINTS: X402Endpoint[];
25
19
  /**
26
- * Format endpoints for display
20
+ * Format endpoints for display, grouped by category and source.
27
21
  */
28
22
  export declare function formatEndpointsTable(endpoints: X402Endpoint[]): string;
29
- /**
30
- * Get all unique categories
31
- */
32
- export declare function getCategories(): string[];
33
- /**
34
- * Lookup an endpoint in the registry by method, path, and source URL.
35
- * Used to determine if an endpoint is known-FREE or known-PAID before
36
- * deciding whether to use a payment-capable client.
37
- *
38
- * Supports path patterns with placeholders like {address}, {messageId}, etc.
39
- */
40
- export declare function lookupEndpoint(method: string, path: string, sourceUrl: string): X402Endpoint | undefined;
41
23
  //# sourceMappingURL=registry.d.ts.map