@goplausible/openclaw-algorand-plugin 1.9.4 → 1.9.5

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/memory/MEMORY.md CHANGED
@@ -26,6 +26,12 @@
26
26
  * `generate_algorand_qrcode` returns `qr` (UTF-8 text QR), `uri` (algorand:// URI), `link` (shareable hosted QR URL via QRClaw), and `expires_in` (link validity).
27
27
  * **Channel-aware output**: In TUI/Web channels, include UTF-8 QR block + URI + shareable link. In social channels (Telegram, Discord, WhatsApp, Slack, etc.), skip the QR block (too bulky) and show only URI + shareable link.
28
28
 
29
+ ### Transaction ID Delivery
30
+ * ALWAYS present transaction IDs to the user after any successful transaction submission.
31
+ * **Mainnet** explorer link: `https://allo.info/tx/{txId}`
32
+ * **Testnet** explorer link: `https://lora.algokit.io/testnet/transaction/{txId}`
33
+ * This applies to ALL transaction types: payments, transfers, opt-ins, app calls, atomic groups, Haystack swaps, Alpha Arcade trades, and x402 payments.
34
+
29
35
  ### Documentation
30
36
  * Use `get_knowledge_doc` MCP tool for Algorand developer documentation (categories: arcs, sdks, algokit, algokit-utils, tealscript, puya, liquid-auth, python, developers, clis, nodes, details).
31
37
 
@@ -84,6 +84,17 @@ Shareable QR: [link URL]
84
84
  - **URI string** — for wallet deep links
85
85
  - **Shareable link** — renders nicely in-app as a clickable QR image
86
86
 
87
+ ## Post-Transaction: Deliver Transaction ID
88
+
89
+ **ALWAYS** present the transaction ID to the user after any successful transaction. Use the correct explorer link:
90
+
91
+ | Network | Explorer Link Template |
92
+ |---------|----------------------|
93
+ | `mainnet` | `https://allo.info/tx/{txId}` |
94
+ | `testnet` | `https://lora.algokit.io/testnet/transaction/{txId}` |
95
+
96
+ This applies to ALL operations that yield a transaction ID: payments, asset transfers, opt-ins, app calls, atomic groups, Haystack Router swaps, Alpha Arcade trades, and x402 payments.
97
+
87
98
  ## Key things to remember
88
99
 
89
100
  - Always check wallet with `wallet_get_info` before blockchain operations
@@ -2,7 +2,7 @@
2
2
  "id": "openclaw-algorand-plugin",
3
3
  "name": "Algorand Integration",
4
4
  "description": "Algorand blockchain integration with MCP and skills — by GoPlausible",
5
- "version": "1.9.4",
5
+ "version": "1.9.5",
6
6
  "skills": [
7
7
  "skills/algorand-development",
8
8
  "skills/algorand-typescript",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goplausible/openclaw-algorand-plugin",
3
- "version": "1.9.4",
3
+ "version": "1.9.5",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -110,7 +110,26 @@ Always check asset's `decimals` field with `api_algod_get_asset_by_id` before co
110
110
  | 3 | `make_*_txn` | Build the transaction |
111
111
  | 4 | `wallet_sign_transaction` | Sign with active wallet account (enforces limits) |
112
112
  | 5 | `send_raw_transaction` | Submit signed transaction to network |
113
- | 6 | Query tools | Verify result on-chain |
113
+ | 6 | **Present txID** | Show transaction ID with explorer link (see below) |
114
+
115
+ ### Post-Transaction: Deliver Transaction ID
116
+
117
+ **ALWAYS** present the transaction ID to the user after any successful transaction submission. Use the correct explorer link based on the network:
118
+
119
+ | Network | Explorer Link Template |
120
+ |---------|----------------------|
121
+ | `mainnet` | `https://allo.info/tx/{txId}` |
122
+ | `testnet` | `https://lora.algokit.io/testnet/transaction/{txId}` |
123
+
124
+ Example output after a testnet transaction:
125
+ > Transaction confirmed! `TXID123...`
126
+ > View on explorer: https://lora.algokit.io/testnet/transaction/TXID123...
127
+
128
+ Example output after a mainnet transaction:
129
+ > Transaction confirmed! `TXID456...`
130
+ > View on explorer: https://allo.info/tx/TXID456...
131
+
132
+ This applies to ALL transaction types: payments, asset transfers, opt-ins, app calls, atomic groups, and any other operation that yields a transaction ID.
114
133
 
115
134
  ### One-Step Asset Opt-In
116
135
 
@@ -128,6 +147,7 @@ When the user provides their own secret key (not using the wallet):
128
147
  | 1 | `make_*_txn` | Build the transaction |
129
148
  | 2 | `sign_transaction` | Sign with provided secret key hex |
130
149
  | 3 | `send_raw_transaction` | Submit signed transaction |
150
+ | 4 | **Present txID** | Show transaction ID with explorer link |
131
151
 
132
152
  ## Atomic Group Transaction Workflow
133
153
 
@@ -139,6 +159,7 @@ For atomic (all-or-nothing) multi-transaction groups:
139
159
  | 2 | `assign_group_id` | Assign group ID to all transactions |
140
160
  | 3 | `wallet_sign_transaction_group` | Sign all transactions in group with wallet |
141
161
  | 4 | `send_raw_transaction` | Submit all signed transactions |
162
+ | 5 | **Present txIDs** | Show all transaction IDs with explorer links |
142
163
 
143
164
  ## Tool Categories
144
165
 
@@ -79,10 +79,21 @@ send_raw_transaction {
79
79
  }
80
80
  ```
81
81
 
82
- ### Step 5: Verify (optional)
82
+ ### Step 5: Present transaction ID to user
83
+
84
+ **ALWAYS** show the transaction ID with the correct explorer link:
85
+
86
+ - **Mainnet**: `https://allo.info/tx/{txId}`
87
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
88
+
89
+ Example (testnet):
90
+ > Transaction confirmed! `[txID_from_step_4]`
91
+ > View on explorer: https://lora.algokit.io/testnet/transaction/[txID_from_step_4]
92
+
93
+ Optionally verify on-chain:
83
94
  ```
84
95
  api_indexer_lookup_transaction_by_id {
85
- "txId": "[txID_from_step_3]",
96
+ "txId": "[txID_from_step_4]",
86
97
  "network": "testnet"
87
98
  }
88
99
  ```
@@ -100,7 +111,7 @@ wallet_optin_asset {
100
111
  }
101
112
  ```
102
113
 
103
- This creates, signs, and submits the opt-in transaction in a single call.
114
+ This creates, signs, and submits the opt-in transaction in a single call. Present the returned txID with explorer link.
104
115
 
105
116
  ---
106
117
 
@@ -142,6 +153,12 @@ send_raw_transaction {
142
153
  }
143
154
  ```
144
155
 
156
+ ### Step 5: Present transaction ID to user
157
+
158
+ Show the txID with explorer link:
159
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
160
+ - **Mainnet**: `https://allo.info/tx/{txId}`
161
+
145
162
  ---
146
163
 
147
164
  ## Asset Transfer Workflow (USDC Example)
@@ -204,6 +221,12 @@ send_raw_transaction {
204
221
  }
205
222
  ```
206
223
 
224
+ ### Step 8: Present transaction ID to user
225
+
226
+ Show the txID with explorer link:
227
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
228
+ - **Mainnet**: `https://allo.info/tx/{txId}`
229
+
207
230
  ---
208
231
 
209
232
  ## Atomic Group Transaction Workflow
@@ -252,6 +275,12 @@ send_raw_transaction {
252
275
 
253
276
  > Atomic groups are all-or-nothing: either all transactions succeed or none do.
254
277
 
278
+ ### Step 5: Present transaction IDs to user
279
+
280
+ Show all txIDs from the group with explorer links:
281
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
282
+ - **Mainnet**: `https://allo.info/tx/{txId}`
283
+
255
284
  ---
256
285
 
257
286
  ## Create an ASA (Algorand Standard Asset)
@@ -299,6 +328,12 @@ api_algod_get_pending_transaction {
299
328
  ```
300
329
  > The `asset-index` field in the response contains the new ASA ID.
301
330
 
331
+ ### Step 5: Present transaction ID to user
332
+
333
+ Show the txID with explorer link:
334
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
335
+ - **Mainnet**: `https://allo.info/tx/{txId}`
336
+
302
337
  ---
303
338
 
304
339
  ## Deploy a Smart Contract
@@ -347,6 +382,12 @@ send_raw_transaction {
347
382
  }
348
383
  ```
349
384
 
385
+ ### Step 5: Present transaction ID to user
386
+
387
+ Show the txID with explorer link:
388
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
389
+ - **Mainnet**: `https://allo.info/tx/{txId}`
390
+
350
391
  ---
351
392
 
352
393
  ## NFD Lookup
@@ -592,6 +633,12 @@ send_raw_transaction {
592
633
  }
593
634
  ```
594
635
 
636
+ ### Step 4: Present transaction ID to user
637
+
638
+ Show the txID with explorer link:
639
+ - **Testnet**: `https://lora.algokit.io/testnet/transaction/{txId}`
640
+ - **Mainnet**: `https://allo.info/tx/{txId}`
641
+
595
642
  ---
596
643
 
597
644
  ## Top-Up QR Code (Insufficient Funds)
@@ -138,6 +138,7 @@ If a trade fails with an "overspend" error, the wallet lacks sufficient ALGO or
138
138
  2. `get_orderbook` — check available liquidity
139
139
  3. `create_market_order` (auto-matches) or `create_limit_order` (rests on book)
140
140
  4. Save the returned `escrowAppId` — you need it to cancel
141
+ 5. **Present txID** — show transaction ID with explorer link (see Post-Transaction below)
141
142
 
142
143
  ### Checking your portfolio
143
144
  1. `get_positions` — see all YES/NO token balances with market titles and asset IDs
@@ -151,15 +152,29 @@ If a trade fails with an "overspend" error, the wallet lacks sufficient ALGO or
151
152
  ### Cancelling an order
152
153
  1. `get_open_orders` — find the `escrowAppId` and `owner` address
153
154
  2. `cancel_order` with `marketAppId`, `escrowAppId`, and `orderOwner`
155
+ 3. **Present txID** — show transaction ID with explorer link
154
156
 
155
157
  ### Claiming from a resolved market
156
158
  1. `get_positions` — find markets with token balances; note the `yesAssetId` or `noAssetId`
157
159
  2. `claim` with `marketAppId` and the winning token's `assetId`
160
+ 3. **Present txID** — show transaction ID with explorer link
158
161
 
159
162
  ### Providing liquidity (split/merge)
160
163
  1. `split_shares` — convert USDC into equal YES + NO tokens
161
164
  2. Place limit orders on both sides of the book for market making
162
165
  3. `merge_shares` — convert matched YES + NO tokens back to USDC
166
+ 4. **Present txIDs** — show transaction IDs with explorer links for each operation
167
+
168
+ ## Post-Transaction: Deliver Transaction ID
169
+
170
+ **ALWAYS** present the transaction ID to the user after any successful trading operation (orders, cancellations, amendments, claims, splits, merges). Use the correct explorer link based on the network:
171
+
172
+ | Network | Explorer Link Template |
173
+ |---------|----------------------|
174
+ | `mainnet` | `https://allo.info/tx/{txId}` |
175
+ | `testnet` | `https://lora.algokit.io/testnet/transaction/{txId}` |
176
+
177
+ This applies to all Alpha Arcade trading tools: `create_market_order`, `create_limit_order`, `cancel_order`, `amend_order`, `propose_match`, `split_shares`, `merge_shares`, and `claim`.
163
178
 
164
179
  ## Common Pitfalls
165
180
 
@@ -76,6 +76,10 @@ All-in-one swap: quote → sign (via wallet) → submit → confirm. Uses the ac
76
76
 
77
77
  Returns: status, confirmedRound, txIds, signer, nickname, quote details,
78
78
  summary (inputAmount, outputAmount, totalFees, transactionCount)
79
+
80
+ ALWAYS present txIds to user with explorer links after execution:
81
+ Mainnet: https://allo.info/tx/{txId}
82
+ Testnet: https://lora.algokit.io/testnet/transaction/{txId}
79
83
  ```
80
84
 
81
85
  ### `api_haystack_needs_optin`
@@ -109,6 +113,11 @@ Step 3: Preview quote (recommended — show user before executing)
109
113
  Step 4: User confirms → Execute
110
114
  → api_haystack_execute_swap { fromASAID, toASAID, amount, slippage, network }
111
115
  → Returns confirmed result with summary
116
+
117
+ Step 5: Present transaction IDs to user
118
+ → Show all txIds from the response with explorer links:
119
+ Mainnet: https://allo.info/tx/{txId}
120
+ Testnet: https://lora.algokit.io/testnet/transaction/{txId}
112
121
  ```
113
122
 
114
123
  **Key rules:**