Agents
Create one
const agentId = await veyto.createAgent(
"research-agent", // your label
"noncustodial", // you keep the key
"0x51063e78f02f028DDce8f722E24800ed433E435F", // PUBLIC payer address
);payer_address is an address, never a key. It is the address the signed authorization will
name as the payer, so it must be the address your signing key controls.
Read them back
const { items } = await veyto.listAgents({ limit: 50 });
const agent = await veyto.getAgent(agentId);
// { id, name, custody_mode, payer_address, status, created_at }status is "frozen" when the kill switch is on, so you can tell a stopped agent from a
capped one without inferring it from a refusal.
Freeze and unfreeze
await veyto.freeze(agentId, "incident 4821");
await veyto.unfreeze(agentId, "incident closed");Freezing stops the spend path immediately. Limits keep applying underneath; this stops everything.
One thing freezing cannot do: recall an authorization that was already signed. A signed EIP-3009 authorization is a bearer credential until it expires, so its exposure is bounded by the authorization window rather than by the freeze.