@singularityhacker/bank-skill 0.1.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/SKILL.md +167 -0
- package/package.json +13 -0
- package/run.sh +9 -0
package/SKILL.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bank-skill
|
|
3
|
+
description: Check balances, send money, and share receive details via Wise
|
|
4
|
+
homepage: https://github.com/singularityhacker/bank-skills
|
|
5
|
+
metadata: {"openclaw":{"emoji":"🏦","requires":{"bins":["python"],"env":["WISE_API_TOKEN"]},"primaryEnv":"WISE_API_TOKEN"}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Bank Skill
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Gives AI agents banking capabilities via the Wise API. Agents can check multi-currency balances, send money, and retrieve account/routing details for receiving payments.
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
- `WISE_API_TOKEN` environment variable set to a valid Wise API token
|
|
17
|
+
- Optional: `WISE_PROFILE_ID` (defaults to first available profile)
|
|
18
|
+
|
|
19
|
+
## Operations
|
|
20
|
+
|
|
21
|
+
### 1. Check Balance
|
|
22
|
+
|
|
23
|
+
**Purpose:** Query Wise multi-currency balances for the configured profile.
|
|
24
|
+
|
|
25
|
+
**Inputs:**
|
|
26
|
+
- `action`: `"balance"` (required)
|
|
27
|
+
- `currency`: Currency code filter, e.g. `"USD"` (optional — returns all if omitted)
|
|
28
|
+
|
|
29
|
+
**Outputs:**
|
|
30
|
+
- JSON array of balance objects, each with `currency`, `amount`, and `reservedAmount`
|
|
31
|
+
|
|
32
|
+
**Usage:**
|
|
33
|
+
```bash
|
|
34
|
+
echo '{"action": "balance"}' | ./run.sh
|
|
35
|
+
echo '{"action": "balance", "currency": "USD"}' | ./run.sh
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Example output:**
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"success": true,
|
|
42
|
+
"balances": [
|
|
43
|
+
{"currency": "USD", "amount": 1250.00, "reservedAmount": 0.00},
|
|
44
|
+
{"currency": "EUR", "amount": 500.75, "reservedAmount": 10.00}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 2. Get Receive Details
|
|
50
|
+
|
|
51
|
+
**Purpose:** Retrieve account number, routing number, IBAN, and related info so others can send you payments.
|
|
52
|
+
|
|
53
|
+
**Inputs:**
|
|
54
|
+
- `action`: `"receive-details"` (required)
|
|
55
|
+
- `currency`: Currency code, e.g. `"USD"` (optional — returns all if omitted)
|
|
56
|
+
|
|
57
|
+
**Outputs:**
|
|
58
|
+
- JSON object with account holder name, account number, routing number (or IBAN/SWIFT for non-USD), and bank name
|
|
59
|
+
|
|
60
|
+
**Usage:**
|
|
61
|
+
```bash
|
|
62
|
+
echo '{"action": "receive-details"}' | ./run.sh
|
|
63
|
+
echo '{"action": "receive-details", "currency": "USD"}' | ./run.sh
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Example output:**
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"success": true,
|
|
70
|
+
"details": [
|
|
71
|
+
{
|
|
72
|
+
"currency": "USD",
|
|
73
|
+
"accountHolder": "Your Business Name",
|
|
74
|
+
"accountNumber": "1234567890",
|
|
75
|
+
"routingNumber": "026073150",
|
|
76
|
+
"bankName": "Community Federal Savings Bank"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3. Send Money
|
|
83
|
+
|
|
84
|
+
**Purpose:** Initiate a transfer from your Wise balance to a recipient.
|
|
85
|
+
|
|
86
|
+
**Inputs:**
|
|
87
|
+
- `action`: `"send"` (required)
|
|
88
|
+
- `sourceCurrency`: Source currency code, e.g. `"USD"` (required)
|
|
89
|
+
- `targetCurrency`: Target currency code, e.g. `"EUR"` (required)
|
|
90
|
+
- `amount`: Amount to send as a number (required)
|
|
91
|
+
- `recipientName`: Full name of the recipient (required)
|
|
92
|
+
- `recipientAccount`: Recipient account number or IBAN (required)
|
|
93
|
+
|
|
94
|
+
**Additional fields for USD ACH transfers:**
|
|
95
|
+
- `recipientRoutingNumber`: 9-digit ABA routing number (required)
|
|
96
|
+
- `recipientCountry`: Two-letter country code, e.g. `"US"` (required)
|
|
97
|
+
- `recipientAddress`: Street address (required)
|
|
98
|
+
- `recipientCity`: City (required)
|
|
99
|
+
- `recipientState`: State code, e.g. `"NY"` (required)
|
|
100
|
+
- `recipientPostCode`: ZIP/postal code (required)
|
|
101
|
+
- `recipientAccountType`: `"CHECKING"` or `"SAVINGS"` (optional, defaults to `"CHECKING"`)
|
|
102
|
+
|
|
103
|
+
**Outputs:**
|
|
104
|
+
- JSON object with transfer ID, status, and confirmation details
|
|
105
|
+
|
|
106
|
+
**USD ACH Transfer Example:**
|
|
107
|
+
```bash
|
|
108
|
+
echo '{
|
|
109
|
+
"action": "send",
|
|
110
|
+
"sourceCurrency": "USD",
|
|
111
|
+
"targetCurrency": "USD",
|
|
112
|
+
"amount": 100.00,
|
|
113
|
+
"recipientName": "John Smith",
|
|
114
|
+
"recipientAccount": "123456789",
|
|
115
|
+
"recipientRoutingNumber": "111000025",
|
|
116
|
+
"recipientCountry": "US",
|
|
117
|
+
"recipientAddress": "123 Main St",
|
|
118
|
+
"recipientCity": "New York",
|
|
119
|
+
"recipientState": "NY",
|
|
120
|
+
"recipientPostCode": "10001",
|
|
121
|
+
"recipientAccountType": "CHECKING"
|
|
122
|
+
}' | ./run.sh
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**EUR IBAN Transfer Example (simpler):**
|
|
126
|
+
```bash
|
|
127
|
+
echo '{
|
|
128
|
+
"action": "send",
|
|
129
|
+
"sourceCurrency": "USD",
|
|
130
|
+
"targetCurrency": "EUR",
|
|
131
|
+
"amount": 100.00,
|
|
132
|
+
"recipientName": "Jane Doe",
|
|
133
|
+
"recipientAccount": "DE89370400440532013000"
|
|
134
|
+
}' | ./run.sh
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Example output:**
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"success": true,
|
|
141
|
+
"transfer": {
|
|
142
|
+
"id": 12345678,
|
|
143
|
+
"status": "processing",
|
|
144
|
+
"sourceAmount": 100.00,
|
|
145
|
+
"sourceCurrency": "USD",
|
|
146
|
+
"targetAmount": 93.50,
|
|
147
|
+
"targetCurrency": "EUR"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Failure Modes
|
|
153
|
+
|
|
154
|
+
- **Missing `WISE_API_TOKEN`:** Returns `{"success": false, "error": "WISE_API_TOKEN environment variable is not set"}`. Set the token and retry.
|
|
155
|
+
- **Invalid API token:** Returns `{"success": false, "error": "Authentication failed — check your WISE_API_TOKEN"}`.
|
|
156
|
+
- **Insufficient funds:** Returns `{"success": false, "error": "Insufficient funds in USD balance"}`. Check balance before retrying with a smaller amount.
|
|
157
|
+
- **Invalid recipient details:** Returns `{"success": false, "error": "Invalid recipient account details"}`. Verify recipient information and retry.
|
|
158
|
+
- **Unknown action:** Returns `{"success": false, "error": "Unknown action: <action>"}`. Use one of: `balance`, `receive-details`, `send`.
|
|
159
|
+
|
|
160
|
+
## When to Use
|
|
161
|
+
|
|
162
|
+
Use this skill when you need to check bank balances, send money to someone, or share your account details so someone can pay you.
|
|
163
|
+
|
|
164
|
+
## When Not to Use
|
|
165
|
+
|
|
166
|
+
- Do not use for crypto transactions (Wise restricts crypto use)
|
|
167
|
+
- Do not use with accounts holding significant funds (R&D only)
|
package/package.json
ADDED