@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.
Files changed (3) hide show
  1. package/SKILL.md +167 -0
  2. package/package.json +13 -0
  3. 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
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@singularityhacker/bank-skill",
3
+ "version": "0.1.0",
4
+ "description": "Check balances, send money, and share receive details via Wise",
5
+ "files": [
6
+ "SKILL.md",
7
+ "run.sh",
8
+ "src"
9
+ ],
10
+ "bin": {
11
+ "bank-skill": "./run.sh"
12
+ }
13
+ }
package/run.sh ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Prefer uv if present, fall back to python
5
+ if command -v uv >/dev/null 2>&1; then
6
+ uv run python -m bankskills.core.bank.handler "$@"
7
+ else
8
+ python -m bankskills.core.bank.handler "$@"
9
+ fi