From 6af522a9c5c19cb4769709cdb88520f77e205531 Mon Sep 17 00:00:00 2001 From: clv7778 <83701037+clv7778@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:02:54 +0300 Subject: [PATCH 1/3] docs: add send_calls troubleshooting guidance --- skills/base-mcp/references/custom-plugins.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/skills/base-mcp/references/custom-plugins.md b/skills/base-mcp/references/custom-plugins.md index 930cf7e..4458763 100644 --- a/skills/base-mcp/references/custom-plugins.md +++ b/skills/base-mcp/references/custom-plugins.md @@ -14,7 +14,19 @@ Plugins differ in how they reach their backend, and each plugin's own file (`../ - Some hybrid plugins split by operation: their **view-only / read hosts** are allowlisted for `web_request` and work on every surface, while their **write or tx-builder hosts** require a CLI harness. On chat-only surfaces, do not retry a write host through `web_request` and do not fall back to user-paste — follow the plugin file, which typically links the user to the protocol's web UI instead. Custom or user-supplied plugins are almost certainly **not** in the allowlist and will be rejected by `web_request`. +## Transaction-builder call troubleshooting +Custom plugins that return calldata for `send_calls` should keep state-changing calls as small and predictable as possible. If a call fails during `send_calls` gas estimation but the same calldata appears valid in a direct simulation, treat it as a transaction-submission limitation rather than a `web_request` routing issue. + +When this happens: + +- verify the target contract, calldata, `from` address, balance, and token allowance; +- test the same calldata with `eth_call` from the same sender when possible; +- try splitting approval and execution into separate calls; +- avoid batching gas-heavy state-changing calls unless the plugin has already tested the flow end-to-end; +- if the call still cannot be estimated, direct the user to the protocol's web UI or a wallet flow instead of repeatedly retrying the same `send_calls` payload. + +`send_calls` does not currently expose a per-call gas override in this skill. Plugin authors should document any known gas-heavy flows in the plugin file so agents can route users to the safest execution path. ## Priority order for HTTP calls Use this order **for every HTTP-based plugin call — native or not**. CLI-only plugins follow their plugin file and require shell access. Hybrid plugins follow the CLI/HTTP routing in their own plugin file. From 1364486dbddf80754fdca6c8eac98a50d67d213e Mon Sep 17 00:00:00 2001 From: clv7778 <83701037+clv7778@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:10:23 +0300 Subject: [PATCH 2/3] revert: remove send_calls troubleshooting guidance --- skills/base-mcp/references/custom-plugins.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/skills/base-mcp/references/custom-plugins.md b/skills/base-mcp/references/custom-plugins.md index 4458763..930cf7e 100644 --- a/skills/base-mcp/references/custom-plugins.md +++ b/skills/base-mcp/references/custom-plugins.md @@ -14,19 +14,7 @@ Plugins differ in how they reach their backend, and each plugin's own file (`../ - Some hybrid plugins split by operation: their **view-only / read hosts** are allowlisted for `web_request` and work on every surface, while their **write or tx-builder hosts** require a CLI harness. On chat-only surfaces, do not retry a write host through `web_request` and do not fall back to user-paste — follow the plugin file, which typically links the user to the protocol's web UI instead. Custom or user-supplied plugins are almost certainly **not** in the allowlist and will be rejected by `web_request`. -## Transaction-builder call troubleshooting -Custom plugins that return calldata for `send_calls` should keep state-changing calls as small and predictable as possible. If a call fails during `send_calls` gas estimation but the same calldata appears valid in a direct simulation, treat it as a transaction-submission limitation rather than a `web_request` routing issue. - -When this happens: - -- verify the target contract, calldata, `from` address, balance, and token allowance; -- test the same calldata with `eth_call` from the same sender when possible; -- try splitting approval and execution into separate calls; -- avoid batching gas-heavy state-changing calls unless the plugin has already tested the flow end-to-end; -- if the call still cannot be estimated, direct the user to the protocol's web UI or a wallet flow instead of repeatedly retrying the same `send_calls` payload. - -`send_calls` does not currently expose a per-call gas override in this skill. Plugin authors should document any known gas-heavy flows in the plugin file so agents can route users to the safest execution path. ## Priority order for HTTP calls Use this order **for every HTTP-based plugin call — native or not**. CLI-only plugins follow their plugin file and require shell access. Hybrid plugins follow the CLI/HTTP routing in their own plugin file. From 4c59996a48cd405ba621c316cd89cd9349ba6c78 Mon Sep 17 00:00:00 2001 From: clv7778 <83701037+clv7778@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:16:50 +0300 Subject: [PATCH 3/3] docs: add send_calls troubleshooting guidance --- skills/base-mcp/references/custom-plugins.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/skills/base-mcp/references/custom-plugins.md b/skills/base-mcp/references/custom-plugins.md index 930cf7e..4458763 100644 --- a/skills/base-mcp/references/custom-plugins.md +++ b/skills/base-mcp/references/custom-plugins.md @@ -14,7 +14,19 @@ Plugins differ in how they reach their backend, and each plugin's own file (`../ - Some hybrid plugins split by operation: their **view-only / read hosts** are allowlisted for `web_request` and work on every surface, while their **write or tx-builder hosts** require a CLI harness. On chat-only surfaces, do not retry a write host through `web_request` and do not fall back to user-paste — follow the plugin file, which typically links the user to the protocol's web UI instead. Custom or user-supplied plugins are almost certainly **not** in the allowlist and will be rejected by `web_request`. +## Transaction-builder call troubleshooting +Custom plugins that return calldata for `send_calls` should keep state-changing calls as small and predictable as possible. If a call fails during `send_calls` gas estimation but the same calldata appears valid in a direct simulation, treat it as a transaction-submission limitation rather than a `web_request` routing issue. + +When this happens: + +- verify the target contract, calldata, `from` address, balance, and token allowance; +- test the same calldata with `eth_call` from the same sender when possible; +- try splitting approval and execution into separate calls; +- avoid batching gas-heavy state-changing calls unless the plugin has already tested the flow end-to-end; +- if the call still cannot be estimated, direct the user to the protocol's web UI or a wallet flow instead of repeatedly retrying the same `send_calls` payload. + +`send_calls` does not currently expose a per-call gas override in this skill. Plugin authors should document any known gas-heavy flows in the plugin file so agents can route users to the safest execution path. ## Priority order for HTTP calls Use this order **for every HTTP-based plugin call — native or not**. CLI-only plugins follow their plugin file and require shell access. Hybrid plugins follow the CLI/HTTP routing in their own plugin file.