1
Register Agent metadata โ keys stay with the user
You register an Agent on Velarum (name, owner, scope). Keys live in your wallet, smart account, or chosen external custodian โ never on Velarum. Velarum only stores the agent record and the user-provided payer address.
POST /v1/agents
โ { agent_id, owner_org_id }2
Set spend policies
Define per-agent daily limits, allowlisted destinations, and HC-NC-5 thresholds (per-tx max / cumulative cap / active window / whitelist). Your policy โ not Velarum โ is what blocks any intent that violates it. Velarum surfaces the block client-side and you still sign every allowed intent yourself.
POST /v1/policies
โ { max_daily_usdc: 500 }3
Send & receive funds โ you sign, we never do
Your agent posts a payment intent. Velarum validates it against your policy and returns an unsigned Stellar transaction. Your SDK signs it locally with your key and broadcasts to Stellar. Velarum never holds or touches a private key.
POST /v1/intents
โ { unsigned_tx }
sdk.sign_and_broadcast(unsigned_tx)
โ { tx_hash, settled_at }