@goplausible/openclaw-algorand-plugin 1.8.0 → 1.8.1
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/algorand-plugin.md +48 -10
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skills/algorand-interaction/SKILL.md +28 -3
- package/skills/algorand-interaction/references/algorand-mcp.md +25 -5
- package/skills/algorand-interaction/references/examples-algorand-mcp.md +3 -3
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# Algorand Plugin Guide
|
|
2
2
|
|
|
3
|
-
This plugin enables
|
|
3
|
+
This plugin enables four core capabilities:
|
|
4
4
|
|
|
5
5
|
1. **Algorand Development** — Smart contracts, typed clients, React frontends via AlgoKit CLI and skills
|
|
6
|
-
2. **Blockchain Interaction** — Algorand MCP server (107 tools) via mcporter
|
|
6
|
+
2. **Blockchain Interaction** — Algorand MCP server (107 tools) via mcporter (includes Pera asset verification)
|
|
7
7
|
3. **x402 Payment Protocol** — HTTP-native payments with Algorand as first-class chain
|
|
8
|
+
4. **Haystack Router** — DEX aggregator/smart order routing on Algorand (Tinyman V2, Pact, Folks)
|
|
9
|
+
5. **Alpha Arcade** — On-chain prediction markets on Algorand (USDC-denominated, binary/multi-choice)
|
|
8
10
|
|
|
9
11
|
## Skill Routing
|
|
10
12
|
|
|
@@ -16,6 +18,10 @@ This plugin enables three core capabilities:
|
|
|
16
18
|
| Interaction | Blockchain interaction via MCP | `algorand-interaction` |
|
|
17
19
|
| x402 | TypeScript x402 development | `algorand-x402-typescript` |
|
|
18
20
|
| x402 | Python x402 development | `algorand-x402-python` |
|
|
21
|
+
| x402 | Runtime x402 payment (Claude as client) | `algorand-x402-payment` |
|
|
22
|
+
| Haystack | Build swap apps with SDK | `haystack-router-development` |
|
|
23
|
+
| Haystack | Execute swaps via MCP tools | `haystack-router-interaction` |
|
|
24
|
+
| Alpha Arcade | Prediction markets via MCP tools | `alpha-arcade-interaction` |
|
|
19
25
|
|
|
20
26
|
## Using Algorand MCP Tools
|
|
21
27
|
|
|
@@ -31,7 +37,7 @@ mcporter call algorand-mcp.get_account_info address=XXXXX network=testnet
|
|
|
31
37
|
mcporter call algorand-mcp.search_assets name=USDC network=mainnet
|
|
32
38
|
```
|
|
33
39
|
|
|
34
|
-
## MCP Tool Categories (
|
|
40
|
+
## MCP Tool Categories (107 tools)
|
|
35
41
|
|
|
36
42
|
- **Wallet** (10) — `wallet_add_account`, `wallet_remove_account`, `wallet_list_accounts`, `wallet_switch_account`, `wallet_get_info`, `wallet_get_assets`, `wallet_sign_transaction`, `wallet_sign_transaction_group`, `wallet_sign_data`, `wallet_optin_asset`
|
|
37
43
|
- **Account Management** (8) — `create_account`, `rekey_account`, `mnemonic_to_mdk`, `mdk_to_mnemonic`, `secret_key_to_mnemonic`, `mnemonic_to_secret_key`, `seed_from_mnemonic`, `mnemonic_from_seed`
|
|
@@ -42,9 +48,37 @@ mcporter call algorand-mcp.search_assets name=USDC network=mainnet
|
|
|
42
48
|
- **Indexer API** (17) — `api_indexer_lookup_account_by_id`, `api_indexer_lookup_account_assets`, `api_indexer_lookup_account_app_local_states`, `api_indexer_lookup_account_created_applications`, `api_indexer_search_for_accounts`, `api_indexer_lookup_applications`, `api_indexer_lookup_application_logs`, `api_indexer_search_for_applications`, `api_indexer_lookup_application_box`, `api_indexer_lookup_application_boxes`, `api_indexer_lookup_asset_by_id`, `api_indexer_lookup_asset_balances`, `api_indexer_lookup_asset_transactions`, `api_indexer_search_for_assets`, `api_indexer_lookup_transaction_by_id`, `api_indexer_lookup_account_transactions`, `api_indexer_search_for_transactions`
|
|
43
49
|
- **NFDomains** (6) — `api_nfd_get_nfd`, `api_nfd_get_nfds_for_addresses`, `api_nfd_get_nfd_activity`, `api_nfd_get_nfd_analytics`, `api_nfd_browse_nfds`, `api_nfd_search_nfds`
|
|
44
50
|
- **Tinyman AMM** (9) — `api_tinyman_get_pool`, `api_tinyman_get_pool_analytics`, `api_tinyman_get_pool_creation_quote`, `api_tinyman_get_liquidity_quote`, `api_tinyman_get_remove_liquidity_quote`, `api_tinyman_get_swap_quote`, `api_tinyman_get_asset_optin_quote`, `api_tinyman_get_validator_optin_quote`, `api_tinyman_get_validator_optout_quote`
|
|
45
|
-
- **
|
|
51
|
+
- **Haystack Router** (3) — `api_haystack_get_swap_quote`, `api_haystack_execute_swap`, `api_haystack_needs_optin`
|
|
52
|
+
- **Pera Asset Verification** (3) — `api_pera_asset_verification_status`, `api_pera_verified_asset_details`, `api_pera_verified_asset_search`
|
|
53
|
+
- **Alpha Arcade** (15) — Read: `alpha_get_live_markets`, `alpha_get_reward_markets`, `alpha_get_market`, `alpha_get_orderbook`, `alpha_get_open_orders`, `alpha_get_positions`. Trade: `alpha_create_limit_order`, `alpha_create_market_order`, `alpha_cancel_order`, `alpha_amend_order`, `alpha_propose_match`, `alpha_split_shares`, `alpha_merge_shares`, `alpha_claim`
|
|
54
|
+
- **ARC-26 URI** (1) — `generate_algorand_qrcode`
|
|
46
55
|
- **Knowledge** (1) — `get_knowledge_doc` (categories: `arcs`, `sdks`, `algokit`, `algokit-utils`, `tealscript`, `puya`, `liquid-auth`, `python`, `developers`, `clis`, `nodes`, `details`)
|
|
47
56
|
|
|
57
|
+
## QR Code Display (ARC-26 URI)
|
|
58
|
+
|
|
59
|
+
When generating QR codes with `generate_algorand_qrcode`, the tool returns:
|
|
60
|
+
- UTF-8 text QR code (terminal-friendly)
|
|
61
|
+
- PNG image as base64 (web-friendly)
|
|
62
|
+
- URI string
|
|
63
|
+
|
|
64
|
+
**Important:** MCP tool output may not render properly through mcporter → exec pipeline.
|
|
65
|
+
After calling the tool, **extract and paste the QR code directly in your response**:
|
|
66
|
+
|
|
67
|
+
1. Call the tool and capture output
|
|
68
|
+
2. Extract the UTF-8 QR block (Unicode block characters)
|
|
69
|
+
3. Extract the base64 PNG data
|
|
70
|
+
4. Include both in your reply:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
[paste UTF-8 QR here]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+

|
|
77
|
+
|
|
78
|
+
URI: `algorand://ADDRESS?amount=X&asset=Y`
|
|
79
|
+
|
|
80
|
+
This ensures the QR renders correctly in both terminal and web interfaces.
|
|
81
|
+
|
|
48
82
|
## Key things to remember
|
|
49
83
|
|
|
50
84
|
- Always check wallet with `wallet_get_info` before blockchain operations
|
|
@@ -70,6 +104,7 @@ mcporter call algorand-mcp.search_assets name=USDC network=mainnet
|
|
|
70
104
|
- **NEVER use PyTEAL or Beaker** — these are legacy. Use Algorand TypeScript or Algorand Python.
|
|
71
105
|
- **NEVER use AlgoExplorer** — obsolete. Use Allo.info for block/account/transaction data.
|
|
72
106
|
- **NFD (.algo names)**: Always use `depositAccount` field for transactions.
|
|
107
|
+
- **Alpha Arcade prices are microunits**: `yesProb`/`noProb` range 0–1,000,000 (NOT percentages). $0.50 = 500,000. Orders require both ALGO (MBR) and USDC (collateral).
|
|
73
108
|
|
|
74
109
|
## External resources
|
|
75
110
|
|
|
@@ -81,9 +116,12 @@ mcporter call algorand-mcp.search_assets name=USDC network=mainnet
|
|
|
81
116
|
- Testnet Faucet: https://lora.algokit.io/testnet/fund
|
|
82
117
|
- Testnet USDC Faucet: https://faucet.circle.com/
|
|
83
118
|
- Algorand Developer Docs: https://dev.algorand.co/
|
|
84
|
-
- Algorand Developer Docs Github
|
|
85
|
-
- Algorand Developer Examples Github
|
|
86
|
-
- GoPlausible x402-avm Documentation and Example code
|
|
87
|
-
- GoPlausible x402-avm Examples template Projects
|
|
88
|
-
- CAIP-2 Specification
|
|
89
|
-
- Coinbase x402 Protocol
|
|
119
|
+
- Algorand Developer Docs Github: https://github.com/algorandfoundation/devportal
|
|
120
|
+
- Algorand Developer Examples Github: https://github.com/algorandfoundation/devportal-code-examples
|
|
121
|
+
- GoPlausible x402-avm Documentation and Example code: https://github.com/GoPlausible/.github/blob/main/profile/algorand-x402-documentation/README.md
|
|
122
|
+
- GoPlausible x402-avm Examples template Projects: https://github.com/GoPlausible/x402-avm/tree/branch-v2-algorand-publish/examples/
|
|
123
|
+
- CAIP-2 Specification: https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md
|
|
124
|
+
- Coinbase x402 Protocol: https://github.com/coinbase/x402
|
|
125
|
+
- Haystack Router: https://github.com/TxnLab/haystack-router
|
|
126
|
+
- Alpha Arcade: https://alphaarcade.com
|
|
127
|
+
- Alpha Arcade API: https://platform.alphaarcade.com
|
package/openclaw.plugin.json
CHANGED
|
@@ -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.8.
|
|
5
|
+
"version": "1.8.1",
|
|
6
6
|
"skills": [
|
|
7
7
|
"skills/algorand-development",
|
|
8
8
|
"skills/algorand-typescript",
|
package/package.json
CHANGED
|
@@ -43,8 +43,8 @@ Key points:
|
|
|
43
43
|
|
|
44
44
|
1. **Check wallet**: `wallet_get_info` with target `network` — verify an account exists and is active
|
|
45
45
|
2. **If no accounts**: Guide user to create one with `wallet_add_account` (sets nickname and spending limits)
|
|
46
|
-
3. **If needs funding**: Generate ARC-26 QR with `
|
|
47
|
-
4. **If needs USDC funding**: Generate ARC-26 QR with `
|
|
46
|
+
3. **If needs funding**: Generate ARC-26 QR with `generate_algorand_qrcode` or direct to testnet faucet: https://lora.algokit.io/testnet/fund
|
|
47
|
+
4. **If needs USDC funding**: Generate ARC-26 QR with `generate_algorand_qrcode` or direct to testnet faucet: https://faucet.circle.com/
|
|
48
48
|
5. **Confirm network**: Always confirm which network (`mainnet`, `testnet`, `localnet`) before transactions
|
|
49
49
|
|
|
50
50
|
## Network Selection
|
|
@@ -164,7 +164,7 @@ For atomic (all-or-nothing) multi-transaction groups:
|
|
|
164
164
|
|
|
165
165
|
**Pera Asset Verification** (3): `api_pera_asset_verification_status`, `api_pera_verified_asset_details`, `api_pera_verified_asset_search` — mainnet asset verification (verified/trusted/suspicious/unverified), detailed asset info with USD value, and search by name/keyword
|
|
166
166
|
|
|
167
|
-
**ARC-26 URI** (1): `
|
|
167
|
+
**ARC-26 URI** (1): `generate_algorand_qrcode`
|
|
168
168
|
|
|
169
169
|
**Knowledge Base** (1): `get_knowledge_doc`
|
|
170
170
|
|
|
@@ -209,6 +209,31 @@ All prices and quantities use **microunits** (1,000,000 = $1.00 or 1 share). Ord
|
|
|
209
209
|
|
|
210
210
|
> For detailed Alpha Arcade workflows (orderbook mechanics, multi-choice markets, split/merge shares, claiming, collateral model), load the `alpha-arcade-interaction` skill.
|
|
211
211
|
|
|
212
|
+
## QR Code Display (ARC-26 URI)
|
|
213
|
+
|
|
214
|
+
When generating QR codes with `generate_algorand_qrcode`, the tool returns:
|
|
215
|
+
- UTF-8 text QR code (terminal-friendly)
|
|
216
|
+
- PNG image as base64 (web-friendly)
|
|
217
|
+
- URI string
|
|
218
|
+
|
|
219
|
+
**Important:** MCP tool output may not render properly through mcporter → exec pipeline.
|
|
220
|
+
After calling the tool, **extract and paste the QR code directly in your response**:
|
|
221
|
+
|
|
222
|
+
1. Call the tool and capture output
|
|
223
|
+
2. Extract the UTF-8 QR block (Unicode block characters)
|
|
224
|
+
3. Extract the base64 PNG data
|
|
225
|
+
4. Include both in your reply:
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
[paste UTF-8 QR here]
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+

|
|
232
|
+
|
|
233
|
+
URI: `algorand://ADDRESS?amount=X&asset=Y`
|
|
234
|
+
|
|
235
|
+
This ensures the QR renders correctly in both terminal and web interfaces.
|
|
236
|
+
|
|
212
237
|
## References
|
|
213
238
|
|
|
214
239
|
For detailed tool documentation:
|
|
@@ -782,20 +782,40 @@ Mainnet asset verification via Pera Wallet API. Use to check if assets are legit
|
|
|
782
782
|
|
|
783
783
|
## ARC-26 URI Tools
|
|
784
784
|
|
|
785
|
-
###
|
|
786
|
-
- **Purpose**: Generate an Algorand payment
|
|
785
|
+
### generate_algorand_qrcode
|
|
786
|
+
- **Purpose**: Generate an Algorand top up payment or asset transferURI and QR code per ARC-26 specification
|
|
787
787
|
- **Parameters**:
|
|
788
788
|
```json
|
|
789
789
|
{
|
|
790
790
|
"address": "receiver_address",
|
|
791
791
|
"label": "Payment label",
|
|
792
792
|
"amount": 1000000,
|
|
793
|
-
"asset": 31566704,
|
|
793
|
+
"asset": 31566704,// optional, if asset transfer; omit or set to 0 for ALGO
|
|
794
794
|
"note": "Payment note",
|
|
795
|
-
"xnote": "Exclusive note"
|
|
795
|
+
"xnote": "Exclusive immutable note"
|
|
796
796
|
}
|
|
797
797
|
```
|
|
798
|
-
- **Returns**:
|
|
798
|
+
- **Returns**: UTF-8 text QR code (terminal-friendly), PNG image as base64 (web-friendly), URI string
|
|
799
|
+
|
|
800
|
+
### QR Code Display
|
|
801
|
+
|
|
802
|
+
**Important:** MCP tool output may not render properly through mcporter → exec pipeline.
|
|
803
|
+
After calling the tool, **extract and paste the QR code directly in your response**:
|
|
804
|
+
|
|
805
|
+
1. Call the tool and capture output
|
|
806
|
+
2. Extract the UTF-8 QR block (Unicode block characters)
|
|
807
|
+
3. Extract the base64 PNG data
|
|
808
|
+
4. Include both in your reply:
|
|
809
|
+
|
|
810
|
+
```
|
|
811
|
+
[paste UTF-8 QR here]
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+

|
|
815
|
+
|
|
816
|
+
URI: `algorand://ADDRESS?amount=X&asset=Y`
|
|
817
|
+
|
|
818
|
+
This ensures the QR renders correctly in both terminal and web interfaces.
|
|
799
819
|
|
|
800
820
|
---
|
|
801
821
|
|
|
@@ -23,7 +23,7 @@ wallet_add_account {
|
|
|
23
23
|
|
|
24
24
|
### Step 3: If account needs funding
|
|
25
25
|
```
|
|
26
|
-
|
|
26
|
+
generate_algorand_qrcode {
|
|
27
27
|
"address": "[wallet_address]",
|
|
28
28
|
"amount": 5000000,
|
|
29
29
|
"note": "Fund testnet account"
|
|
@@ -33,7 +33,7 @@ Or direct user to: https://lora.algokit.io/testnet/fund
|
|
|
33
33
|
|
|
34
34
|
### Step 4: If account needs USDC funding
|
|
35
35
|
```
|
|
36
|
-
|
|
36
|
+
generate_algorand_qrcode {
|
|
37
37
|
"address": "[wallet_address]",
|
|
38
38
|
"asset": 10458941, // USDC on testnet
|
|
39
39
|
"amount": 1000000, // 1 USDC with 6 decimals
|
|
@@ -599,7 +599,7 @@ send_raw_transaction {
|
|
|
599
599
|
When balance is insufficient, generate an ARC-26 QR code for easy funding:
|
|
600
600
|
|
|
601
601
|
```
|
|
602
|
-
|
|
602
|
+
generate_algorand_qrcode {
|
|
603
603
|
"address": "[wallet_address]",
|
|
604
604
|
"amount": 5000000,
|
|
605
605
|
"note": "Fund account for transaction"
|