Checked before you sign
Each leg's exact transaction runs on a copy of its chain. If the result doesn't match the plan, Sign stays off.
--- name: intentfi description: Get on-chain tasks done through IntentFi by saying them in one sentence. Use when the person wants to bridge, swap, deposit, withdraw, borrow, repay or claim, set a task that repeats or waits for a price or a health factor, or read their holdings and tasks. IntentFi plans each task, checks the exact bytes before any signature and proves the result on chain. --- # IntentFi You pass on the person's sentence; IntentFi plans it, checks it and proves it. You propose; the person signs each step a grant they confirmed does not cover. ## Connect - Remote MCP server: https://mcp.intentfi.io/mcp (streamable HTTP). - Sign in when your host asks. IntentFi opens in the browser, the person allows this agent, and that makes a key for it. They can revoke it in Connections at any time. - Or send a client key from the Connections page as `Authorization: Bearer <key>`. A key is shown once. - The person needs an IntentFi account. Sign-up is on the web app today. - Connected with a key alone you can read, plan and prepare. Approving and signing stay with the person unless they confirm a supported grant. ## Run a task 1. `task.new` with the person's sentence, in their own words. 2. If the task asks a question, ask the person and send their answer with `task.answer`. Never guess an answer. 3. Read the plan with `task.view`: what leaves and what arrives, leg by leg, with fees and time. Tell the person in those terms. 4. The person signs each leg their confirmed grant does not cover. 5. Follow the task with `task.view` until it is done. Done means proof bound to the send has landed. ## Rules - A send with no answer is unknown, never failed. Do not start it again: a send never runs twice. Read it with `task.view`. - Amounts are exact. Do not round them. - A refusal comes with its reason. Pass it on as it is. - Sends today: Base and Arbitrum. Reads: Base, Arbitrum, Optimism, Polygon and Ethereum. ## Read `read.holdings`, `read.tasks`, `task.history`, `read.markets`, `read.capabilities`. ## Your own wallet A program with its own wallet registers it with `wallet.connect` over MCP or REST by signing an ownership challenge. No secret is uploaded.
Save it as intentfi/SKILL.md in your agent's skills folder, or paste it
into its instructions. The MCP sign-in has not been tried with an agent host yet.
Example sentences: bridge 100 USDC from Arbitrum to Base and put it in Euler Earn. Every Friday at 09:00 buy 50 USDC of ETH on Base. If my Aave health factor drops below 1.3, repay 200 USDC. Swap 500 USDC to ETH on Arbitrum.
Say what you want done on-chain. IntentFi plans it, checks each transaction before you sign, and proves the result on-chain.
You say it in your own words. Each word it understands becomes a pill.
IntentFi reads it against what you hold.
It asks only what the sentence left open. Here, two vaults fit.
One plan, what leaves and what arrives, leg by leg.
The exact transaction runs on a copy of the chain first. Sign stays off until the result matches the plan.
One signature per leg, on that exact transaction.
Sent once.
Done only when the chain shows this exact send did what was planned.
You see what landed, with its block and transaction hash.
bridge 100 USDC from Arbitrum to Base and put it in a vault
Each leg's exact transaction runs on a copy of its chain. If the result doesn't match the plan, Sign stays off.
A leg is the steps that run on one chain from one wallet. You sign each leg's exact transaction, and the next leg waits until the one before it lands.
swap 0.05 ETH to USDC, bridge it to Base and put it in Euler Earn
Done only when IntentFi finds your exact send on-chain and what left, what arrived and where it landed match what you signed. No answer yet? It shows as unknown, never as failed, and never runs twice.
0x8f3a…c21e
0x41bd…07e2
0x9c02…5a1f
Ask for something it can't do and it tells you why, then offers something it can run.
buy 1 BTC on Coinbase
IntentFi only acts on-chain, so it can't use Coinbase.
A task can watch a price or a health factor. When the number crosses your line, the task fires under the permission you signed once and ends with its own proof. It fires again once the number moves back past a second line, or, for a protection like a repay, after a cool-down.
if my Aave health factor drops below 1.3, repay 200 USDC
1.68now
fires below 1.30re-arms at 1.34
A standing task runs from your IntentFi wallet, which you own. IntentFi's key signs only inside the permission you signed: your wallet allows only its calls on its chain and caps what it may spend, and IntentFi checks each swap's output, recipient and price. Stop ends new fires; revoking at your wallet ends the key's authority.
allowsthis swap on Base, 50 USDC a fire
next fireFri 16 Oct · 09:00
Add a time or a condition to the sentence. You sign one permission, and it fires on schedule, or when a price or a health factor reaches your line.
every Friday at 09:00 buy 50 USDC of ETH on Base
next fire Fri 09:00 · 50 USDC per fire · until 1 Nov
POST https://rest.intentfi.io/v0/task.new authorization: Bearer <client key> content-type: application/json { "taskId": "task:earn-1", "sentence": "bridge 100 USDC from Arbitrum to Base and put it in Euler Earn" } POST https://rest.intentfi.io/v0/task.view { "taskId": "task:earn-1" }
https://mcp.intentfi.io/mcp · tool call { "name": "task.new", "arguments": { "taskId": "task:earn-1", "sentence": "bridge 100 USDC from Arbitrum to Base and put it in Euler Earn" } }
bridge 100 USDC from Arbitrum to Base and put it in Euler Earn
A key alone can read, plan and prepare. You sign each step yourself, unless a grant you confirmed covers it or the program brings its own wallet.
example calls · keys are made on the web
Sign up on the web app. Tasks send on Base and Arbitrum today.