Kaiearnspermission to spend

Kai does the CMO loop: watch results, pick the next test, draft the campaign, choose the domain, and ask before money moves. For this hackathon, it can stage both a $50 Meta traffic test and Unstoppable domain buys. Neither can launch without approval.

Public proofTwo x402 payments are visible on BaseScan.
Money railStripe stays in test mode. Live keys are refused.
Human yesKaiCalls is where Connor hears the ad or domain ask and approves or rejects it.
Spend lineAds and domains are gated. No surprise checkout, wallet send, or campaign submit.
interactive flow map

Kai

Kai turns real business signals into a concrete next step. It can draft the campaign, pick a domain, and explain the bet. It still has to ask before spend goes live.

System Graphic

The poster shows the core spend loop in one view: what Kai reads, where money could move, who approves it, and where the stop signs live. The live system now uses that loop for ads and domain buys.

Generated Kai systems graphic showing how data, money, approval, and stop signs move through the demo.
Generated concept graphic for the Kai CMO loop. It leaves secrets and internal plumbing out, and it does not imply live ad spend or a completed domain purchase.Open full-size PNG

Money Flow

The money story is simple: Kai can prove a small payment, draft a campaign, prepare a domain checkout, and ask for approval. Authority still comes from an explicit yes.

01

Something happened

A result, payment, call, or KPI gives Kai a reason to act.

02

x402 proof

Kai makes a capped onchain payment that anyone can check on BaseScan.

03

Test-mode rail

Stripe records the loop in test mode, with live money disabled.

04

Spend draft

Kai prepares the ad plan or domain cart, then keeps the cap small.

05

Approval

The Meta campaign and domain buy paths wait before checkout or launch.

Data Flow

Click each stage to see what Kai uses before it asks for money. The goal is to make the reason visible before an ad or domain purchase exists.

Proof comes in

The loop starts with something outside the chat: a KPI, customer action, x402 payment, Stripe test event, or an approved milestone. Kai cannot unlock a budget by just saying it should.

Fieldgoal_id
Fieldevidence_ref
Ruleverified == true

KaiCalls Approval

This is where the demo becomes real enough to matter. Kai can prepare the exact ask for a $50 Meta test or a capped domain buy. Connor still has to approve before anything can launch or checkout.

What Connor hears

QuestionAnswerStatus
Why spend?Kai found enough proof to justify a small traffic test or domain buy.required
How much?Ads use fixed campaign caps. Domains use max-usd checkout caps.required
What is risky?The approval can authorize a live ad platform, domain checkout, or wallet parameter fetch later, so the vendor, budget, URL, and phrase are exact.bounded
What can I say?Approve the exact packet, reject it, or ask for changes.explicit

Sandbox Trace

ALLOW proof cleared
STAGE approval call ask
READY ad or domain approval packet
BLOCK missing exact approval phrase

Spend actions waiting for approval

ActionExact value
Meta Ads$50 traffic test for meetkai.xyz, capped at $10/day for 5 days.
Traditional domainsUnstoppable cart, hosted checkout, and DNS payload can be staged under a max-usd cap.
Web3 domainsRegistry purchase parameters can be fetched for review. Wallet signing stays manual.
StatusWaiting for exact approval before live spend.

Exact Approval Phrase

The later executor only gets authority if the approval matches the action. Ads and domains need separate exact approval.

approve live meta test meet-kai-50-usd

Safety Boundaries

This is the part that keeps the demo honest. The stop signs are in code, in the approval packet, and in the domain checkout adapter.

proof gate

No proof, no budget

Kai needs a real source before it can ask to reinvest.

budget gate

Small cap first

Ads get campaign caps. Domains get max-usd caps. Over-cap actions stop.

approval gate

Say yes out loud

KaiCalls carries the reason, cap, destination, domain, and exact phrase to Connor.

launch boundary

No surprise spend

This page makes no Meta call, moves no money, checks out no domain, and signs no wallet transaction.

Verifiable Proof

Here is what a judge can check without trusting the page copy.

BaseScan tx #1

x402 payment proof on Base Sepolia. Public, capped, and inspectable.

Open transaction

BaseScan tx #2

A second x402 proof transaction, also on Base Sepolia.

Open transaction

Source code

The deterministic spend guardrail and the checkpointed ad-buy reinvestment loop, with tests. Genericized, no secrets.

Open GitHub repo

Demo video

The full end-to-end run: the agent finds an underperforming ad, calls for approval, creates new creatives, and reports back.

Watch the demo

Ads + domains boundary

Stripe is test-mode. Meta spend waits. Unstoppable domain checkout and Web3 wallet signing stay gated.

Back to hackathon board