@goplausible/openclaw-algorand-plugin 0.5.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/LICENSE +21 -0
- package/README.md +112 -0
- package/index.ts +361 -0
- package/lib/mcp-servers.ts +14 -0
- package/lib/x402-fetch.ts +213 -0
- package/memory/algorand-plugin.md +82 -0
- package/openclaw.plugin.json +30 -0
- package/package.json +41 -0
- package/setup.ts +80 -0
- package/skills/algorand-development/SKILL.md +90 -0
- package/skills/algorand-development/references/build-smart-contracts-reference.md +79 -0
- package/skills/algorand-development/references/build-smart-contracts.md +52 -0
- package/skills/algorand-development/references/create-project-reference.md +86 -0
- package/skills/algorand-development/references/create-project.md +89 -0
- package/skills/algorand-development/references/implement-arc-standards-arc32-arc56.md +396 -0
- package/skills/algorand-development/references/implement-arc-standards-arc4.md +265 -0
- package/skills/algorand-development/references/implement-arc-standards.md +92 -0
- package/skills/algorand-development/references/search-algorand-examples-reference.md +119 -0
- package/skills/algorand-development/references/search-algorand-examples.md +89 -0
- package/skills/algorand-development/references/troubleshoot-errors-contract.md +373 -0
- package/skills/algorand-development/references/troubleshoot-errors-transaction.md +599 -0
- package/skills/algorand-development/references/troubleshoot-errors.md +105 -0
- package/skills/algorand-development/references/use-algokit-cli-reference.md +228 -0
- package/skills/algorand-development/references/use-algokit-cli.md +64 -0
- package/skills/algorand-interaction/SKILL.md +223 -0
- package/skills/algorand-interaction/references/algorand-mcp.md +743 -0
- package/skills/algorand-interaction/references/examples-algorand-mcp.md +647 -0
- package/skills/algorand-python/SKILL.md +95 -0
- package/skills/algorand-python/references/build-smart-contracts-decorators.md +413 -0
- package/skills/algorand-python/references/build-smart-contracts-reference.md +55 -0
- package/skills/algorand-python/references/build-smart-contracts-storage.md +452 -0
- package/skills/algorand-python/references/build-smart-contracts-transactions.md +445 -0
- package/skills/algorand-python/references/build-smart-contracts-types.md +438 -0
- package/skills/algorand-python/references/build-smart-contracts.md +82 -0
- package/skills/algorand-python/references/create-project-reference.md +55 -0
- package/skills/algorand-python/references/create-project.md +75 -0
- package/skills/algorand-python/references/implement-arc-standards-arc32-arc56.md +101 -0
- package/skills/algorand-python/references/implement-arc-standards-arc4.md +154 -0
- package/skills/algorand-python/references/implement-arc-standards.md +39 -0
- package/skills/algorand-python/references/troubleshoot-errors-contract.md +355 -0
- package/skills/algorand-python/references/troubleshoot-errors-transaction.md +430 -0
- package/skills/algorand-python/references/troubleshoot-errors.md +46 -0
- package/skills/algorand-python/references/use-algokit-utils-reference.md +350 -0
- package/skills/algorand-python/references/use-algokit-utils.md +76 -0
- package/skills/algorand-typescript/SKILL.md +131 -0
- package/skills/algorand-typescript/references/algorand-ts-migration-from-beta.md +448 -0
- package/skills/algorand-typescript/references/algorand-ts-migration-from-tealscript.md +487 -0
- package/skills/algorand-typescript/references/algorand-ts-migration.md +102 -0
- package/skills/algorand-typescript/references/algorand-typescript-syntax-methods-and-abi.md +134 -0
- package/skills/algorand-typescript/references/algorand-typescript-syntax-reference.md +58 -0
- package/skills/algorand-typescript/references/algorand-typescript-syntax-storage.md +154 -0
- package/skills/algorand-typescript/references/algorand-typescript-syntax-transactions.md +187 -0
- package/skills/algorand-typescript/references/algorand-typescript-syntax-types-and-values.md +150 -0
- package/skills/algorand-typescript/references/algorand-typescript-syntax.md +84 -0
- package/skills/algorand-typescript/references/build-smart-contracts-reference.md +52 -0
- package/skills/algorand-typescript/references/build-smart-contracts.md +74 -0
- package/skills/algorand-typescript/references/call-smart-contracts-reference.md +237 -0
- package/skills/algorand-typescript/references/call-smart-contracts.md +183 -0
- package/skills/algorand-typescript/references/create-project-reference.md +53 -0
- package/skills/algorand-typescript/references/create-project.md +86 -0
- package/skills/algorand-typescript/references/deploy-react-frontend-examples.md +527 -0
- package/skills/algorand-typescript/references/deploy-react-frontend-reference.md +412 -0
- package/skills/algorand-typescript/references/deploy-react-frontend.md +239 -0
- package/skills/algorand-typescript/references/implement-arc-standards-arc32-arc56.md +73 -0
- package/skills/algorand-typescript/references/implement-arc-standards-arc4.md +126 -0
- package/skills/algorand-typescript/references/implement-arc-standards.md +44 -0
- package/skills/algorand-typescript/references/test-smart-contracts-examples.md +245 -0
- package/skills/algorand-typescript/references/test-smart-contracts-unit-tests.md +147 -0
- package/skills/algorand-typescript/references/test-smart-contracts.md +127 -0
- package/skills/algorand-typescript/references/troubleshoot-errors-contract.md +296 -0
- package/skills/algorand-typescript/references/troubleshoot-errors-transaction.md +438 -0
- package/skills/algorand-typescript/references/troubleshoot-errors.md +56 -0
- package/skills/algorand-typescript/references/use-algokit-utils-reference.md +342 -0
- package/skills/algorand-typescript/references/use-algokit-utils.md +74 -0
- package/skills/algorand-x402-python/SKILL.md +113 -0
- package/skills/algorand-x402-python/references/create-python-x402-client-examples.md +469 -0
- package/skills/algorand-x402-python/references/create-python-x402-client-reference.md +313 -0
- package/skills/algorand-x402-python/references/create-python-x402-client.md +207 -0
- package/skills/algorand-x402-python/references/create-python-x402-facilitator-examples.md +924 -0
- package/skills/algorand-x402-python/references/create-python-x402-facilitator-reference.md +629 -0
- package/skills/algorand-x402-python/references/create-python-x402-facilitator.md +408 -0
- package/skills/algorand-x402-python/references/create-python-x402-server-examples.md +703 -0
- package/skills/algorand-x402-python/references/create-python-x402-server-reference.md +303 -0
- package/skills/algorand-x402-python/references/create-python-x402-server.md +221 -0
- package/skills/algorand-x402-python/references/explain-algorand-x402-python-examples.md +605 -0
- package/skills/algorand-x402-python/references/explain-algorand-x402-python-reference.md +315 -0
- package/skills/algorand-x402-python/references/explain-algorand-x402-python.md +167 -0
- package/skills/algorand-x402-python/references/use-python-x402-core-avm-examples.md +554 -0
- package/skills/algorand-x402-python/references/use-python-x402-core-avm-reference.md +278 -0
- package/skills/algorand-x402-python/references/use-python-x402-core-avm.md +166 -0
- package/skills/algorand-x402-typescript/SKILL.md +129 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-client-examples.md +879 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-client-reference.md +371 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-client.md +236 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-facilitator-examples.md +875 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-facilitator-reference.md +461 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-facilitator.md +270 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-nextjs-examples.md +1181 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-nextjs-reference.md +360 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-nextjs.md +251 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-paywall-examples.md +870 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-paywall-reference.md +323 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-paywall.md +281 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-server-examples.md +1135 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-server-reference.md +382 -0
- package/skills/algorand-x402-typescript/references/create-typescript-x402-server.md +216 -0
- package/skills/algorand-x402-typescript/references/explain-algorand-x402-typescript-examples.md +616 -0
- package/skills/algorand-x402-typescript/references/explain-algorand-x402-typescript-reference.md +323 -0
- package/skills/algorand-x402-typescript/references/explain-algorand-x402-typescript.md +232 -0
- package/skills/algorand-x402-typescript/references/use-typescript-x402-core-avm-examples.md +1417 -0
- package/skills/algorand-x402-typescript/references/use-typescript-x402-core-avm-reference.md +504 -0
- package/skills/algorand-x402-typescript/references/use-typescript-x402-core-avm.md +158 -0
|
@@ -0,0 +1,743 @@
|
|
|
1
|
+
# Algorand MCP — Tool Reference
|
|
2
|
+
|
|
3
|
+
> **Signing**: Use `wallet_*` tools (recommended) or provide a secret key to `sign_transaction`
|
|
4
|
+
> **Networks**: `mainnet`, `testnet`, `localnet`
|
|
5
|
+
|
|
6
|
+
## Table of Contents
|
|
7
|
+
|
|
8
|
+
1. [Wallet Management Tools](#wallet-management-tools)
|
|
9
|
+
2. [Account Management Tools](#account-management-tools)
|
|
10
|
+
3. [Utility Tools](#utility-tools)
|
|
11
|
+
4. [Transaction Building Tools](#transaction-building-tools)
|
|
12
|
+
5. [Algod Tools](#algod-tools)
|
|
13
|
+
6. [Algod API Tools](#algod-api-tools)
|
|
14
|
+
7. [Indexer API Tools](#indexer-api-tools)
|
|
15
|
+
8. [NFDomains API Tools](#nfdomains-api-tools)
|
|
16
|
+
9. [Tinyman DEX API Tools](#tinyman-dex-api-tools)
|
|
17
|
+
10. [ARC-26 URI Tools](#arc-26-uri-tools)
|
|
18
|
+
11. [Knowledge Base Tools](#knowledge-base-tools)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Wallet Management Tools
|
|
23
|
+
|
|
24
|
+
Secure wallet management. Private keys are never available to you — use these tools to sign.
|
|
25
|
+
|
|
26
|
+
### wallet_add_account
|
|
27
|
+
- **Purpose**: Create a new Algorand account (or import from mnemonic) with nickname and spending limits
|
|
28
|
+
- **Parameters**:
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"nickname": "my-account",
|
|
32
|
+
"mnemonic": "optional 25-word mnemonic to import",
|
|
33
|
+
"allowance": 5000000,
|
|
34
|
+
"dailyAllowance": 10000000
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
- **Returns**: `{ address, publicKey, nickname }` — mnemonic is NEVER returned
|
|
38
|
+
|
|
39
|
+
### wallet_remove_account
|
|
40
|
+
- **Purpose**: Remove an account from the wallet by nickname or index
|
|
41
|
+
- **Parameters**: `{ "nickname": "my-account" }` or `{ "index": 0 }`
|
|
42
|
+
|
|
43
|
+
### wallet_list_accounts
|
|
44
|
+
- **Purpose**: List all wallet accounts with nicknames, addresses, and spending limits
|
|
45
|
+
- **Parameters**: `{}`
|
|
46
|
+
|
|
47
|
+
### wallet_switch_account
|
|
48
|
+
- **Purpose**: Switch the active wallet account by nickname or index
|
|
49
|
+
- **Parameters**: `{ "nickname": "my-account" }` or `{ "index": 0 }`
|
|
50
|
+
|
|
51
|
+
### wallet_get_info
|
|
52
|
+
- **Purpose**: Get active wallet account info including address, balance, and spending limits
|
|
53
|
+
- **Parameters**: `{ "network": "testnet" }`
|
|
54
|
+
- **Use**: FIRST tool in EVERY session
|
|
55
|
+
|
|
56
|
+
### wallet_get_assets
|
|
57
|
+
- **Purpose**: Get all asset holdings for the active wallet account
|
|
58
|
+
- **Parameters**: `{ "network": "testnet" }`
|
|
59
|
+
|
|
60
|
+
### wallet_sign_transaction
|
|
61
|
+
- **Purpose**: Sign a single transaction with the active wallet account. Enforces spending limits.
|
|
62
|
+
- **Parameters**:
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"transaction": { "...transaction object from make_*_txn..." },
|
|
66
|
+
"network": "testnet"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### wallet_sign_transaction_group
|
|
71
|
+
- **Purpose**: Sign a group of transactions. Assigns group ID automatically and enforces spending limits.
|
|
72
|
+
- **Parameters**:
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"transactions": [ "...array of transaction objects..." ],
|
|
76
|
+
"network": "testnet"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### wallet_sign_data
|
|
81
|
+
- **Purpose**: Sign arbitrary hex data with raw Ed25519 (no Algorand SDK prefix)
|
|
82
|
+
- **Parameters**: `{ "data": "48656c6c6f" }`
|
|
83
|
+
- **Returns**: `{ signature, publicKey, dataLength }`
|
|
84
|
+
|
|
85
|
+
### wallet_optin_asset
|
|
86
|
+
- **Purpose**: One-step asset opt-in — creates, signs, and submits the transaction
|
|
87
|
+
- **Parameters**: `{ "assetId": 31566704, "network": "testnet" }`
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Account Management Tools
|
|
92
|
+
|
|
93
|
+
Key derivation and account creation. Prefer `wallet_add_account` for secure storage.
|
|
94
|
+
|
|
95
|
+
### create_account
|
|
96
|
+
- **Purpose**: Create a new Algorand account (returns address, secretKey, mnemonic)
|
|
97
|
+
- **Parameters**: `{}`
|
|
98
|
+
- **⚠️ Warning**: Secret key returned in response — never log or display it. Use `wallet_add_account` instead when possible.
|
|
99
|
+
|
|
100
|
+
### rekey_account
|
|
101
|
+
- **Purpose**: Rekey an Algorand account to a new address
|
|
102
|
+
- **Parameters**: `{ "sourceAddress": "...", "targetAddress": "..." }`
|
|
103
|
+
|
|
104
|
+
### mnemonic_to_mdk
|
|
105
|
+
- **Purpose**: Convert mnemonic to master derivation key
|
|
106
|
+
- **Parameters**: `{ "mnemonic": "25-word mnemonic" }`
|
|
107
|
+
|
|
108
|
+
### mdk_to_mnemonic
|
|
109
|
+
- **Purpose**: Convert master derivation key to mnemonic
|
|
110
|
+
- **Parameters**: `{ "mdk": "hex string" }`
|
|
111
|
+
|
|
112
|
+
### secret_key_to_mnemonic
|
|
113
|
+
- **Purpose**: Convert secret key to mnemonic
|
|
114
|
+
- **Parameters**: `{ "secretKey": "hex string" }`
|
|
115
|
+
|
|
116
|
+
### mnemonic_to_secret_key
|
|
117
|
+
- **Purpose**: Convert mnemonic to secret key
|
|
118
|
+
- **Parameters**: `{ "mnemonic": "25-word mnemonic" }`
|
|
119
|
+
|
|
120
|
+
### seed_from_mnemonic
|
|
121
|
+
- **Purpose**: Generate seed from mnemonic
|
|
122
|
+
- **Parameters**: `{ "mnemonic": "25-word mnemonic" }`
|
|
123
|
+
|
|
124
|
+
### mnemonic_from_seed
|
|
125
|
+
- **Purpose**: Generate mnemonic from seed
|
|
126
|
+
- **Parameters**: `{ "seed": "hex string" }`
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Utility Tools
|
|
131
|
+
|
|
132
|
+
Address validation, encoding, signing, and server health.
|
|
133
|
+
|
|
134
|
+
### ping
|
|
135
|
+
- **Purpose**: Verify server connectivity
|
|
136
|
+
- **Parameters**: `{}`
|
|
137
|
+
|
|
138
|
+
### validate_address
|
|
139
|
+
- **Purpose**: Check if an Algorand address is valid
|
|
140
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS" }`
|
|
141
|
+
|
|
142
|
+
### encode_address
|
|
143
|
+
- **Purpose**: Encode a public key to an Algorand address
|
|
144
|
+
- **Parameters**: `{ "publicKey": "hex string" }`
|
|
145
|
+
|
|
146
|
+
### decode_address
|
|
147
|
+
- **Purpose**: Decode an Algorand address to a public key
|
|
148
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS" }`
|
|
149
|
+
|
|
150
|
+
### get_application_address
|
|
151
|
+
- **Purpose**: Get the address for a given application ID
|
|
152
|
+
- **Parameters**: `{ "appId": 123456 }`
|
|
153
|
+
|
|
154
|
+
### bytes_to_bigint
|
|
155
|
+
- **Purpose**: Convert bytes to BigInt
|
|
156
|
+
- **Parameters**: `{ "bytes": "hex string" }`
|
|
157
|
+
|
|
158
|
+
### bigint_to_bytes
|
|
159
|
+
- **Purpose**: Convert BigInt to bytes
|
|
160
|
+
- **Parameters**: `{ "value": "12345", "size": 8 }`
|
|
161
|
+
|
|
162
|
+
### encode_uint64
|
|
163
|
+
- **Purpose**: Encode uint64 to bytes
|
|
164
|
+
- **Parameters**: `{ "value": "12345" }`
|
|
165
|
+
|
|
166
|
+
### decode_uint64
|
|
167
|
+
- **Purpose**: Decode bytes to uint64
|
|
168
|
+
- **Parameters**: `{ "bytes": "hex string" }`
|
|
169
|
+
|
|
170
|
+
### verify_bytes
|
|
171
|
+
- **Purpose**: Verify a signature against bytes with an Algorand address
|
|
172
|
+
- **Parameters**: `{ "bytes": "hex", "signature": "base64", "address": "ALGO_ADDRESS" }`
|
|
173
|
+
- **Returns**: `{ verified: boolean }`
|
|
174
|
+
|
|
175
|
+
### sign_bytes
|
|
176
|
+
- **Purpose**: Sign bytes with a secret key
|
|
177
|
+
- **Parameters**: `{ "bytes": "hex", "sk": "hex" }`
|
|
178
|
+
|
|
179
|
+
### encode_obj
|
|
180
|
+
- **Purpose**: Encode object to msgpack format
|
|
181
|
+
- **Parameters**: `{ "obj": { "key": "value" } }`
|
|
182
|
+
|
|
183
|
+
### decode_obj
|
|
184
|
+
- **Purpose**: Decode msgpack bytes to object
|
|
185
|
+
- **Parameters**: `{ "bytes": "base64 string" }`
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Transaction Building Tools
|
|
190
|
+
|
|
191
|
+
Build unsigned transaction objects. Must be signed before submission.
|
|
192
|
+
|
|
193
|
+
### make_payment_txn
|
|
194
|
+
- **Purpose**: Create an ALGO payment transaction
|
|
195
|
+
- **Parameters**:
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"from": "sender_address",
|
|
199
|
+
"to": "receiver_address",
|
|
200
|
+
"amount": 1000000,
|
|
201
|
+
"note": "optional note",
|
|
202
|
+
"fee": 1000,
|
|
203
|
+
"flatFee": false,
|
|
204
|
+
"closeRemainderTo": "optional",
|
|
205
|
+
"rekeyTo": "optional",
|
|
206
|
+
"network": "testnet"
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
> Amount in microAlgos: 1 ALGO = 1,000,000
|
|
210
|
+
> `fee` (optional): transaction fee in microAlgos. Default: 1000 (minimum fee).
|
|
211
|
+
> `flatFee` (optional): if `true`, use `fee` exactly as specified; if `false` (default), SDK may adjust fee based on transaction size.
|
|
212
|
+
|
|
213
|
+
### make_keyreg_txn
|
|
214
|
+
- **Purpose**: Create a key registration transaction for consensus participation
|
|
215
|
+
- **Parameters**:
|
|
216
|
+
```json
|
|
217
|
+
{
|
|
218
|
+
"from": "address",
|
|
219
|
+
"voteKey": "base64",
|
|
220
|
+
"selectionKey": "base64",
|
|
221
|
+
"stateProofKey": "base64",
|
|
222
|
+
"voteFirst": 1000,
|
|
223
|
+
"voteLast": 2000000,
|
|
224
|
+
"voteKeyDilution": 10000,
|
|
225
|
+
"nonParticipation": false,
|
|
226
|
+
"network": "testnet"
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### make_asset_create_txn
|
|
231
|
+
- **Purpose**: Create an asset (ASA) creation transaction
|
|
232
|
+
- **Parameters**:
|
|
233
|
+
```json
|
|
234
|
+
{
|
|
235
|
+
"from": "creator_address",
|
|
236
|
+
"total": 1000000,
|
|
237
|
+
"decimals": 6,
|
|
238
|
+
"defaultFrozen": false,
|
|
239
|
+
"unitName": "TKN",
|
|
240
|
+
"assetName": "My Token",
|
|
241
|
+
"assetURL": "https://example.com",
|
|
242
|
+
"manager": "optional",
|
|
243
|
+
"reserve": "optional",
|
|
244
|
+
"freeze": "optional",
|
|
245
|
+
"clawback": "optional",
|
|
246
|
+
"network": "testnet"
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### make_asset_config_txn
|
|
251
|
+
- **Purpose**: Reconfigure an asset (change manager, reserve, freeze, clawback)
|
|
252
|
+
- **Parameters**:
|
|
253
|
+
```json
|
|
254
|
+
{
|
|
255
|
+
"from": "manager_address",
|
|
256
|
+
"assetIndex": 12345,
|
|
257
|
+
"strictEmptyAddressChecking": true,
|
|
258
|
+
"manager": "optional",
|
|
259
|
+
"reserve": "optional",
|
|
260
|
+
"freeze": "optional",
|
|
261
|
+
"clawback": "optional",
|
|
262
|
+
"network": "testnet"
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### make_asset_destroy_txn
|
|
267
|
+
- **Purpose**: Destroy an asset (all units must be held by creator)
|
|
268
|
+
- **Parameters**: `{ "from": "creator_address", "assetIndex": 12345, "network": "testnet" }`
|
|
269
|
+
|
|
270
|
+
### make_asset_freeze_txn
|
|
271
|
+
- **Purpose**: Freeze or unfreeze an asset for a specific account
|
|
272
|
+
- **Parameters**:
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"from": "freeze_address",
|
|
276
|
+
"assetIndex": 12345,
|
|
277
|
+
"freezeTarget": "target_address",
|
|
278
|
+
"freezeState": true,
|
|
279
|
+
"network": "testnet"
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### make_asset_transfer_txn
|
|
284
|
+
- **Purpose**: Transfer an ASA or opt-in (0-amount self-transfer)
|
|
285
|
+
- **Parameters**:
|
|
286
|
+
```json
|
|
287
|
+
{
|
|
288
|
+
"from": "sender_address",
|
|
289
|
+
"to": "receiver_address",
|
|
290
|
+
"assetIndex": 31566704,
|
|
291
|
+
"amount": 1000000,
|
|
292
|
+
"fee": 1000,
|
|
293
|
+
"flatFee": false,
|
|
294
|
+
"network": "testnet"
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
> `fee` (optional): transaction fee in microAlgos. Default: 1000 (minimum fee).
|
|
298
|
+
> `flatFee` (optional): if `true`, use `fee` exactly as specified; if `false` (default), SDK may adjust fee based on transaction size.
|
|
299
|
+
|
|
300
|
+
### make_app_create_txn
|
|
301
|
+
- **Purpose**: Deploy a smart contract
|
|
302
|
+
- **Parameters**:
|
|
303
|
+
```json
|
|
304
|
+
{
|
|
305
|
+
"from": "creator_address",
|
|
306
|
+
"approvalProgram": "base64 compiled TEAL",
|
|
307
|
+
"clearProgram": "base64 compiled TEAL",
|
|
308
|
+
"numGlobalByteSlices": 0,
|
|
309
|
+
"numGlobalInts": 1,
|
|
310
|
+
"numLocalByteSlices": 0,
|
|
311
|
+
"numLocalInts": 0,
|
|
312
|
+
"extraPages": 0,
|
|
313
|
+
"appArgs": ["base64 arg1"],
|
|
314
|
+
"accounts": ["address1"],
|
|
315
|
+
"foreignApps": [123],
|
|
316
|
+
"foreignAssets": [456],
|
|
317
|
+
"network": "testnet"
|
|
318
|
+
}
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### make_app_update_txn
|
|
322
|
+
- **Purpose**: Update a smart contract's approval and clear programs
|
|
323
|
+
- **Parameters**:
|
|
324
|
+
```json
|
|
325
|
+
{
|
|
326
|
+
"from": "creator_address",
|
|
327
|
+
"appIndex": 123456,
|
|
328
|
+
"approvalProgram": "base64 compiled TEAL",
|
|
329
|
+
"clearProgram": "base64 compiled TEAL",
|
|
330
|
+
"network": "testnet"
|
|
331
|
+
}
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### make_app_delete_txn
|
|
335
|
+
- **Purpose**: Delete a smart contract
|
|
336
|
+
- **Parameters**: `{ "from": "creator_address", "appIndex": 123456, "network": "testnet" }`
|
|
337
|
+
|
|
338
|
+
### make_app_optin_txn
|
|
339
|
+
- **Purpose**: Opt-in to a smart contract (allocate local state)
|
|
340
|
+
- **Parameters**: `{ "from": "user_address", "appIndex": 123456, "network": "testnet" }`
|
|
341
|
+
|
|
342
|
+
### make_app_closeout_txn
|
|
343
|
+
- **Purpose**: Close out of a smart contract (deallocate local state)
|
|
344
|
+
- **Parameters**: `{ "from": "user_address", "appIndex": 123456, "network": "testnet" }`
|
|
345
|
+
|
|
346
|
+
### make_app_clear_txn
|
|
347
|
+
- **Purpose**: Force-clear local state for a smart contract
|
|
348
|
+
- **Parameters**: `{ "from": "user_address", "appIndex": 123456, "network": "testnet" }`
|
|
349
|
+
|
|
350
|
+
### make_app_call_txn
|
|
351
|
+
- **Purpose**: Call a smart contract method (NoOp)
|
|
352
|
+
- **Parameters**:
|
|
353
|
+
```json
|
|
354
|
+
{
|
|
355
|
+
"from": "caller_address",
|
|
356
|
+
"appIndex": 123456,
|
|
357
|
+
"appArgs": ["base64 encoded args"],
|
|
358
|
+
"accounts": ["referenced addresses"],
|
|
359
|
+
"foreignApps": [789],
|
|
360
|
+
"foreignAssets": [101],
|
|
361
|
+
"network": "testnet"
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### assign_group_id
|
|
366
|
+
- **Purpose**: Assign a group ID to multiple transactions for atomic execution
|
|
367
|
+
- **Parameters**: `{ "transactions": [ txn1, txn2, ... ] }`
|
|
368
|
+
|
|
369
|
+
### sign_transaction
|
|
370
|
+
- **Purpose**: Sign a transaction with a provided secret key (not the wallet)
|
|
371
|
+
- **Parameters**:
|
|
372
|
+
```json
|
|
373
|
+
{
|
|
374
|
+
"transaction": { "...transaction object..." },
|
|
375
|
+
"sk": "hex encoded secret key"
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
- **Returns**: `{ txID, blob }`
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Algod Tools
|
|
383
|
+
|
|
384
|
+
TEAL compilation, transaction simulation, and submission.
|
|
385
|
+
|
|
386
|
+
### compile_teal
|
|
387
|
+
- **Purpose**: Compile TEAL source code to bytecode
|
|
388
|
+
- **Parameters**: `{ "source": "#pragma version 10\nint 1\nreturn", "network": "testnet" }`
|
|
389
|
+
- **Returns**: `{ result (base64 bytecode), hash }`
|
|
390
|
+
|
|
391
|
+
### disassemble_teal
|
|
392
|
+
- **Purpose**: Disassemble TEAL bytecode back to source
|
|
393
|
+
- **Parameters**: `{ "bytecode": "base64 encoded bytecode", "network": "testnet" }`
|
|
394
|
+
|
|
395
|
+
### send_raw_transaction
|
|
396
|
+
- **Purpose**: Submit signed transactions to the network
|
|
397
|
+
- **Parameters**:
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"signedTxns": ["base64 encoded signed transaction"],
|
|
401
|
+
"network": "testnet"
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### simulate_raw_transactions
|
|
406
|
+
- **Purpose**: Simulate raw transactions without submitting
|
|
407
|
+
- **Parameters**: `{ "txns": ["base64 encoded transactions"], "network": "testnet" }`
|
|
408
|
+
|
|
409
|
+
### simulate_transactions
|
|
410
|
+
- **Purpose**: Simulate transactions with detailed configuration
|
|
411
|
+
- **Parameters**:
|
|
412
|
+
```json
|
|
413
|
+
{
|
|
414
|
+
"txnGroups": [ "...transaction groups..." ],
|
|
415
|
+
"allowEmptySignatures": true,
|
|
416
|
+
"allowMoreLogging": true,
|
|
417
|
+
"allowUnnamedResources": true,
|
|
418
|
+
"network": "testnet"
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Algod API Tools
|
|
425
|
+
|
|
426
|
+
Direct algod node queries. All accept optional `network`, `itemsPerPage`, `pageToken`.
|
|
427
|
+
|
|
428
|
+
### api_algod_get_account_info
|
|
429
|
+
- **Purpose**: Get account balance, assets, auth address, and app local states
|
|
430
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
431
|
+
|
|
432
|
+
### api_algod_get_account_application_info
|
|
433
|
+
- **Purpose**: Get account-specific application local state
|
|
434
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "appId": 123456, "network": "testnet" }`
|
|
435
|
+
|
|
436
|
+
### api_algod_get_account_asset_info
|
|
437
|
+
- **Purpose**: Check if account holds a specific asset and get balance
|
|
438
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "assetId": 31566704, "network": "testnet" }`
|
|
439
|
+
|
|
440
|
+
### api_algod_get_application_by_id
|
|
441
|
+
- **Purpose**: Get application information (global state, programs)
|
|
442
|
+
- **Parameters**: `{ "appId": 123456, "network": "testnet" }`
|
|
443
|
+
|
|
444
|
+
### api_algod_get_application_box
|
|
445
|
+
- **Purpose**: Get a specific application box by name
|
|
446
|
+
- **Parameters**: `{ "appId": 123456, "boxName": "box_name", "network": "testnet" }`
|
|
447
|
+
|
|
448
|
+
### api_algod_get_application_boxes
|
|
449
|
+
- **Purpose**: Get all boxes for an application
|
|
450
|
+
- **Parameters**: `{ "appId": 123456, "maxBoxes": 100, "network": "testnet" }`
|
|
451
|
+
|
|
452
|
+
### api_algod_get_asset_by_id
|
|
453
|
+
- **Purpose**: Get asset configuration (total, decimals, unit name, manager, etc.)
|
|
454
|
+
- **Parameters**: `{ "assetId": 31566704, "network": "testnet" }`
|
|
455
|
+
|
|
456
|
+
### api_algod_get_pending_transaction
|
|
457
|
+
- **Purpose**: Get pending transaction info by ID
|
|
458
|
+
- **Parameters**: `{ "txId": "TXID", "network": "testnet" }`
|
|
459
|
+
|
|
460
|
+
### api_algod_get_pending_transactions_by_address
|
|
461
|
+
- **Purpose**: Get pending transactions for a specific address
|
|
462
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
463
|
+
|
|
464
|
+
### api_algod_get_pending_transactions
|
|
465
|
+
- **Purpose**: Get all pending transactions in the pool
|
|
466
|
+
- **Parameters**: `{ "maxTxns": 100, "network": "testnet" }`
|
|
467
|
+
|
|
468
|
+
### api_algod_get_transaction_params
|
|
469
|
+
- **Purpose**: Get suggested transaction parameters (fee, first/last valid round, genesis info)
|
|
470
|
+
- **Parameters**: `{ "network": "testnet" }`
|
|
471
|
+
|
|
472
|
+
### api_algod_get_node_status
|
|
473
|
+
- **Purpose**: Get current node status (last round, time since last round, etc.)
|
|
474
|
+
- **Parameters**: `{ "network": "testnet" }`
|
|
475
|
+
|
|
476
|
+
### api_algod_get_node_status_after_block
|
|
477
|
+
- **Purpose**: Wait for a specific round and get node status
|
|
478
|
+
- **Parameters**: `{ "round": 12345678, "network": "testnet" }`
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## Indexer API Tools
|
|
483
|
+
|
|
484
|
+
Historical blockchain queries. All accept optional `network`, `itemsPerPage`, `pageToken`.
|
|
485
|
+
|
|
486
|
+
### api_indexer_lookup_account_by_id
|
|
487
|
+
- **Purpose**: Get historical account information
|
|
488
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
489
|
+
|
|
490
|
+
### api_indexer_lookup_account_assets
|
|
491
|
+
- **Purpose**: Get all assets held by an account
|
|
492
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
493
|
+
|
|
494
|
+
### api_indexer_lookup_account_app_local_states
|
|
495
|
+
- **Purpose**: Get all application local states for an account
|
|
496
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
497
|
+
|
|
498
|
+
### api_indexer_lookup_account_created_applications
|
|
499
|
+
- **Purpose**: Get all applications created by an account
|
|
500
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
501
|
+
|
|
502
|
+
### api_indexer_search_for_accounts
|
|
503
|
+
- **Purpose**: Search for accounts with various filters
|
|
504
|
+
- **Parameters**: `{ "assetId": 31566704, "limit": 10, "network": "testnet" }`
|
|
505
|
+
|
|
506
|
+
### api_indexer_lookup_applications
|
|
507
|
+
- **Purpose**: Get application information from indexer
|
|
508
|
+
- **Parameters**: `{ "appId": 123456, "network": "testnet" }`
|
|
509
|
+
|
|
510
|
+
### api_indexer_lookup_application_logs
|
|
511
|
+
- **Purpose**: Get application log messages
|
|
512
|
+
- **Parameters**: `{ "appId": 123456, "network": "testnet" }`
|
|
513
|
+
|
|
514
|
+
### api_indexer_search_for_applications
|
|
515
|
+
- **Purpose**: Search for applications with filters
|
|
516
|
+
- **Parameters**: `{ "limit": 10, "network": "testnet" }`
|
|
517
|
+
|
|
518
|
+
### api_indexer_lookup_application_box
|
|
519
|
+
- **Purpose**: Get a specific application box from indexer
|
|
520
|
+
- **Parameters**: `{ "appId": 123456, "boxName": "box_name", "network": "testnet" }`
|
|
521
|
+
|
|
522
|
+
### api_indexer_lookup_application_boxes
|
|
523
|
+
- **Purpose**: Get all boxes for an application from indexer
|
|
524
|
+
- **Parameters**: `{ "appId": 123456, "network": "testnet" }`
|
|
525
|
+
|
|
526
|
+
### api_indexer_lookup_asset_by_id
|
|
527
|
+
- **Purpose**: Get asset information and configuration
|
|
528
|
+
- **Parameters**: `{ "assetId": 31566704, "network": "testnet" }`
|
|
529
|
+
|
|
530
|
+
### api_indexer_lookup_asset_balances
|
|
531
|
+
- **Purpose**: Get all accounts holding a specific asset
|
|
532
|
+
- **Parameters**: `{ "assetId": 31566704, "network": "testnet" }`
|
|
533
|
+
|
|
534
|
+
### api_indexer_lookup_asset_transactions
|
|
535
|
+
- **Purpose**: Get transactions involving a specific asset
|
|
536
|
+
- **Parameters**: `{ "assetId": 31566704, "network": "testnet" }`
|
|
537
|
+
|
|
538
|
+
### api_indexer_search_for_assets
|
|
539
|
+
- **Purpose**: Search for assets by name, unit, or creator
|
|
540
|
+
- **Parameters**: `{ "name": "USDC", "limit": 10, "network": "testnet" }`
|
|
541
|
+
|
|
542
|
+
### api_indexer_lookup_transaction_by_id
|
|
543
|
+
- **Purpose**: Get transaction details by ID
|
|
544
|
+
- **Parameters**: `{ "txId": "TXID", "network": "testnet" }`
|
|
545
|
+
|
|
546
|
+
### api_indexer_lookup_account_transactions
|
|
547
|
+
- **Purpose**: Get transaction history for an account
|
|
548
|
+
- **Parameters**: `{ "address": "ALGO_ADDRESS", "network": "testnet" }`
|
|
549
|
+
|
|
550
|
+
### api_indexer_search_for_transactions
|
|
551
|
+
- **Purpose**: Search for transactions with various filters
|
|
552
|
+
- **Parameters**: `{ "limit": 10, "network": "testnet" }`
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## NFDomains API Tools
|
|
557
|
+
|
|
558
|
+
Algorand Name Service (`.algo` names).
|
|
559
|
+
|
|
560
|
+
### api_nfd_get_nfd
|
|
561
|
+
- **Purpose**: Get NFD info by name or application ID
|
|
562
|
+
- **Parameters**:
|
|
563
|
+
```json
|
|
564
|
+
{
|
|
565
|
+
"nameOrID": "example.algo",
|
|
566
|
+
"view": "brief",
|
|
567
|
+
"poll": false,
|
|
568
|
+
"nocache": false,
|
|
569
|
+
"network": "mainnet"
|
|
570
|
+
}
|
|
571
|
+
```
|
|
572
|
+
- **⚠️ CRITICAL**: Use `depositAccount` for transactions, NOT other address fields!
|
|
573
|
+
|
|
574
|
+
### api_nfd_get_nfds_for_addresses
|
|
575
|
+
- **Purpose**: Get NFDs owned by specific addresses
|
|
576
|
+
- **Parameters**:
|
|
577
|
+
```json
|
|
578
|
+
{
|
|
579
|
+
"address": ["ALGO_ADDRESS_1", "ALGO_ADDRESS_2"],
|
|
580
|
+
"limit": 10,
|
|
581
|
+
"view": "brief",
|
|
582
|
+
"network": "mainnet"
|
|
583
|
+
}
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
### api_nfd_get_nfd_activity
|
|
587
|
+
- **Purpose**: Get activity/changes for NFDs
|
|
588
|
+
- **Parameters**:
|
|
589
|
+
```json
|
|
590
|
+
{
|
|
591
|
+
"name": ["example.algo"],
|
|
592
|
+
"type": "changes",
|
|
593
|
+
"limit": 10,
|
|
594
|
+
"sort": "timeDesc",
|
|
595
|
+
"network": "mainnet"
|
|
596
|
+
}
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
### api_nfd_get_nfd_analytics
|
|
600
|
+
- **Purpose**: Get analytics data for NFD sales and transfers
|
|
601
|
+
- **Parameters**:
|
|
602
|
+
```json
|
|
603
|
+
{
|
|
604
|
+
"name": "example.algo",
|
|
605
|
+
"buyer": "address",
|
|
606
|
+
"seller": "address",
|
|
607
|
+
"limit": 10,
|
|
608
|
+
"sort": "timeDesc",
|
|
609
|
+
"network": "mainnet"
|
|
610
|
+
}
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
### api_nfd_browse_nfds
|
|
614
|
+
- **Purpose**: Browse NFDs with filters (category, sale type, price range)
|
|
615
|
+
- **Parameters**:
|
|
616
|
+
```json
|
|
617
|
+
{
|
|
618
|
+
"category": ["curated"],
|
|
619
|
+
"saleType": ["buyItNow"],
|
|
620
|
+
"minPrice": 0,
|
|
621
|
+
"maxPrice": 1000000,
|
|
622
|
+
"limit": 10,
|
|
623
|
+
"sort": "priceAsc",
|
|
624
|
+
"view": "brief",
|
|
625
|
+
"network": "mainnet"
|
|
626
|
+
}
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
### api_nfd_search_nfds
|
|
630
|
+
- **Purpose**: Search NFDs by name
|
|
631
|
+
- **Parameters**:
|
|
632
|
+
```json
|
|
633
|
+
{
|
|
634
|
+
"name": "algo",
|
|
635
|
+
"limit": 10,
|
|
636
|
+
"view": "brief",
|
|
637
|
+
"network": "mainnet"
|
|
638
|
+
}
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## Tinyman DEX API Tools
|
|
644
|
+
|
|
645
|
+
Decentralized exchange operations on Tinyman AMM.
|
|
646
|
+
|
|
647
|
+
### api_tinyman_get_pool
|
|
648
|
+
- **Purpose**: Get pool information for an asset pair
|
|
649
|
+
- **Parameters**:
|
|
650
|
+
```json
|
|
651
|
+
{
|
|
652
|
+
"asset1Id": 0,
|
|
653
|
+
"asset2Id": 31566704,
|
|
654
|
+
"version": "v2",
|
|
655
|
+
"network": "mainnet"
|
|
656
|
+
}
|
|
657
|
+
```
|
|
658
|
+
> Asset ID 0 = ALGO
|
|
659
|
+
|
|
660
|
+
### api_tinyman_get_pool_analytics
|
|
661
|
+
- **Purpose**: Get pool analytics data (volume, TVL, fees)
|
|
662
|
+
- **Parameters**: `{ "asset1Id": 0, "asset2Id": 31566704, "network": "mainnet" }`
|
|
663
|
+
|
|
664
|
+
### api_tinyman_get_pool_creation_quote
|
|
665
|
+
- **Purpose**: Get a quote for creating a new liquidity pool
|
|
666
|
+
- **Parameters**: Pool creation parameters
|
|
667
|
+
|
|
668
|
+
### api_tinyman_get_liquidity_quote
|
|
669
|
+
- **Purpose**: Get a quote for adding liquidity to a pool
|
|
670
|
+
- **Parameters**: Liquidity parameters
|
|
671
|
+
|
|
672
|
+
### api_tinyman_get_remove_liquidity_quote
|
|
673
|
+
- **Purpose**: Get a quote for removing liquidity from a pool
|
|
674
|
+
- **Parameters**: Removal parameters
|
|
675
|
+
|
|
676
|
+
### api_tinyman_get_swap_quote
|
|
677
|
+
- **Purpose**: Get a swap quote (price, slippage, route)
|
|
678
|
+
- **Parameters**: Swap parameters including asset IDs and amount
|
|
679
|
+
|
|
680
|
+
### api_tinyman_get_asset_optin_quote
|
|
681
|
+
- **Purpose**: Get a quote for opting into a Tinyman asset
|
|
682
|
+
- **Parameters**: Asset opt-in parameters
|
|
683
|
+
|
|
684
|
+
### api_tinyman_get_validator_optin_quote
|
|
685
|
+
- **Purpose**: Get a quote for opting into the Tinyman validator
|
|
686
|
+
- **Parameters**: Validator opt-in parameters
|
|
687
|
+
|
|
688
|
+
### api_tinyman_get_validator_optout_quote
|
|
689
|
+
- **Purpose**: Get a quote for opting out of the Tinyman validator
|
|
690
|
+
- **Parameters**: Validator opt-out parameters
|
|
691
|
+
|
|
692
|
+
---
|
|
693
|
+
|
|
694
|
+
## ARC-26 URI Tools
|
|
695
|
+
|
|
696
|
+
### generate_algorand_uri
|
|
697
|
+
- **Purpose**: Generate an Algorand payment URI and QR code per ARC-26 specification
|
|
698
|
+
- **Parameters**:
|
|
699
|
+
```json
|
|
700
|
+
{
|
|
701
|
+
"address": "receiver_address",
|
|
702
|
+
"label": "Payment label",
|
|
703
|
+
"amount": 1000000,
|
|
704
|
+
"asset": 31566704,
|
|
705
|
+
"note": "Payment note",
|
|
706
|
+
"xnote": "Exclusive note"
|
|
707
|
+
}
|
|
708
|
+
```
|
|
709
|
+
- **Returns**: URI string + SVG QR code
|
|
710
|
+
|
|
711
|
+
---
|
|
712
|
+
|
|
713
|
+
## Knowledge Base Tools
|
|
714
|
+
|
|
715
|
+
### get_knowledge_doc
|
|
716
|
+
- **Purpose**: Get markdown content for specified knowledge documents
|
|
717
|
+
- **Parameters**: `{ "documents": ["arcs:specs:arc-0003.md"] }`
|
|
718
|
+
- **Categories**:
|
|
719
|
+
- `arcs`: Algorand Request for Comments
|
|
720
|
+
- `sdks`: Software Development Kits
|
|
721
|
+
- `algokit`: AlgoKit
|
|
722
|
+
- `algokit-utils`: AlgoKit Utils
|
|
723
|
+
- `tealscript`: TEALScript
|
|
724
|
+
- `puya`: Puya
|
|
725
|
+
- `liquid-auth`: Liquid Auth
|
|
726
|
+
- `python`: Python Development
|
|
727
|
+
- `developers`: Developer Documentation
|
|
728
|
+
- `clis`: CLI Tools
|
|
729
|
+
- `nodes`: Node Management
|
|
730
|
+
- `details`: Developer Details
|
|
731
|
+
|
|
732
|
+
---
|
|
733
|
+
|
|
734
|
+
## Error Reference
|
|
735
|
+
|
|
736
|
+
| Error | Cause | Solution |
|
|
737
|
+
|-------|-------|----------|
|
|
738
|
+
| `No active account` | No wallet account configured | Guide user to `wallet_add_account` |
|
|
739
|
+
| `Invalid Algorand address format` | Bad address | Check with `validate_address` |
|
|
740
|
+
| `Spending limit exceeded` | Transaction exceeds `allowance` or `dailyAllowance` | Inform user, adjust limits |
|
|
741
|
+
| `Asset hasn't been opted in` | Recipient not opted in to ASA | Opt-in first with `wallet_optin_asset` or `make_asset_transfer_txn` |
|
|
742
|
+
| `Overspend` / negative balance | Insufficient funds for amount + fee + MBR | Add funds or reduce amount |
|
|
743
|
+
| `Do not know how to serialize a BigInt` | BigInt in JSON response | Should not occur (patched globally) |
|