@waiaas/skills 2.6.0-rc → 2.6.0-rc.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waiaas/skills",
3
- "version": "2.6.0-rc",
3
+ "version": "2.6.0-rc.2",
4
4
  "description": "WAIaaS skill files for AI agents - install via npx @waiaas/skills add <name>",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -3,7 +3,7 @@ name: "WAIaaS Actions"
3
3
  description: "Action Provider framework: list providers, execute DeFi actions through the 6-stage transaction pipeline"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, defi, actions, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -3,7 +3,7 @@ name: "WAIaaS Admin"
3
3
  description: "Admin API: daemon status, kill switch, notifications, settings management, JWT rotation, shutdown, oracle status, API key management"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, admin, security, oracle, defi, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -11,6 +11,8 @@ dispatch:
11
11
 
12
12
  # WAIaaS Admin API
13
13
 
14
+ > **Operator only.** All admin endpoints require masterAuth (X-Master-Password). AI agents must NOT use these endpoints — they are for the Operator via Admin UI or CLI.
15
+
14
16
  Admin endpoints for daemon operations management. Covers health monitoring, emergency kill switch, notification channels, settings (RPC, security, notifications), JWT secret rotation, and graceful shutdown.
15
17
 
16
18
  ## Base URL
@@ -3,7 +3,7 @@ name: "WAIaaS Policies"
3
3
  description: "Policy engine CRUD: 12 policy types for spending limits, whitelists, time restrictions, rate limits, token/contract/approve controls, network restrictions, x402 domain controls"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, policies, security, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -11,6 +11,8 @@ dispatch:
11
11
 
12
12
  # WAIaaS Policy Management
13
13
 
14
+ > **Policy CRUD (create/update/delete) is Operator only** (requires masterAuth). AI agents can read policies via GET endpoints with sessionAuth, but cannot modify them.
15
+
14
16
  Policy engine for enforcing rules on wallet operations. Policies control spending limits, allowed recipients, time windows, rate limits, token whitelists, contract access, approval requirements, and network restrictions.
15
17
 
16
18
  ## Base URL
@@ -160,26 +162,50 @@ Maximum spend per tier. Amounts are digit strings in the chain's smallest unit (
160
162
  "notify_max_usd": 100,
161
163
  "delay_max_usd": 1000,
162
164
  "daily_limit_usd": 500,
163
- "monthly_limit_usd": 5000
165
+ "monthly_limit_usd": 5000,
166
+ "token_limits": {
167
+ "native:solana": {"instant_max": "1", "notify_max": "10", "delay_max": "50"},
168
+ "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v": {"instant_max": "100", "notify_max": "1000", "delay_max": "10000"}
169
+ }
164
170
  }
165
171
  ```
166
172
 
167
173
  | Field | Type | Required | Description |
168
174
  | ------------------- | ------ | -------- | ---------------------------------------------------- |
169
- | `instant_max` | string | Yes | Max amount for INSTANT tier (digit string). |
170
- | `notify_max` | string | Yes | Max amount for NOTIFY tier (digit string). |
171
- | `delay_max` | string | Yes | Max amount for DELAY tier (digit string). |
175
+ | `instant_max` | string | No | Max amount for INSTANT tier (digit string, raw units). Optional when token_limits or USD thresholds are set. |
176
+ | `notify_max` | string | No | Max amount for NOTIFY tier (digit string, raw units). Optional when token_limits or USD thresholds are set. |
177
+ | `delay_max` | string | No | Max amount for DELAY tier (digit string, raw units). Optional when token_limits or USD thresholds are set. |
172
178
  | `delay_seconds` | number | No | Cooldown for DELAY tier (seconds). Min 60, default: 900. |
173
179
  | `instant_max_usd` | number | No | Max USD amount for INSTANT tier (oracle-based). |
174
180
  | `notify_max_usd` | number | No | Max USD amount for NOTIFY tier. |
175
181
  | `delay_max_usd` | number | No | Max USD amount for DELAY tier. |
176
182
  | `daily_limit_usd` | number | No | Cumulative USD spending limit in 24h rolling window. Exceeding escalates to APPROVAL. |
177
183
  | `monthly_limit_usd` | number | No | Cumulative USD spending limit in 30d rolling window. Exceeding escalates to APPROVAL. |
184
+ | `token_limits` | object | No | Token-specific spending limits in human-readable units, keyed by CAIP-19 asset identifier. See Token-Specific Limits below. |
178
185
 
179
186
  **Tier assignment:** Amount <= instant_max -> INSTANT. Amount <= notify_max -> NOTIFY. Amount <= delay_max -> DELAY. Amount > delay_max -> APPROVAL (requires owner approval). USD tiers (if set) are evaluated via price oracle and take precedence over native amount tiers.
180
187
 
181
188
  **Cumulative limit evaluation:** After per-transaction tier assignment, if `daily_limit_usd` or `monthly_limit_usd` is set, the engine checks rolling-window cumulative USD spending (confirmed + pending reserved amounts). If cumulative + current transaction exceeds the limit, the tier is escalated to APPROVAL regardless of the per-transaction tier. The `TX_APPROVAL_REQUIRED` notification includes a `reason` field (`per_tx`, `cumulative_daily`, or `cumulative_monthly`).
182
189
 
190
+ **Token-specific limits (token_limits):**
191
+
192
+ When `token_limits` is set, the policy engine evaluates transaction amounts against per-token thresholds in human-readable units (e.g., SOL, USDC) instead of raw smallest-unit amounts. Each key is a CAIP-19 asset identifier or native token shorthand.
193
+
194
+ **Key format:**
195
+ - `"native"` -- native token of the policy's network (only valid when policy has `network` set)
196
+ - `"native:{chain}"` -- native token of a specific chain (e.g., `"native:solana"` for SOL, `"native:ethereum"` for ETH)
197
+ - `"{caip19}"` -- CAIP-19 asset ID for a specific token (e.g., `"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"` for USDC on Solana)
198
+
199
+ **Matching priority:** exact CAIP-19 asset ID > `native:{chain}` > `native` shorthand > raw field fallback.
200
+
201
+ **Value format:** Each value is an object with `instant_max`, `notify_max`, `delay_max` as human-readable decimal strings (e.g., `"1.5"` for 1.5 SOL, `"1000"` for 1000 USDC).
202
+
203
+ **Fallback behavior:** When a transaction's token does not match any `token_limits` key, the engine falls back to raw fields (`instant_max`/`notify_max`/`delay_max`). When raw fields are also absent, the native tier defaults to INSTANT (most permissive), and USD thresholds alone determine the tier.
204
+
205
+ **Scope:** `token_limits` applies to TRANSFER, TOKEN_TRANSFER, and APPROVE transactions. CONTRACT_CALL and BATCH use raw/USD evaluation only.
206
+
207
+ **Interaction with USD and cumulative limits:** Per-transaction tier = `max(USD tier, token/native tier)`. Cumulative limits (`daily_limit_usd`, `monthly_limit_usd`) are evaluated independently after per-transaction tier assignment and are unaffected by `token_limits`.
208
+
183
209
  ```bash
184
210
  curl -s -X POST http://localhost:3100/v1/policies \
185
211
  -H 'Content-Type: application/json' \
@@ -266,7 +292,7 @@ Token whitelist for TOKEN_TRANSFER transactions. **Default deny**: tokens not li
266
292
  {
267
293
  "tokens": [
268
294
  {"address": "<mint-or-contract>", "symbol": "USDC", "chain": "solana"},
269
- {"address": "<erc20-address>", "symbol": "USDT", "chain": "ethereum"}
295
+ {"address": "<erc20-address>", "symbol": "USDT", "chain": "ethereum", "assetId": "eip155:1/erc20:<erc20-address>"}
270
296
  ]
271
297
  }
272
298
  ```
@@ -277,6 +303,9 @@ Token whitelist for TOKEN_TRANSFER transactions. **Default deny**: tokens not li
277
303
  | `address` | string | Yes | Token mint (Solana) or contract address (EVM). |
278
304
  | `symbol` | string | No | Token symbol for display (e.g., "USDC"). |
279
305
  | `chain` | string | No | "solana" or "ethereum". For documentation only. |
306
+ | `assetId` | string | No | CAIP-19 asset identifier. Enables cross-chain matching. |
307
+
308
+ **CAIP-19 matching:** When `assetId` is present in both the policy token entry and the transaction's token object, exact CAIP-19 matching is used (highest confidence). When only one side has `assetId`, the daemon extracts and compares addresses. When neither has `assetId`, legacy address-only matching is used. All 4 scenarios are backward compatible.
280
309
 
281
310
  ```bash
282
311
  curl -s -X POST http://localhost:3100/v1/policies \
@@ -500,12 +529,12 @@ If no policies of a given default-deny type exist for a wallet, the check is ski
500
529
 
501
530
  ### Allow USDC token transfers
502
531
 
503
- 1. Create ALLOWED_TOKENS policy to whitelist USDC:
532
+ 1. Create ALLOWED_TOKENS policy to whitelist USDC (with optional CAIP-19 assetId):
504
533
  ```bash
505
534
  curl -s -X POST http://localhost:3100/v1/policies \
506
535
  -H 'Content-Type: application/json' \
507
536
  -H 'X-Master-Password: <password>' \
508
- -d '{"walletId":"<uuid>","type":"ALLOWED_TOKENS","rules":{"tokens":[{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC"}]}}'
537
+ -d '{"walletId":"<uuid>","type":"ALLOWED_TOKENS","rules":{"tokens":[{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","assetId":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}]}}'
509
538
  ```
510
539
 
511
540
  2. Send TOKEN_TRANSFER (see `transactions.skill.md` for full transaction reference):
@@ -513,7 +542,7 @@ curl -s -X POST http://localhost:3100/v1/policies \
513
542
  curl -s -X POST http://localhost:3100/v1/transactions/send \
514
543
  -H 'Content-Type: application/json' \
515
544
  -H 'X-Master-Password: <password>' \
516
- -d '{"type":"TOKEN_TRANSFER","to":"<recipient>","amount":"5000000","token":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","decimals":6,"symbol":"USDC"}}'
545
+ -d '{"type":"TOKEN_TRANSFER","to":"<recipient>","amount":"5000000","token":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","decimals":6,"symbol":"USDC","assetId":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}'
517
546
  ```
518
547
 
519
548
  ### Allow Uniswap contract calls
@@ -578,6 +607,19 @@ curl -s -X POST http://localhost:3100/v1/policies \
578
607
 
579
608
  When cumulative spending exceeds the limit, the transaction is escalated to APPROVAL. Owner can then approve, reject, or increase the limit.
580
609
 
610
+ ### Set token-specific spending limits
611
+
612
+ ```bash
613
+ # Set per-token limits: 1 SOL instant, 10 SOL notify, 50 SOL delay for native Solana
614
+ # Plus 100 USDC instant, 1000 USDC notify, 10000 USDC delay for USDC
615
+ curl -s -X POST http://localhost:3100/v1/policies \
616
+ -H 'Content-Type: application/json' \
617
+ -H 'X-Master-Password: <password>' \
618
+ -d '{"walletId":"<uuid>","type":"SPENDING_LIMIT","rules":{"token_limits":{"native:solana":{"instant_max":"1","notify_max":"10","delay_max":"50"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v":{"instant_max":"100","notify_max":"1000","delay_max":"10000"}},"daily_limit_usd":500}}'
619
+ ```
620
+
621
+ Native SOL transfers of <= 1 SOL are INSTANT. USDC transfers of <= 100 USDC are INSTANT. Both respect the $500/day cumulative limit.
622
+
581
623
  ---
582
624
 
583
625
  ## 5. Error Reference
@@ -3,7 +3,7 @@ name: "WAIaaS Quickset"
3
3
  description: "End-to-end quickset: create wallet, session, check balance, send first transfer"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, quickset, quickstart, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -25,13 +25,13 @@ All endpoints use this base. The daemon runs locally on port 3100 by default.
25
25
 
26
26
  WAIaaS uses two authentication methods:
27
27
 
28
- | Auth Type | Header | Used For |
29
- |-----------|--------|----------|
30
- | **masterAuth** | `X-Master-Password: <password>` | Wallet creation, session creation, wallet listing, token registry, MCP provisioning, admin |
31
- | **sessionAuth** | `Authorization: Bearer <token>` | Balance queries, transactions, wallet updates/deletion, session renewal |
28
+ | Auth Type | Header | Used For | Who |
29
+ |-----------|--------|----------|-----|
30
+ | **masterAuth** | `X-Master-Password: <password>` | Wallet creation, session creation, policy config, admin | **Operator only** |
31
+ | **sessionAuth** | `Authorization: Bearer <token>` | Balance queries, transactions, wallet info, session renewal | AI agents |
32
32
 
33
- - **masterAuth** is for administrative operations. The master password is set in `config.toml` or via `WAIAAS_SECURITY_MASTER_PASSWORD` env var.
34
- - **sessionAuth** is for wallet-scoped operations. You get a JWT token by creating a session (Step 3 below). Each session is bound to one wallet.
33
+ - **masterAuth** is for administrative operations performed by the **Operator** via Admin UI or CLI. AI agents must NEVER request or use the master password.
34
+ - **sessionAuth** is for wallet-scoped operations. AI agents operate exclusively with session tokens (Bearer wai_sess_...).
35
35
 
36
36
  ## Self-Discovery (Recommended First Step)
37
37
 
@@ -325,3 +325,31 @@ Common error codes:
325
325
  - **transactions.skill.md** -- All 5 transaction types (TRANSFER, TOKEN_TRANSFER, CONTRACT_CALL, APPROVE, BATCH) with full parameters
326
326
  - **policies.skill.md** -- Policy management (spending limits, whitelists, rate limits, approval tiers)
327
327
  - **admin.skill.md** -- Admin operations (kill switch, status, settings, notifications)
328
+
329
+ ## Asset Identification (CAIP-19)
330
+
331
+ WAIaaS supports CAIP-19 standard asset identifiers for unambiguous cross-chain token identification. When sending token transfers, you can include an optional `assetId` field in the token object:
332
+
333
+ ```bash
334
+ curl -s -X POST http://localhost:3100/v1/transactions/send \
335
+ -H 'Content-Type: application/json' \
336
+ -H 'Authorization: Bearer wai_sess_eyJ...' \
337
+ -d '{
338
+ "type": "TOKEN_TRANSFER",
339
+ "to": "9aE476sH92Vz7DMPyq5WLPkrKWivxeuTKEFKd2sZZcde",
340
+ "amount": "5000000",
341
+ "token": {
342
+ "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
343
+ "decimals": 6,
344
+ "symbol": "USDC",
345
+ "assetId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
346
+ }
347
+ }'
348
+ ```
349
+
350
+ CAIP-19 format: `{chain_id}/{asset_namespace}:{asset_reference}`
351
+ - EVM tokens: `eip155:{chainId}/erc20:{lowercase_address}`
352
+ - Solana tokens: `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:{base58_address}`
353
+ - Native assets: `{chain_id}/slip44:{coin_type}` (ETH=60, SOL=501, POL=966)
354
+
355
+ The `assetId` field is optional and backward compatible. See **transactions.skill.md** section 13 for full CAIP-19 reference.
@@ -3,7 +3,7 @@ name: "WAIaaS Transactions"
3
3
  description: "All 5 transaction types (TRANSFER, TOKEN_TRANSFER, CONTRACT_CALL, APPROVE, BATCH) with lifecycle management"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, transactions, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -138,6 +138,7 @@ Parameters:
138
138
  - `address` (required): mint address (SPL) or contract address (ERC-20)
139
139
  - `decimals` (required): integer, 0-18
140
140
  - `symbol` (required): string, 1-10 characters
141
+ - `assetId` (optional): CAIP-19 asset identifier (e.g., `"eip155:1/erc20:0xa0b8..."`). Cross-validated against `address` when provided.
141
142
  - `memo` (optional): string, max 256 characters
142
143
  - `network` (optional): target network for this transaction. Defaults to wallet's default network. Must be valid for the wallet's environment.
143
144
 
@@ -264,6 +265,7 @@ Parameters:
264
265
  - `address` (required): token contract/mint address
265
266
  - `decimals` (required): integer, 0-18
266
267
  - `symbol` (required): string, 1-10 characters
268
+ - `assetId` (optional): CAIP-19 asset identifier. Cross-validated against `address` when provided.
267
269
  - `amount` (required): string of digits, max approval amount in token's smallest unit
268
270
  - `network` (optional): target network for this transaction. Defaults to wallet's default network. Must be valid for the wallet's environment.
269
271
 
@@ -719,3 +721,72 @@ curl -s -X POST http://localhost:3100/v1/utils/encode-calldata \
719
721
  - Python: `await client.encode_calldata(abi, function_name, args)`
720
722
 
721
723
  **MCP Tool:** `encode_calldata` with parameters `abi`, `functionName`, `args`
724
+
725
+ ## 13. CAIP-19 Asset Identification
726
+
727
+ WAIaaS supports [CAIP-19](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-19.md) standard asset identifiers for cross-chain token identification. The `assetId` field is an optional addition to token objects in TOKEN_TRANSFER and APPROVE requests.
728
+
729
+ ### Format
730
+
731
+ ```
732
+ {CAIP-2 chain ID}/{asset namespace}:{asset reference}
733
+ ```
734
+
735
+ ### Examples by Chain
736
+
737
+ | Chain | Type | assetId | Description |
738
+ |-------|------|---------|-------------|
739
+ | Ethereum | ERC-20 | `eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48` | USDC on Ethereum Mainnet |
740
+ | Polygon | ERC-20 | `eip155:137/erc20:0x3c499c542cef5e3811e1192ce70d8cc03d5c3359` | USDC on Polygon |
741
+ | Solana | SPL | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | USDC on Solana Mainnet |
742
+ | Ethereum | Native | `eip155:1/slip44:60` | ETH (native) |
743
+ | Solana | Native | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501` | SOL (native) |
744
+ | Polygon | Native | `eip155:137/slip44:966` | POL (native) |
745
+
746
+ **Important:** EVM addresses in CAIP-19 must be **lowercase** (not checksummed).
747
+
748
+ ### Usage in TOKEN_TRANSFER
749
+
750
+ ```bash
751
+ curl -s -X POST http://localhost:3100/v1/transactions/send \
752
+ -H 'Content-Type: application/json' \
753
+ -H 'Authorization: Bearer wai_sess_eyJ...' \
754
+ -d '{
755
+ "type": "TOKEN_TRANSFER",
756
+ "to": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD16",
757
+ "amount": "5000000",
758
+ "token": {
759
+ "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
760
+ "decimals": 6,
761
+ "symbol": "USDC",
762
+ "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
763
+ }
764
+ }'
765
+ ```
766
+
767
+ ### Usage in APPROVE
768
+
769
+ ```bash
770
+ curl -s -X POST http://localhost:3100/v1/transactions/send \
771
+ -H 'Content-Type: application/json' \
772
+ -H 'Authorization: Bearer wai_sess_eyJ...' \
773
+ -d '{
774
+ "type": "APPROVE",
775
+ "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564",
776
+ "token": {
777
+ "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
778
+ "decimals": 6,
779
+ "symbol": "USDC",
780
+ "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
781
+ },
782
+ "amount": "1000000000"
783
+ }'
784
+ ```
785
+
786
+ ### Cross-Validation
787
+
788
+ When both `address` and `assetId` are provided, the daemon extracts the address from the CAIP-19 URI and validates it matches `token.address` (case-insensitive for EVM). If they don't match, the request is rejected with `ACTION_VALIDATION_FAILED`.
789
+
790
+ ### Backward Compatibility
791
+
792
+ `assetId` is fully optional. Existing requests without `assetId` continue to work unchanged. You can gradually adopt CAIP-19 identifiers without breaking existing integrations.
@@ -3,7 +3,7 @@ name: "WAIaaS Wallet Management"
3
3
  description: "Wallet CRUD, asset queries, session management, token registry, MCP provisioning, owner management"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, sessions, tokens, mcp, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -15,13 +15,13 @@ Complete reference for wallet CRUD operations, asset queries, session management
15
15
 
16
16
  ## Permissions
17
17
 
18
- ### Agent (sessionAuth)
18
+ ### Agent (sessionAuth) — AI agents use these
19
19
  - Query wallet balance, assets, address, nonce, and info
20
20
  - Send transactions via transaction endpoints (see transactions.skill.md)
21
21
  - Get registered tokens via `GET /v1/tokens`
22
22
  - Get applied policies via `GET /v1/policies`
23
23
 
24
- ### Admin (masterAuth)
24
+ ### Operator only (masterAuth) — NOT for AI agents
25
25
  - Create/list/update/delete wallets
26
26
  - Create/list/delete sessions, manage session-wallet links
27
27
  - Create/delete MCP tokens
@@ -29,6 +29,8 @@ Complete reference for wallet CRUD operations, asset queries, session management
29
29
  - Set owner addresses, default network, additional networks
30
30
  - WalletConnect pairing management
31
31
 
32
+ > AI agents must NEVER request the master password. Use only your session token.
33
+
32
34
  ## 1. Wallet CRUD
33
35
 
34
36
  All wallet CRUD endpoints require **masterAuth** (`X-Master-Password` header), except `PUT /v1/wallets/{id}` and `DELETE /v1/wallets/{id}` which require **sessionAuth** (`Authorization: Bearer <token>`).
@@ -3,7 +3,7 @@ name: "WAIaaS x402"
3
3
  description: "x402 auto-payment protocol: fetch URLs with automatic cryptocurrency payments"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, x402, payments, waiass]
6
- version: "2.6.0-rc"
6
+ version: "2.6.0-rc.2"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]