Intent Transfer Completion via LI.FI
OpenClaw plugin and bundled skill for completing token transfer intents with LI.FI routing.
Install
openclaw plugins install clawhub:intent-transfer-completion-lifiintent-transfer-completion-lifi
OpenClaw extension composed of:
- a native plugin/tool named
complete_transfer_intent - a bundled skill named
intent_transfer_completion_lifi
The plugin fulfills natural-language token transfer intents such as:
send 50usdc to merkim.eth on basesend 0.1 eth to vitalik.eth on arbitrumtransfer 250 dai to 0xabc... on optimism
The tool flow is:
- parses the intent
- resolves the destination chain, token, and recipient
- loads the local sender wallet from a private key file
- checks the sender balance on the destination chain
- inspects balances across supported chains when the destination balance is insufficient
- asks LI.FI for routes to cover the shortfall
- executes the route when needed
- performs the final native/ERC-20 transfer
- waits for routed funds to arrive before the final send
Files
openclaw.plugin.json: plugin manifest with bundled skill and config schemasrc/index.ts: plugin entrypoint and tool implementationskills/intent_transfer_completion_lifi/SKILL.md: model instructions for when to invoke the tool
Tool Contract
Tool name: complete_transfer_intent
Required input:
{
"intent": "send 50usdc to merkim.eth on base"
}
Optional input:
{
"intent": "send 50usdc to merkim.eth on base",
"walletPath": "./wallet.txt"
}
Notes:
- If
walletPathis omitted, the tool uses./wallet.txt. - The wallet file should contain the sender private key.
- Recipients are currently supported as hex addresses or
.ethnames.
Setup
- Install dependencies:
npm install
- Create a wallet file for local execution:
printf '%s\n' '<private-key-without-0x-prefix>' > wallet.txt
- Build:
npm run build
- Test:
npm test
Current Configuration
The current plugin config surface is minimal:
lifiBaseUrlintegrator
At the moment, the exported configSchema is effectively empty, and the runtime does not load .env files.
Notes
- All executable logic lives in the TypeScript plugin.
- The bundled skill contains routing guidance only.
- Live execution requires a funded local wallet private key file.
- ENS resolution uses viem on Ethereum mainnet.
- Cross-chain balance discovery currently focuses on the stablecoins listed in
src/constants.ts.
