Drone Path Whisperer
Lovable AI converts your verbal flight descriptions into waypoint missions so you get the perfect shot; the agent pays its own way from an Anyway wallet, under a set limit.
The kernel.
The agent behind aerial cinematography carries its own Anyway wallet — it pays for what it needs inside a spending policy videographers set once, and never asks for a card.
Why this primitiveAn Anyway Agent Wallet lets aerial cinematography in Videography & Film run unattended — the agent spends its own USDC under a server-enforced policy the owner sets once.
Required key.
Add this in your Lovable project under Settings → Secrets before pasting the prompt below.
The build prompt.
Paste into a fresh Lovable project. Make sure the key above is set first. read the build strategy →
Build "Drone Path Whisperer" as a ONE-SHOT Lovable build. The participant has only
5 credits — this single message must produce a working demo with no follow-ups.
Single-page TanStack Start app. Cut scope ruthlessly.
CONCEPT
Lovable AI converts your verbal flight descriptions into waypoint missions so you get the perfect shot; the agent pays its own way from an Anyway wallet, under a set limit.
Discipline: Videography & Film (aerial cinematography).
Recipe: Anyway Agent Wallet (autonomous spend) as the single creative surface.
Why this kernel: An Anyway Agent Wallet lets aerial cinematography in Videography & Film run unattended — the agent spends its own USDC under a server-enforced policy the owner sets once.
LOVABLE BUDGET (HARD CAP: ONE-SHOT, ~5 CREDITS TOTAL):
The participant has FIVE Lovable credits for the whole build. This prompt MUST
ship a working demo on the FIRST message with zero follow-ups. Engineer for that.
- ONE TanStack Start app, ONE route (`src/routes/index.tsx`). No extra pages, no auth, no nav.
- ONE TanStack server function in `src/lib/anyway.functions.ts` that proxies the Anyway call.
- ONE client surface (a textarea + button, a wallet panel, or a pay button) wired to it.
- NO database, NO Lovable Cloud, NO auth, NO file uploads, NO extra integrations.
- NO tests, NO docs pages, NO settings screens, NO theming toggles.
- Libraries: template defaults + `zod`. Nothing else.
- Keep the diff small enough to land in one build pass. If a feature is not on
screen in the user flow below, do not build it. Cut scope before adding scope.
STACK
- TanStack Start app, the index route only.
- Anyway is the only paid dependency. Every Anyway call lives inside a
`createServerFn` handler so the keys stay on the server.
- Client surface fits the kernel: a wallet panel showing identity, spending policy, credit balance and a live feed of what the agent just paid for.
- Tailwind + shadcn. Editorial look: gold accent on a dark or warm-cream
background, generous type, one strong headline, one primary action.
- Footer renders: "Built during the Anyway Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14".
SERVER FUNCTION (src/lib/anyway.functions.ts) — Anyway Agent Wallet runtime:
```ts
import { createServerFn } from "@tanstack/react-start";
/** Built during the Anyway Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14 */
export const walletStatus = createServerFn({ method: "GET" }).handler(async () => {
const { getAgentContext, getCreditBalance } = await import("./anyway-wallet.server");
const { signer, info } = await getAgentContext();
const credits = await getCreditBalance(signer);
return {
agentId: info.agentId,
name: info.name,
walletAddress: info.walletAddress,
credits: credits?.balance ?? null,
};
});
```
`src/lib/anyway-wallet.server.ts` — signed runtime requests with Web Crypto only
(no node:crypto, so it runs on the edge):
```ts
const ts = String(Math.floor(Date.now() / 1000));
const signature = await signP256(privateKey, `${method}\n/v1/agent-wallet${path}\n${ts}`);
const res = await fetch(`https://api.anyway.sh/v1/agent-wallet${path}`, {
method,
headers: {
"X-Agent-Pubkey": publicKeySpkiBase64, // base64 SPKI, derived from the key bundle
"X-Agent-Timestamp": ts, // within 300s of the server clock
"X-Agent-Signature": signature, // base64 DER ECDSA P-256 / SHA-256
"Content-Type": "application/json",
},
});
```
Useful paths: `""` (identity + wallet address), `/policies`, `/credit-balance`,
`/history?limit=20`, `/sign-typed-data`. Never log or return the key itself.
CLIENT: a wallet panel — agent name and id, wallet address, spending policy,
credit balance, and a live feed of what the agent just paid for.
Docs: https://docs.anyway.sh/features/agent-wallet
USER FLOW (the entire app — nothing else exists)
1. Land on the page; the headline previews what the demo does for aerial cinematography.
2. The primary action (a wallet panel showing identity, spending policy, credit balance and a live feed of what the agent just paid for) is one tap away; the rest of the layout supports it.
3. Anyway runs the kernel server-side, the result lands on screen, the user can retry or copy.
KEYS — Anyway secrets (server-side only, never `VITE_`):
1. `ANYWAY_AGENT_WALLET_KEY` — the Agent Wallet Key from
https://app.anyway.sh/wallets?view=agent (or `anyway login --agent-wallet`).
Lets the agent pay x402 endpoints in USDC under an owner-set spending policy.
2. `ANYWAY_API_KEY` — the Agent Traces key from Business profile -> Developers.
Only needed if the build reports traces to https://collector.anyway.sh.
Put them in Project Settings -> Secrets and read them only inside a
`createServerFn` `.handler()` via `process.env.ANYWAY_...`.
CREDIT (must appear in UI footer AND as JSDoc on the server function):
Built during the Anyway Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14
Market sizing.
Indicative figures for hackathon pitches — refine with your own research before raising.