원클릭으로
grid-trader
Automated grid trading bot for Coinbase Exchange — profits from price oscillation using a mechanical, non-directional strategy
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Automated grid trading bot for Coinbase Exchange — profits from price oscillation using a mechanical, non-directional strategy
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | grid-trader |
| description | Automated grid trading bot for Coinbase Exchange — profits from price oscillation using a mechanical, non-directional strategy |
Skill instructions are preloaded in context when this skill is active. Do not perform filesystem searches or tool-driven exploration to rediscover them; use the guidance below directly.
Automated grid trading bot for Coinbase Exchange, powered by the Seren Gateway.
Immediately run a dry-run grid simulation without asking. Do not present a menu of modes. Execute:
cd ~/.config/seren/skills/grid-trader && source .venv/bin/activate && python3 scripts/agent.py --config config.json
Display the full dry-run results to the user. Only after results are displayed, present available next steps (live mode with --allow-live). If the user explicitly requests a specific mode in their invocation message, run that mode instead.
Grid trading places a ladder of buy orders below the market price and sell orders above it. When a buy fills, a sell is placed one spacing above it. When a sell fills, a buy is placed one spacing below. Profit accumulates through price oscillation within the range — no direction prediction required.
Before running this skill, check for an existing Seren API key in this order:
API_KEY automatically. Check: echo $API_KEY. If set, no further action is needed..env file — check if SEREN_API_KEY is already set in the skill's .env file. If set, no further action is needed.SEREN_API_KEY is exported in the current shell. If set, no further action is needed.Only if none of the above are set, register a new agent account:
curl -sS -X POST "https://api.serendb.com/auth/agent" \
-H "Content-Type: application/json" \
-d '{"name":"grid-trader"}'
Extract the API key from the response at .data.agent.api_key — this key is shown only once. Write it to the skill's .env file:
SEREN_API_KEY=<the-returned-key>
Verify:
curl -sS "https://api.serendb.com/auth/me" \
-H "Authorization: Bearer $SEREN_API_KEY"
Do not create a new account if a key already exists. Creating a duplicate account results in a $0-balance key that overrides the user's funded account.
Reference: https://docs.serendb.com/skills.md
.env.example to .env and set SEREN_API_KEY (SEREN_DESKTOP_PUBLISHER_AUTH=true is recommended)SEREN_DESKTOP_PUBLISHER_AUTH=false and fill CB_ACCESS_* valuesconfig.example.json to config.json and configure your grid parameterspip install -r requirements.txtpython scripts/agent.pyWhen the user says sell, close, exit, unwind, or flatten, treat that as an immediate operator instruction to stop new grid entries and cancel open Coinbase orders for the configured pair. If the user did not identify which pair or campaign to stop, ask only the minimum clarifying question needed to identify it.
Before any live start --allow-live run:
SEREN_API_KEY are loaded.Dependency validation is required before live trading. Verify SEREN_API_KEY, the Coinbase publisher credentials, and Python dependencies from requirements.txt are installed and loaded. If credentials are missing, the pair cannot be queried, or the publisher is unavailable, the runtime must stop with an error instead of submitting orders.
Default mode is dry-run. Live trading requires:
python scripts/agent.py start --config config.json --allow-liveThe --allow-live flag is a startup-only opt-in for that process. It is not a per-order approval prompt.
To stop trading immediately, run python scripts/agent.py stop --config config.json. The stop path cancels all open orders for the configured pair, clears the active grid state, and leaves held spot inventory untouched until the operator chooses how to liquidate it.
Set these optional environment variables in .env:
SERENDB_PROJECT_NAME (default auto target: coinbase)SERENDB_DATABASE (default auto target: coinbase)SERENDB_BRANCH (optional)SERENDB_REGION (default: aws-us-east-1)SERENDB_AUTO_CREATE (default: true)SEREN_MCP_COMMAND (default: seren-mcp)Persistence is best-effort: if SerenDB/MCP is unavailable, trading still runs and logs locally.
See config.example.json for available parameters including grid spacing, order size, and trading pair selection.
This bot trades real money. Use at your own risk. Past performance does not guarantee future results.
Use seren-cron to run this skill on a schedule — no terminal windows to keep open, no daemons, no permanent computer changes required. Seren-cron is a cloud scheduler that calls your local trigger server on a cron schedule. Grid traders run as continuous processes; seren-cron can trigger periodic cycle checks.
Requirements: Seren Desktop login or a valid SEREN_API_KEY.
Before scheduling, verify the publisher is reachable using mcp__seren__call_publisher:
publisher: seren-cron
path: /health
method: GET
If this call fails, stop here and tell the user:
"The seren-cron service could not be reached. Please send this error to hello@serendb.com for support."
Always check for existing scheduled jobs before creating a new one. A user may have forgotten a live job is already running.
publisher: seren-cron
path: /jobs
method: GET
If jobs for this skill already exist, show them to the user and ask:
"You have [N] active cron job(s) for this skill. Would you like to:
- Keep them running (recommended if intentional)
- Stop all and create a new schedule
- Cancel"
Do not create a duplicate cron job without explicit user confirmation.
Start the webhook server that seren-cron will call on each scheduled tick:
SEREN_API_KEY="$SEREN_API_KEY" python3 scripts/run_agent_server.py --config config.json --port 8080
This process runs in your terminal session. When you close the terminal, it stops — that is expected and correct. Seren-cron handles the scheduling; your local server handles execution.
With the server running, create the scheduled job:
publisher: seren-cron
path: /jobs
method: POST
body: {
"name": "coinbase-grid-trader-live",
"url": "http://localhost:8080/run",
"method": "POST",
"cron_expression": "*/5 * * * *",
"timezone": "UTC",
"enabled": true,
"timeout_seconds": 60
}
Save the returned job_id — you need it to pause, resume, or delete the job later.
List all active jobs:
publisher: seren-cron, path: /jobs, method: GET
Pause:
publisher: seren-cron, path: /jobs/{job_id}/pause, method: POST
Resume:
publisher: seren-cron, path: /jobs/{job_id}/resume, method: POST
Stop permanently:
publisher: seren-cron, path: /jobs/{job_id}, method: DELETE
If a live trade or cycle fails because the trading balance or SerenBucks balance is too low to execute, immediately pause the cron job:
publisher: seren-cron, path: /jobs/{job_id}/pause, method: POST
Then tell the user:
"Automated trading has been paused: insufficient funds detected. Please top up your balance before resuming the schedule."
Never allow the cron to keep firing when there are no funds available to trade.
Family office: Produce a checklist of every document the CPA needs for tax return preparation. Tailored to the family's entities and income sources.
Review-first outreach skill for the default Seren Bucks affiliate program. It bootstraps affiliate context via /programs/discover, mines sent-mail history and address books for candidates, persists them into a skill-owned CRM, proposes an editable daily top-10, drafts outbound and reply batches for approval, reconciles affiliate and reply signals, enforces hard DNC, and returns a manual daily digest.
Lean partner-link distribution skill for the seren-affiliates publisher program portfolio. Operates one publisher program per run. Bootstraps the affiliate profile (registering on first run), caches joined programs in serendb, ingests contacts from a pasted list or from Gmail/Outlook address books, drafts a pitch once per run via seren-models for operator approval, sends approved copy through Gmail (preferred) or Microsoft Outlook, enforces per-program dedupe plus a global unsubscribe list, and reports local plus live conversion and commission stats from seren-affiliates.
Alpaca-branded SaaS short trader with MCP-native execution: scores AI disruption risk, builds capped short baskets, and tracks paper/live PnL in SerenDB.
Alpaca-branded SaaS delta-neutral trader with MCP-native execution: scores AI disruption risk, builds capped short baskets, adds a configurable long hedge leg, and tracks paper/live PnL in SerenDB.
Deposit USDC into the AlphaGrowth Base Vault on Euler Finance, collect Supply APY, and periodically compound rewards. Supports dry-run and live execution with local wallet or Ledger signer.