Ask anyone why their agent doesn’t buy data yet and you’ll hear the same answer in different words: “I’m not giving an LLM my money.” Fair. An agent that can spend is an agent that can overspend — so the spending rails have to be designed around that fear, not around the happy path.
Here’s the guardrail stack on datapoint.market, from the outside in.
Layer 0: no payment = no spend, ever
The default is safe by construction. A call_endpoint with no payment
method attached never spends — it returns a free trial (real data, metered)
if the seller offers one, otherwise a price quote. An agent can explore the
entire marketplace, pull every free sample, and quote every endpoint without
being able to lose a cent.
Layer 1: a wallet with exactly as much as you mean it to have
create_wallet("base") # → address; fund it with USDC
get_wallet() # → balance
The managed wallet is the hard ceiling: an agent cannot spend USDC that isn’t there. Most people start by funding $5 — enough for hundreds of calls at typical listing prices ($0.005–$0.035), nowhere near enough to hurt.
Layer 2: standing rules that outrank the model
set_buy_policy(
max_per_call_usd = 0.50, # calls above this are refused outright
confirm_above_usd = 0.05 # calls above this need confirmed=true
)
The buy policy is enforced by the platform, not by the model’s judgment. A $2.00 listing simply cannot be bought by an agent whose policy caps calls at $0.50 — no prompt injection, no bad reasoning, no “the agent decided” story changes that.
Layer 3: buy jobs — delegation with a blast radius
When you hand work to a separate agent process (a scraper fleet, a nightly enrichment job), don’t hand it your wallet. Mint it a spending key:
create_buy_job(
chain = "base",
budget_usd = 10, # total it can ever spend
max_per_call_usd = 0.05, # per-call ceiling
ttl = "24h" # expires on its own
)
The key spends from your wallet but inside its own envelope: budget, per-call
cap, expiry — and close_buy_job revokes it instantly. Worst case is bounded
before the delegate runs, which is the property that lets you stop
babysitting it.
Layer 4: receipts for everything
Every settled call returns an on-chain transaction hash. Spend is auditable
after the fact down to the individual request — list_buy_jobs shows
budget vs. spent vs. remaining per delegation, live.
The mental model
Give the agent a budget, not your money: a funded wallet is the ceiling, the buy policy is the standing law, buy jobs are bounded delegation, and the no-payment default means exploration is always free. The result is an agent that can say yes to a $0.02 lookup on its own, needs your nod above a nickel, and cannot — mechanically cannot — wake you up to a drained account.
Set it up: wallets & budgets guide · the full buyer flow