Core concepts
Actions and plans
An action is what the agent wants to do. A plan is that action made exact and ready to be checked.
Actions
FYAT supports two actions today: SWAP and TRANSFER. Both are described by the same few fields: the action, an exact amount and a target.
- Transfer: send USDC to a recipient address.
- Swap: trade through an approved venue. Meteora DAMM is the only venue so far.
What a plan is
The Build step turns an attempt into a plan with an exact base-unit amount and a clear summary, for example: Transfer 3 USDC to 7xKq…9f2. Nothing is signed at this point.
If the mandate form is incomplete or the amount is invalid, the Build step waits and tells you what is missing. Later steps stay idle.
How a transfer is built
A transfer plan contains two instructions in one transaction. The first creates the recipient's token account if it does not exist yet, and is safe to repeat. The second moves the tokens using the checked transfer instruction, which also verifies the decimals.
Recipients may be program-derived addresses, so an address that has no private key can still receive funds.
1 createAssociatedTokenAccountIdempotent(recipient)
2 transferChecked(amount, decimals = 6)Swap plans
Swap plans are verified against the mandate like any other plan. Building and simulating the Meteora transaction arrives with the Meteora adapter, so swap simulation currently reports as unsupported.
