Bridge, swap, or send funds from any wallet whose private key is in `.env`, routing through the LI.FI API. Three modes — `bridge` (move the native gas asset cross-chain, same wallet on both ends), `swap` (same-chain native↔ERC-20 in either direction, same wallet), and `send` (gas asset to a different recipient).
SkillScore91Maintained
Automatic
◆DevOps & SRE pack
Last verified 8/22/2026
What it changes
Passed 18 of 20 test cases with the skill, and 9 of 20 without it.
Without skill45%
With skill91%
Checks it passed that the model alone missed
Directs the user to interact-tron
Directs the user to request-dev-funds
Identifies 3% as the default max slippage threshold
and 8 more in the full report
10 fixed10 passed either way2 still failing0 broke
Pass-rate lift
+45 pp
Tokens
+19%
Agent turns
0%
Response time
-74%
Model gemini-3.6-flashMeasured 8/22/2026v120 of 22 cases passed with skill · 20 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 10
Prompt
We need to execute a contract interaction on Tronshasta network using cast to set up initial state. What command should we use?
What was checked, without and with the skill
Checked
Without skill
With skill
Directs the user to interact-tron
Missed
Passed
case-05 · gemini-3.6-flash · 8/22/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md128 linessingle file
Manage Wallet Funds
Move funds for any wallet we hold the key for, using the LI.FI API as the router. The
engine is script/tasks/manageWalletFunds.ts; this document is the policy around it.
When to trigger
"the dev wallet has no gas on BSC" / "rebalance the deployer to arbitrum"
"bridge 0.02 ETH to base so I can test" / "get me some USDC on optimism to test a swap"
"swap native into USDC on base" (or the reverse)
"send 0.1 ETH to 0xRecipient on polygon"
/manage-wallet-funds <free-form request>
When to skip
Target chain is Tron/Tronshasta → LI.FI transactions and cast do not apply there;
route to /interact-tron. Say so and stop.
The chain is otherwise non-EVM (Solana / BTC / SUI) → unsupported.
Funds need to come into one of our wallets from the automate-wallet → that is
request-dev-funds (a PR flow), not this direct-key path.
The autonomy boundary (the point of this skill)
Custody is the line. A move that keeps funds inside one wallet cannot lose them to
anyone, so it needs no human in the loop. A move that changes who controls the funds
can, so it always does.
Mode
Destination
Behaviour
bridge
same wallet, other chain
autonomous — no confirmation
swap
same wallet, same chain
autonomous — no confirmation
send
a different recipient
refuses to broadcast without --confirm
For bridge/swap the script quotes with toAddress == fromAddress and asserts it before
broadcasting; if anything makes the destination differ from the source, it aborts. For
send, the recipient differs by definition, so the script prints the report and exits
unless a human passes --confirm after reading it. An agent or sub-agent must never
supply --confirm itself, and must never treat a broad task ("get the deployment
working") as standing permission to send funds to another address.