@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
package/skills/actions.skill.md
CHANGED
|
@@ -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"]
|
package/skills/admin.skill.md
CHANGED
|
@@ -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
|
package/skills/policies.skill.md
CHANGED
|
@@ -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 |
|
|
170
|
-
| `notify_max` | string |
|
|
171
|
-
| `delay_max` | 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,
|
|
31
|
-
| **sessionAuth** | `Authorization: Bearer <token>` | Balance queries, transactions, wallet
|
|
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
|
|
34
|
-
- **sessionAuth** is for wallet-scoped operations.
|
|
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.
|
package/skills/wallet.skill.md
CHANGED
|
@@ -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
|
-
###
|
|
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>`).
|
package/skills/x402.skill.md
CHANGED
|
@@ -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"]
|