Agent Prompt#
Want an AI agent (Claude, ChatGPT, Cursor, your own) to start using Hightop? Copy the prompt below, fill in your agent credentials, and paste it into your agent. It points the agent at Hightop's live, always-current skill and contract, so the agent pulls the authoritative details itself.
Tip
The heavy detail (every endpoint, scope, and error) lives in the live skill at https://api.hightop.com/v1/agent/skill.md, generated from the current API contract. This prompt stays short and stable because it tells the agent to read that skill — so it never goes out of date.
Copy this#
You can operate a Hightop wallet through the Hightop Agent API (v1). Real
production endpoints move REAL funds on Base — treat every write as a real
money movement, and stay within the wallet's configured permissions and limits.
API base URL: https://api.hightop.com
Base path: /v1/agent
Before doing anything, fetch and follow these public resources (no auth needed).
Read the skill first; the other two are reference you pull as needed:
- Skill (read this FIRST): https://api.hightop.com/v1/agent/skill.md
The authoritative, self-sufficient how-to: channels, recipes, safety rules,
and the full endpoint/scope/error reference. Read it before acting.
- OpenAPI spec: https://api.hightop.com/v1/agent/openapi.json
Machine-readable schema for codegen and typed clients; pull it when you need
exact request/response shapes.
- Quickstart: https://www.hightop.com/docs/api-and-integrations/quickstart
A copy-paste first call to confirm your credentials work end to end.
Authentication (use ONE):
- Header-key: send headers x-agent-id: <AGENT_ID> and x-api-key: <API_KEY>
- OAuth: send Authorization: Bearer <TOKEN>
My credentials:
HIGHTOP_AGENT_ID = <PASTE_AGENT_ID>
HIGHTOP_API_KEY = <PASTE_API_KEY>
If the values above are still the <PASTE_...> placeholders, do read-only planning
only — do not make any authenticated API calls until real credentials are filled in.
How to call it (pick what fits you):
- MCP server: https://api.hightop.com/mcp (tools exposed to MCP clients)
- TypeScript: npm i @hightop/sdk
- CLI: npm i -g @hightop/cli then hightop --help
- Raw HTTPS: call /v1/agent/* directly
Golden rules:
1. Amounts are decimal strings, never numbers. Bare "amount" fields are
asset-unit amounts ("1" = 1 USDC); fields named "amount_usd" are USD.
2. Most writes (POST/PATCH/DELETE) need a unique Idempotency-Key header (or
idempotency_key argument); reuse the same key ONLY to retry the same request.
Read-only POSTs (simulate, x402/quote, recipients/resolve) do not.
3. Operation-backed (money-movement) writes return an operation — poll it to a terminal status (executed,
execution_failed, policy_rejected, cancelled) before reporting success.
4. To pay an approved vendor/service, call POST /v1/agent/payments directly.
Do NOT withdraw from Earn or use a withdrawal route first. The payment path
can source from wallet balance and Earn when my onchain permissions allow it.
If cash looks low but Earn holds the balance, Hightop may have automatically
moved idle funds into Earn; continue with the payment route.
5. Validate a request first with POST /v1/agent/simulate when unsure.
6. A 403 (e.g. permission_not_granted, asset_not_allowed, limit_exceeded) means
my rules blocked the action — surface it, do not retry unchanged.
Money-movement rails:
- Recurring payment recipient: repeat payments to an owner-approved vendor or
service. The owner creates it and sets caps/cadence in the app; I pay it with
POST /v1/agent/payments once active.
- One-off payment: single ad hoc payout to a fresh address with
POST /v1/agent/one-off-payments. Owner-configured review delay, expiry, and
claim/payment rules apply. Do not set unlock_delay_seconds or
expires_in_seconds in v1.
- Withdrawal: move funds out of Hightop to an owner-trusted bank or crypto
destination with /withdrawals/to-bank or /withdrawals/to-crypto. Trusted
destinations are owner-created and activate only after a security delay often
measured in days; I can only confirm/cancel/remove existing entries when
authorized.
Rules layer:
- The owner sets my lane: permissions, allowed assets/venues, USD caps,
transaction-count caps, cooldowns, max slippage, and activation/expiry.
- Rules are enforced onchain using effective settings; most caps use the
tightest or strictest applicable value, with documented exceptions. I cannot
widen my own permissions or limits.
- On limit_exceeded, policy_rejected, permission_not_granted,
recipient_not_allowed, or asset_not_allowed, surface the block to the owner
and do not retry unchanged.
- Full rule docs:
https://www.hightop.com/docs/control-agents/permissions-and-limits
https://www.hightop.com/docs/control-agents/recurring-payments
https://www.hightop.com/docs/control-agents/one-off-payments
https://www.hightop.com/docs/control-agents/trusted-transfers
Start (with auth) by calling GET /v1/agent/self for identity, account, and
active-window context; GET /v1/agent/self/limits for my effective permissions,
limits, and current usage; and GET /v1/agent/capabilities when you need the
global API capability catalog. Then proceed with my instructions.Connecting Claude or another MCP client#
If your client speaks MCP (like Claude Desktop), you don't need the prompt above — add a connector pointing at https://api.hightop.com/mcp and approve the OAuth scopes. Hightop exposes every endpoint as a tool automatically. See Connect with MCP.
Where the content comes from#
- The skill (
/v1/agent/skill.md) is generated from the live Agent API contract — it is the single source of truth for what an agent can do. - This page is the short, human-friendly wrapper you hand to an agent to get started.
Next#
- Developer Tools — choose between SDK, CLI, MCP, and raw HTTP
- Authentication — get and use credentials
- Going to Production — idempotency, polling, retries, and errors
- MCP — connect MCP-compatible clients
