Devnet prototype. FYAT Agent is unaudited, has no token, and uses no real funds.

Getting started

Quickstart

Configure a mandate in the Builder, preview the flow and copy the SDK code. Previewing needs no funds.

Try the Builder

Open the Builder and work from top to bottom.

  • Choose an action: Swap or Transfer.
  • Set the per-action cap, the total budget and the expiry.
  • Pick the approved venue (swap) or recipient (transfer).
  • Enter an amount for the agent's attempt and choose an approved or unlisted target.
  • Read the Build, Verify, Simulate and Execute steps.
  • Copy the generated SDK snippet.

Simulate a transfer

Connect a wallet on Devnet with a little SOL for fees, then run the dry-run. The plan is tested on Solana RPC; nothing is signed or broadcast.

Swap simulation is not configured yet and shows as unsupported.

The SDK snippet

The Builder generates code like this. @fyat/sdk is not published yet, so treat it as an illustration of the intended API.

const client = createFyatClient({
            network: "devnet",
            rpcUrl: "https://api.devnet.solana.com",
            });

            const mandate = await client.createMandate({
            vaultPda: "<YOUR_VAULT_PDA>",
            sessionSigner: agentKeypair.publicKey,
            permissions: {
                action: "SWAP",
                venue: "METEORA_DAMM",
                maxPerAction: 5_000_000, // 5 USDC
                maxTotal: 50_000_000, // 50 USDC
                expiresInHours: 24,
            },
            });

            const plan = await mandate.build({ amountIn: 3_000_000, venue: "METEORA_DAMM" });
            await plan.simulate(); // verifies the rules before broadcasting
            const signature = await plan.executeWithSession(agentKeypair);