Read-only research
04 / 04Research needs no write access
Most of what an agent does is read — prices, portfolios, order books, fee balances. You can run a fully useful agent that is physically incapable of moving funds.
Three levels of read
| Setup | What it can do | What it can't |
|---|---|---|
| No credentials | Every public endpoint: tokens, quotes, candles, streams, config | Agent jobs, anything wallet-scoped |
| Read-only API key | Agent jobs — portfolio reads, market research, order listing — all planning, no signing | sign-and-submit returns 403, always |
| Read-write key | Everything, including broadcasting | Nothing — that's the point of the other two |
- No credentials
- What it can do
- Every public endpoint: tokens, quotes, candles, streams, config
- What it can't
- Agent jobs, anything wallet-scoped
- Read-only API key
- What it can do
- Agent jobs — portfolio reads, market research, order listing — all planning, no signing
- What it can't
- sign-and-submit returns 403, always
- Read-write key
- What it can do
- Everything, including broadcasting
- What it can't
- Nothing — that's the point of the other two
The MCP server is keyless-friendly: four of its five tools work with no key at all, so a research agent in Claude or Cursor can query the market without ever touching a credential.
Prompts that stay read-only
"what's my portfolio worth right now"
"which tokens I launched earned the most in fees"
"show my open orders and when they trigger"
"what graduated this week and at what market cap"
"compare 0x… and 0x… — price, volume, holders"Every one of these is a read under the hood — the agent's market-data and wallet-read tools don't touch the signing path, and a read-only key makes that structural rather than behavioral.
Building one
# profile → API keys → create with readOnly: true
# then use it anywhere:
curl -X POST https://api.vectr.bot/agent/job \
-H "X-API-Key: vectr_…" -H "Content-Type: application/json" \
-d '{"prompt":"summarize my positions"}'Read-only is the right default
A research bot's key can leak without consequences worse than a rate limit. Start read-only, add write scope to a separate key only when something genuinely needs to execute.