dexterm-cli 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/agents/src/schema.js +22 -1
- package/dist/packages/agents/src/story.js +11 -2
- package/dist/packages/agents/src/tiers.js +27 -2
- package/dist/packages/agents/src/tools.js +30 -2
- package/dist/packages/autotrade/assets/exit-profile.schema.json +492 -0
- package/dist/packages/autotrade/assets/profiles/moonbag.json +46 -0
- package/dist/packages/autotrade/assets/profiles/runner.json +88 -0
- package/dist/packages/autotrade/assets/profiles/scalp.json +88 -0
- package/dist/packages/autotrade/assets/profiles/swing.json +88 -0
- package/dist/packages/autotrade/assets/strategies/moonbag.json +101 -0
- package/dist/packages/autotrade/assets/strategies/runner.json +101 -0
- package/dist/packages/autotrade/assets/strategies/sample-dip-ladder.json +188 -0
- package/dist/packages/autotrade/assets/strategies/scalp.json +98 -0
- package/dist/packages/autotrade/assets/strategies/swing.json +97 -0
- package/dist/packages/autotrade/assets/strategies/yolo.json +157 -0
- package/dist/packages/autotrade/assets/tapes/yolo-rehearsal.json +1 -0
- package/dist/packages/autotrade/src/account.js +74 -0
- package/dist/packages/autotrade/src/backtest.js +357 -0
- package/dist/packages/autotrade/src/basis-text.js +32 -0
- package/dist/packages/autotrade/src/chat/approvals.js +484 -0
- package/dist/packages/autotrade/src/chat/audit.js +140 -0
- package/dist/packages/autotrade/src/chat/config.js +93 -0
- package/dist/packages/autotrade/src/chat/connector.js +24 -0
- package/dist/packages/autotrade/src/chat/control.js +103 -0
- package/dist/packages/autotrade/src/chat/fake.js +100 -0
- package/dist/packages/autotrade/src/chat/format.js +71 -0
- package/dist/packages/autotrade/src/chat/hub.js +187 -0
- package/dist/packages/autotrade/src/chat/index.js +18 -0
- package/dist/packages/autotrade/src/chat/notify.js +292 -0
- package/dist/packages/autotrade/src/chat/pairing.js +46 -0
- package/dist/packages/autotrade/src/chat/redact.js +48 -0
- package/dist/packages/autotrade/src/chat/secrets.js +99 -0
- package/dist/packages/autotrade/src/chat/service.js +248 -0
- package/dist/packages/autotrade/src/chat/telegram.js +290 -0
- package/dist/packages/autotrade/src/desk-executor.js +188 -0
- package/dist/packages/autotrade/src/engine.js +387 -0
- package/dist/packages/autotrade/src/execution-port.js +97 -0
- package/dist/packages/autotrade/src/fleet-config.js +169 -0
- package/dist/packages/autotrade/src/fleet-control.js +276 -0
- package/dist/packages/autotrade/src/fleet.js +639 -0
- package/dist/packages/autotrade/src/index.js +53 -0
- package/dist/packages/autotrade/src/ledger.js +108 -0
- package/dist/packages/autotrade/src/live-source.js +182 -0
- package/dist/packages/autotrade/src/monitor-daemon.js +715 -0
- package/dist/packages/autotrade/src/monitor.js +190 -0
- package/dist/packages/autotrade/src/ollama-sessions.js +137 -0
- package/dist/packages/autotrade/src/paper-accounts.js +72 -0
- package/dist/packages/autotrade/src/replay.js +198 -0
- package/dist/packages/autotrade/src/runner-config.js +99 -0
- package/dist/packages/autotrade/src/runner.js +872 -0
- package/dist/packages/autotrade/src/safety.js +243 -0
- package/dist/packages/autotrade/src/session.js +269 -0
- package/dist/packages/autotrade/src/sessions.js +503 -0
- package/dist/packages/autotrade/src/store.js +250 -0
- package/dist/packages/autotrade/src/strategy.js +256 -0
- package/dist/packages/autotrade/src/trade-ledger.js +241 -0
- package/dist/packages/autotrade/src/yolo.js +140 -0
- package/dist/packages/cli/assets/claude/analyst-system.md +4 -4
- package/dist/packages/cli/assets/claude/plugin/skills/token-dossier/SKILL.md +1 -1
- package/dist/packages/cli/src/ai-cmd.js +412 -0
- package/dist/packages/cli/src/analyst/backend.js +82 -15
- package/dist/packages/cli/src/analyst/codex.js +14 -9
- package/dist/packages/cli/src/analyst/ollama.js +263 -0
- package/dist/packages/cli/src/analyst/session.js +5 -2
- package/dist/packages/cli/src/app-help-gen.js +44 -8
- package/dist/packages/cli/src/autotrade-cmd/audit.js +57 -0
- package/dist/packages/cli/src/autotrade-cmd/backtest.js +199 -0
- package/dist/packages/cli/src/autotrade-cmd/flatten.js +64 -0
- package/dist/packages/cli/src/autotrade-cmd/fleet.js +397 -0
- package/dist/packages/cli/src/autotrade-cmd/requests.js +79 -0
- package/dist/packages/cli/src/autotrade-cmd/run.js +413 -0
- package/dist/packages/cli/src/autotrade-cmd/stop.js +76 -0
- package/dist/packages/cli/src/autotrade-cmd/strategies.js +198 -0
- package/dist/packages/cli/src/autotrade-cmd/strategy-control.js +174 -0
- package/dist/packages/cli/src/autotrade-cmd/telegram-host.js +101 -0
- package/dist/packages/cli/src/autotrade-cmd.js +168 -0
- package/dist/packages/cli/src/display.js +156 -17
- package/dist/packages/cli/src/doctor.js +62 -3
- package/dist/packages/cli/src/export.js +10 -2
- package/dist/packages/cli/src/index.js +1 -1
- package/dist/packages/cli/src/ledger-cmd.js +288 -0
- package/dist/packages/cli/src/live/chart-fills.js +46 -0
- package/dist/packages/cli/src/live/index.js +23 -89
- package/dist/packages/cli/src/live/screens/token-live.js +9 -6
- package/dist/packages/cli/src/live/trade.js +12 -457
- package/dist/packages/cli/src/live/watchlist.js +1 -1
- package/dist/packages/cli/src/main.js +147 -190
- package/dist/packages/cli/src/mcp-cmd.js +7 -1
- package/dist/packages/cli/src/plan-cmd.js +1 -1
- package/dist/packages/cli/src/pnl-app.js +31 -21
- package/dist/packages/cli/src/pnl-card.js +158 -21
- package/dist/packages/cli/src/popup.js +22 -6
- package/dist/packages/cli/src/record-cmd.js +141 -20
- package/dist/packages/cli/src/screens/agent-hud.js +34 -2
- package/dist/packages/cli/src/screens/analyst-session.js +7 -4
- package/dist/packages/cli/src/screens/analyst.js +3 -2
- package/dist/packages/cli/src/screens/autotrade-keys.js +169 -0
- package/dist/packages/cli/src/screens/autotrade-proposals.js +123 -0
- package/dist/packages/cli/src/screens/autotrade-screen.js +725 -0
- package/dist/packages/cli/src/screens/autotrade-ui.js +640 -0
- package/dist/packages/cli/src/screens/autotrade-worker.js +89 -0
- package/dist/packages/cli/src/screens/brain.js +37 -11
- package/dist/packages/cli/src/screens/overlay.js +5 -2
- package/dist/packages/cli/src/screens/plans.js +5 -17
- package/dist/packages/cli/src/screens/pnl-chip.js +9 -8
- package/dist/packages/cli/src/screens/positions.js +6 -28
- package/dist/packages/cli/src/screens/ticket.js +38 -205
- package/dist/packages/cli/src/screens/token.js +3 -3
- package/dist/packages/cli/src/state.js +25 -19
- package/dist/packages/cli/src/telegram-cmd.js +451 -0
- package/dist/packages/cli/src/trade.js +3 -128
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/cli/src/wallet-cmd.js +39 -340
- package/dist/packages/cli/src/wallet-command.js +8 -11
- package/dist/packages/cli/src/widgets.js +0 -12
- package/dist/packages/custom/src/config.js +20 -2
- package/dist/packages/custom/src/schema.js +35 -10
- package/dist/packages/custom/src/workspace.js +3 -3
- package/dist/packages/data/src/basis.js +191 -0
- package/dist/packages/data/src/detail.js +53 -2
- package/dist/packages/data/src/index.js +0 -14
- package/dist/packages/data/src/store.js +14 -5
- package/dist/packages/data/src/trade/agent/paper-desk.js +228 -16
- package/dist/packages/data/src/trade/agent/rendezvous.js +3 -2
- package/dist/packages/data/src/trade/bridge.js +4 -102
- package/dist/packages/data/src/trade/ledger/export.js +101 -0
- package/dist/packages/data/src/trade/ledger/file.js +135 -0
- package/dist/packages/data/src/trade/ledger/fold.js +191 -0
- package/dist/packages/data/src/trade/ledger/index.js +9 -0
- package/dist/packages/data/src/trade/ledger/schema.js +83 -0
- package/dist/packages/data/src/trade/ledger/sources.js +307 -0
- package/dist/packages/data/src/trade/ledger/stats.js +123 -0
- package/dist/packages/data/src/trade/ledger/tags.js +116 -0
- package/dist/packages/data/src/trade/ledger/view.js +51 -0
- package/dist/packages/data/src/trade/plans/index.js +0 -1
- package/dist/packages/data/src/trade/plans/service.js +3 -27
- package/dist/packages/mcp/assets/kb/app-help/autotrade-chat.md +48 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-parallel.md +42 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-runner.md +35 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-stop.md +37 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-strategies.md +35 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-telegram.md +40 -0
- package/dist/packages/mcp/assets/kb/app-help/chart-trade-markers.md +42 -0
- package/dist/packages/mcp/assets/kb/app-help/link-a-wallet.md +4 -10
- package/dist/packages/mcp/assets/kb/app-help/live-trading.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/live-yolo.md +34 -0
- package/dist/packages/mcp/assets/kb/app-help/order-plans.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/price-or-marketcap.md +5 -2
- package/dist/packages/mcp/assets/kb/app-help/screen-analyst.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-autotrade.md +217 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-kol.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-newpairs.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-screener.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-token.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-trending.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-watchlist.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/standing-mandates.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/trade-ledger.md +54 -0
- package/dist/packages/mcp/assets/kb/app-help/use-local-model.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +4 -1
- package/dist/packages/mcp/assets/kb/docs/docs-agents-reading-your-trade-ledger.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-a-local-model-instead.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-backtests-and-their-limits.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-change-a-strategy-by-chat.md +49 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-checking-the-record-of-a-run.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-comparing-them.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-exits-and-wakes.md +76 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-how-a-stop-reaches-the-runner.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-on-the-q-screen.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-one-strategy-or-all-of-them.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-paper-accounts.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-presets.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-running-it-all-day.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-sessions-and-their-limits.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-several-strategies-at-once.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-stopping-it.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-strategies-and-presets.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-autotrade-json-file.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-heartbeat.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-run-file-and-the-heartbeat.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-runner-and-candidate-sessions.md +45 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-each-session-shows-first.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-costs-claude-usage-per-session.md +58 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-is-paper-self-directed.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-which-account-day-caps-and-the-usage-guard.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-your-strategies.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade.md +22 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-markers.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-y-axis.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +4 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +8 -6
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-recorded-history-and-retention.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +3 -3
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-changed-in-0-1-7.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-stopping.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-the-short-version.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-using-a-trading-bot-with-dexterm.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does-not-do.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-another-machine.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-autotrade-on-a-local-model.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-check-your-model-dexterm-ai-probe.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-how-we-checked.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-models-without-tool-calling.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-pick-the-engine-globally-or-per-surface.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-restriction-profiles.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-set-it-up-in-two-minutes.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-troubleshooting.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-runs-on-a-local-model.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-stays-outside-the-model.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-which-model.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-your-own-agent-on-the-local-model.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet-read-only.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +4 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-paper-only-mandates.md +6 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +7 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-safety-model.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-trade-ledger.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-buy-and-sell-markers.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +2 -1
- package/dist/packages/mcp/assets/kb/docs/docs-screens-autotrade-paper.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-brain-view-and-the-pnl-chip.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-approve-one-tap-entries.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-control-the-commands.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-if-something-goes-wrong.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-notify-what-reaches-your-phone.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-set-it-up.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-the-record.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-is.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +4 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-voice.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-1-replay-it-on-your-own-history.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-2-run-it-on-paper.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-3-watch-it-and-stop-it.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-the-rules.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-is.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo.md +26 -0
- package/dist/packages/mcp/assets/kb/entries/autotrade.md +38 -0
- package/dist/packages/mcp/src/app-help.js +1 -1
- package/dist/packages/mcp/src/autotrade-tools.js +944 -0
- package/dist/packages/mcp/src/backtest-requests.js +71 -0
- package/dist/packages/mcp/src/engine/config.js +159 -0
- package/dist/packages/mcp/src/engine/index.js +10 -0
- package/dist/packages/mcp/src/engine/loop.js +101 -0
- package/dist/packages/mcp/src/engine/mcp-client.js +123 -0
- package/dist/packages/mcp/src/engine/ollama.js +258 -0
- package/dist/packages/mcp/src/engine/probe.js +110 -0
- package/dist/packages/mcp/src/engine/reason.js +35 -0
- package/dist/packages/mcp/src/engine/restrictions.js +111 -0
- package/dist/packages/mcp/src/index.js +7 -1
- package/dist/packages/mcp/src/ledger-tools.js +346 -0
- package/dist/packages/mcp/src/paper-agent.js +2 -0
- package/dist/packages/mcp/src/server.js +127 -19
- package/dist/packages/packs/src/backtest.js +3 -1
- package/dist/packages/popup/src/pages/chart-lib.js +134 -21
- package/dist/packages/popup/src/pages/chart.css +9 -0
- package/dist/packages/popup/src/pages/chart.html +3 -1
- package/dist/packages/popup/src/pages/chart.js +104 -7
- package/dist/packages/popup/src/protocol.js +2 -0
- package/dist/packages/popup/src/server.js +4 -0
- package/dist/packages/recorder/src/index.js +2 -0
- package/dist/packages/recorder/src/recorder.js +63 -6
- package/dist/packages/recorder/src/retention.js +100 -0
- package/dist/packages/recorder/src/schema.js +34 -1
- package/dist/packages/recorder/src/ticks.js +237 -0
- package/dist/packages/tui/src/index.js +1 -0
- package/dist/packages/tui/src/keymap.js +21 -1
- package/dist/packages/tui/src/markers.js +219 -0
- package/dist/packages/tui/src/widgets.js +149 -2
- package/package.json +2 -1
- package/dist/packages/data/src/trade/caps.js +0 -323
- package/dist/packages/data/src/trade/executor.js +0 -933
- package/dist/packages/data/src/trade/plans/executor-live.js +0 -220
- package/dist/packages/data/src/trade/rpc-exec.js +0 -229
- package/dist/packages/data/src/trade/signer/client.js +0 -197
- package/dist/packages/data/src/trade/signer/fast-wallet.js +0 -154
- package/dist/packages/data/src/trade/signer/host.js +0 -97
- package/dist/packages/data/src/trade/signer/main.js +0 -121
- package/dist/packages/data/src/trade/signer/probe-builder.js +0 -85
- package/dist/packages/data/src/trade/signer/protocol.js +0 -92
- package/dist/packages/data/src/trade/signer/service.js +0 -400
- package/dist/packages/data/src/trade/signer/sol-usd-feed.js +0 -98
- package/dist/packages/data/src/trade/sol-usd.js +0 -86
- package/dist/packages/data/src/trade/swap-build.js +0 -108
- package/dist/packages/data/src/trade/token-delta.js +0 -201
- package/dist/packages/data/vendor/solana-web3/LICENSE +0 -20
- package/dist/packages/data/vendor/solana-web3/NOTICE.md +0 -13
- package/dist/packages/data/vendor/solana-web3/index.iife.min.js +0 -20
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +0 -42
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +0 -34
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +0 -35
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +0 -33
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +0 -32
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +0 -30
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +0 -31
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +0 -41
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +0 -34
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +0 -37
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +0 -41
package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-order-plans-and-standing-mandates
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › Order plans and standing mandates
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: Order plans and standing mandates
|
|
8
8
|
anchor: order-plans-and-standing-mandates
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#order-plans-and-standing-mandates
|
|
@@ -16,7 +16,6 @@ tags:
|
|
|
16
16
|
- mandates
|
|
17
17
|
- paper
|
|
18
18
|
- trading
|
|
19
|
-
- live
|
|
20
19
|
- safety
|
|
21
20
|
- model
|
|
22
21
|
confidence: high
|
|
@@ -29,7 +28,7 @@ sources:
|
|
|
29
28
|
date: 2026-10-16
|
|
30
29
|
---
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
Labelled **in progress**: the engine, the typed and spoken proposal paths, the `O` screen, the popup and the audit journal are on main, and every plan fills on **paper**. There is no live fire path: plans never sign or send anything.
|
|
33
32
|
|
|
34
33
|
An **order plan** is "buy this coin if it dips to 300k market cap, sell half at 600k, keep the rest as a moon bag", written down once: one entry trigger (market cap or price, below or above, or immediate), a ladder of take-profit tranches (each an above-trigger with a fraction; whatever the fractions leave is the moon bag), an optional stop (a below-trigger, below the entry), slippage and impact ceilings and an expiry (4 h by default, 7 days at most). `dexterm plan propose --mint M --size 20 --entry mc-below:300k --tp mc-above:600k:50% --stop mc-below:150k` writes one; so does saying it to Jarvis (https://dexterm.xyz/docs/voice) or an agent's `propose_order_plan` tool. All three produce the same thing: an **inert proposal** with a SHA-256 hash of its material fields and a plain-language read-back. A proposal fires nothing.
|
|
35
34
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-panic
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › Panic
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: Panic
|
|
8
8
|
anchor: panic
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#panic
|
|
@@ -11,11 +11,8 @@ tags:
|
|
|
11
11
|
- docs
|
|
12
12
|
- paper-trading
|
|
13
13
|
- panic
|
|
14
|
-
- live
|
|
15
|
-
- trading
|
|
16
|
-
- devnet
|
|
17
|
-
- first
|
|
18
14
|
- paper
|
|
15
|
+
- trading
|
|
19
16
|
- safety
|
|
20
17
|
- model
|
|
21
18
|
confidence: high
|
|
@@ -28,4 +25,4 @@ sources:
|
|
|
28
25
|
date: 2026-10-16
|
|
29
26
|
---
|
|
30
27
|
|
|
31
|
-
`/wallet panic` in the app, or `dexterm wallet panic` from any shell, any time: it writes a kill-switch file every
|
|
28
|
+
`/wallet panic` in the app, or `dexterm wallet panic` from any shell, any time: it writes a kill-switch file that every autotrade runner and the paper agent desk re-read on every step, so they halt at once. The only way back is `dexterm wallet resume` in a real terminal: it needs a physical keypress on a TTY and refuses piped input.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-paper-only-mandates
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › Order plans and standing mandates › Paper-only mandates
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: Paper-only mandates
|
|
8
8
|
anchor: paper-only-mandates
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#paper-only-mandates
|
|
@@ -17,7 +17,6 @@ tags:
|
|
|
17
17
|
- standing
|
|
18
18
|
- paper
|
|
19
19
|
- trading
|
|
20
|
-
- live
|
|
21
20
|
- safety
|
|
22
21
|
- model
|
|
23
22
|
confidence: high
|
|
@@ -30,12 +29,12 @@ sources:
|
|
|
30
29
|
date: 2026-10-16
|
|
31
30
|
---
|
|
32
31
|
|
|
33
|
-
`dexterm mandate draft --paper` drafts a **paper-only** mandate for agent paper trading (https://dexterm.xyz/docs/agents#agent-paper-trading). It has its own, higher paper ceilings ($10,000 total, $2000 per trade, $2000 per coin, $10,000 daily loss, 10% price impact) so an agent can practise at a realistic size, and it still needs your physical keypress to arm. Only the agent paper desk reads it: the plan engine refuses to arm a plan into it, fire a plan under it or run copy trading through it,
|
|
32
|
+
`dexterm mandate draft --paper` drafts a **paper-only** mandate for agent paper trading (https://dexterm.xyz/docs/agents#agent-paper-trading). It has its own, higher paper ceilings ($10,000 total, $2000 per trade, $2000 per coin, $10,000 daily loss, 10% price impact) so an agent can practise at a realistic size, and it still needs your physical keypress to arm. Only the agent paper desk reads it: the plan engine refuses to arm a plan into it, fire a plan under it or run copy trading through it, and every other mandate keeps the ceilings above. The agent still gets a quarter of its per-trade cap, and every fill is priced on a live quote, so a bigger simulated size pays its real price impact.
|
|
34
33
|
|
|
35
|
-
**Arming** a plan under a mandate is the only step that lets anything fire, and it is a physical gesture: a key held at the terminal on the `O` screen (`a`) or `dexterm plan arm <id> --mandate <id>` on a real TTY, which refuses a pipe or a subprocess. The gesture proof is bound to the plan hash, single-use and expiring, so an edited plan voids every earlier confirmation. Once armed, a monitor fed by the prices the terminal already shows (the screener rows, the watchlist, the open token; never fixture data) fires the entry, each take-profit tranche and the stop **only inside the armed plan and only through the executor**, which re-checks the mandate caps
|
|
34
|
+
**Arming** a plan under a mandate is the only step that lets anything fire, and it is a physical gesture: a key held at the terminal on the `O` screen (`a`) or `dexterm plan arm <id> --mandate <id>` on a real TTY, which refuses a pipe or a subprocess. The gesture proof is bound to the plan hash, single-use and expiring, so an edited plan voids every earlier confirmation. Once armed, a monitor fed by the prices the terminal already shows (the screener rows, the watchlist, the open token; never fixture data) fires the entry, each take-profit tranche and the stop **only inside the armed plan and only through the paper executor**, which re-checks the mandate caps and the panic marker on every fill. `dexterm plan amend <id> --size 25 --entry mc-below:280k` edits a **proposed** plan: the edit is a new plan with a new hash, the old proposal is superseded and every earlier confirmation is void, so arming it is a new keypress; an armed plan cannot be edited (cancel it first). Cancel (`c`), revoke (`r`) and panic (`!`, or `dexterm wallet panic`) stop a plan at once; nothing resumes a paused plan without a new keypress.
|
|
36
35
|
|
|
37
|
-
Two **confirmation tiers** beyond the keypress exist in the model and are off by default: `ptt-held` (push-to-talk held while you speak the confirmation) fires at 0.5× the per-trade cap and `hands-free` at 0.25×, and neither can arm a mandate or a batch. Turning hands-free on is the only "less safe" switch in dexterm: `G` on the `O` screen raises a prompt that says so, it is accepted by a keypress only (a spoken
|
|
36
|
+
Two **confirmation tiers** beyond the keypress exist in the model and are off by default: `ptt-held` (push-to-talk held while you speak the confirmation) fires at 0.5× the per-trade cap and `hands-free` at 0.25×, and neither can arm a mandate or a batch. Turning hands-free on is the only "less safe" switch in dexterm: `G` on the `O` screen raises a prompt that says so, it is accepted by a keypress only (a spoken or agent "yes" is refused), it is journaled, it expires after 24 h and `G` again restores the gate.
|
|
38
37
|
|
|
39
38
|
The **journal** (`~/.dexterm/plans.journal`) is append-only and hash-chained; every proposal, arm, fire, fill, cancel, revoke, gate change and refusal is a row, `dexterm plan journal --verify` recomputes the chain and `--export` dumps it, and it is the source the service recovers from after a crash. The popup is a read-only HUD fed view models only (never a key, a secret or an arm capability); its single write is "cancel this plan", re-validated at the server allow-list and again at the terminal.
|
|
40
39
|
|
|
41
|
-
What is proven, on fixtures and a fake clock: the north-star plan fills end to end on the paper executor; a replayed price stream fires each leg once; and a compromised-model suite shows that spoken text, agent text, a forged proof, a replayed proof, a widened mandate and an edited plan with an old confirmation all fail to arm, raise a cap, widen a mandate, resume a paused plan, accept the risk prompt
|
|
40
|
+
What is proven, on fixtures and a fake clock: the north-star plan fills end to end on the paper executor; a replayed price stream fires each leg once; and a compromised-model suite shows that spoken text, agent text, a forged proof, a replayed proof, a widened mandate and an edited plan with an old confirmation all fail to arm, raise a cap, widen a mandate, resume a paused plan, or accept the risk prompt.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-pnl-cards
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › PnL cards
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: PnL cards
|
|
8
8
|
anchor: pnl-cards
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#pnl-cards
|
|
@@ -14,7 +14,6 @@ tags:
|
|
|
14
14
|
- cards
|
|
15
15
|
- paper
|
|
16
16
|
- trading
|
|
17
|
-
- live
|
|
18
17
|
- safety
|
|
19
18
|
- model
|
|
20
19
|
confidence: high
|
|
@@ -27,11 +26,12 @@ sources:
|
|
|
27
26
|
date: 2026-10-16
|
|
28
27
|
---
|
|
29
28
|
|
|
30
|
-
`H` on a token, on the positions screen (`P`) or on the followed-wallets screen (`U`) opens a preview of a **PnL card** for a coin you have fills for: ticker and image,
|
|
29
|
+
`H` on a token, on the positions screen (`P`) or on the followed-wallets screen (`U`) opens a preview of a **PnL card** for a coin you have fills for: ticker and image, entry and exit as the coin's **market cap** (or the mark for an open position), the PnL %, hold time, size, the dates, and a dexterm footer. It is saved as a 1200×675 PNG (the X card size), a 1080×1080 PNG and a text file in `~/.dexterm/exports/`.
|
|
31
30
|
|
|
32
|
-
- **The stamp cannot be removed.** A card says where its numbers came from: **PAPER** (the simulated wallet, no real funds)
|
|
31
|
+
- **The stamp cannot be removed.** A card says where its numbers came from: **PAPER** (the simulated wallet, no real funds) or **TRACKED WALLET** (a followed wallet's public history, read-only). The stamp is a solid block, the frame colour and a repeating strip, and no option hides it.
|
|
33
32
|
- **Numbers come only from the records.** The PnL is computed from the fills, net of fees (realized for a closed position; realized plus unrealized at the latest price mark for an open one, which waits for a mark). You cannot type a number into a card. Each card prints its time window, the fee basis, what it leaves out (a tracked wallet's token-to-token swaps, transfers or airdrops) and the age of its data.
|
|
34
|
-
- **
|
|
33
|
+
- **Market cap or price.** When dexterm knows the coin's supply, entry and exit are shown as market cap: the average fill price times the supply, never a quoted market cap. The supply is the coin's recorded FDV ÷ price, or pump.fun's fixed 1 billion for a pump.fun coin. The card names that source and the USD rate it used (the current SOL price for a paper or tracked card). Exit is the **blended** average of every sell; with two or more sells, the **last sell** gets its own row. `m` in the preview switches to the SOL price per token and back. A coin with no known supply stays on the price view, and the card says why.
|
|
34
|
+
- **Private by default.** The wallet address is hidden, and the size shows as a band (`0.5-1 SOL`). `a` shows the wallet, `z` the exact size; no balance or key is ever on a card.
|
|
35
35
|
- **Sharing is yours.** `x` saves the card, copies the image to the clipboard where your OS allows it (macOS; Linux with `wl-copy` or `xclip`) and opens X's compose page in your browser with a short neutral text (the stamp in words, no coin and no numbers). You paste the image and post. dexterm does not post, has no X credentials for this and sends nothing. `t` copies the text version, `s` only saves; `f` flips 16:9 and 1:1, `←`/`→` move between coins, `esc` closes.
|
|
36
36
|
|
|
37
|
-
A card shows one position's own fills. It is not a track record, and trading
|
|
37
|
+
A card shows one position's own fills. It is not a track record, and paper trading is not a result; the footer says so, along with "not financial advice".
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-paper-trading-the-safety-model
|
|
3
|
+
title: Paper trading and the safety model › The safety model
|
|
4
|
+
kind: docs
|
|
5
|
+
page: paper-trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
|
+
heading: The safety model
|
|
8
|
+
anchor: the-safety-model
|
|
9
|
+
url: https://dexterm.xyz/docs/paper-trading#the-safety-model
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- paper-trading
|
|
13
|
+
- safety
|
|
14
|
+
- model
|
|
15
|
+
- paper
|
|
16
|
+
- trading
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/paper-trading.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
These are the invariants; hold us to them:
|
|
28
|
+
|
|
29
|
+
1. **No custody.** dexterm holds no private key, has no trading wallet and has no signing code. The Phantom link stores only your public key, from a signed message.
|
|
30
|
+
2. **Nothing is sent.** dexterm builds no transaction and sends none. Every ticket, plan, autotrade run and agent fill is paper.
|
|
31
|
+
3. **Keypress gate on by default.** Models and voice create proposals; arming a plan or confirming a ticket needs a physical keypress. Opting out, if ever offered, needs an explicit "this is less safe" confirmation and is local, logged and reversible.
|
|
32
|
+
4. **The AI has no trading interface.** No build, sign or send tool exists for the model. Its write-shaped tools are paper only: `open_ticket` opens a PAPER ticket, and (only if you start `--agent-paper` on a mandate you armed) an agent you connected can use the `paper_*` tools to book the **simulated** ledger inside that mandate. A registry test enumerates every MCP tool and fails if any could reach a signing or sending path.
|
|
33
|
+
|
|
34
|
+
> warn: paper results are not predictive. Paper fills take the quote at its word; a real fill pays real slippage, priority fees and failed transactions, and most memecoins go to zero. Nothing here is financial advice.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-the-ticket
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › The ticket
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: The ticket
|
|
8
8
|
anchor: the-ticket
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#the-ticket
|
|
@@ -13,7 +13,6 @@ tags:
|
|
|
13
13
|
- ticket
|
|
14
14
|
- paper
|
|
15
15
|
- trading
|
|
16
|
-
- live
|
|
17
16
|
- safety
|
|
18
17
|
- model
|
|
19
18
|
confidence: high
|
|
@@ -26,6 +25,6 @@ sources:
|
|
|
26
25
|
date: 2026-10-16
|
|
27
26
|
---
|
|
28
27
|
|
|
29
|
-
`B` or `S` on a token opens a buy or sell ticket. It shows the side, the size (SOL or % of balance when buying; % of the position when selling), slippage in bps, and a rolling Jupiter quote refreshed every (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-ticket; app-help has the exact keys and commands) s while you edit: what you pay, what you receive, price in SOL and USD, price impact (as a percent; Jupiter reports a 0..1 fraction and the app converts it once), the simulated fee, the route and the minimum received. Keys: digits type, `tab` switches field, `←`/`→` flips the side, `u` toggles the unit, `⏎` reviews, `esc` cancels
|
|
28
|
+
`B` or `S` on a token opens a buy or sell ticket. It shows the side, the size (SOL or % of balance when buying; % of the position when selling), slippage in bps, and a rolling Jupiter quote refreshed every (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-ticket; app-help has the exact keys and commands) s while you edit: what you pay, what you receive, price in SOL and USD, price impact (as a percent; Jupiter reports a 0..1 fraction and the app converts it once), the simulated fee, the route and the minimum received. Keys: digits type, `tab` switches field, `←`/`→` flips the side, `u` toggles the unit, `⏎` reviews, `esc` cancels. Token amounts are shown as quantities, so a small buy of an expensive token reads `0.0144 AVGOx`, never `0`; until the token's decimals are known the ticket says so instead of printing a guess.
|
|
30
29
|
|
|
31
30
|
The **confirm gate** is on by default. `⏎` arms the order; `y` (or `⏎` again) confirms. For a notional above (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-ticket; app-help has the exact keys and commands) SOL you must type the size back digit for digit before the confirm counts. Any other key during the confirm step cancels the arm: a stray key can never confirm, and `q` or a screen number cannot navigate out from under an armed order. The fill is computed from a **fresh quote at confirm time**, never from the quote on screen, and is booked into the paper wallet in one SQLite transaction. If Jupiter rate-limits during the confirm the ticket says so, retries for up to 8 s, then lands in an error state you can retry or cancel; it never hangs.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-paper-trading-the-trade-ledger
|
|
3
|
+
title: Paper trading and the safety model › The trade ledger
|
|
4
|
+
kind: docs
|
|
5
|
+
page: paper-trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
|
+
heading: The trade ledger
|
|
8
|
+
anchor: the-trade-ledger
|
|
9
|
+
url: https://dexterm.xyz/docs/paper-trading#the-trade-ledger
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- paper-trading
|
|
13
|
+
- trade
|
|
14
|
+
- ledger
|
|
15
|
+
- paper
|
|
16
|
+
- trading
|
|
17
|
+
- safety
|
|
18
|
+
- model
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/paper-trading.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
`dexterm ledger` puts every trade dexterm booked in one table: the paper ticket, the agent paper desk and autotrade runs. One row is one round trip: the strategy and its version, the **exit profile** and entry reason the trade was opened with, the **exit reason**, size and share of the book, entry and exit as price and **market cap**, fees, hold time, the best and worst move while held (MFE / MAE, from the fills), and whether it rugged. Every row dexterm books is PAPER.
|
|
30
|
+
|
|
31
|
+
- `dexterm ledger trades` lists them, newest first; `positions` shows what is open.
|
|
32
|
+
- `dexterm ledger summary` gives the win rate with its 95% interval, P/L, profit factor, max drawdown, rug rate and hold time, broken down by profile, exit reason, strategy, source and mode. `equity` draws the realized equity curve.
|
|
33
|
+
- `dexterm ledger compare` puts strategy versions side by side, which is how you read strategies you forward-test in parallel.
|
|
34
|
+
- `dexterm ledger export csv|json|parquet-lite` writes the rows out for your own spreadsheet or notebook.
|
|
35
|
+
- `dexterm ledger card <tradeId>` makes a PnL card (https://dexterm.xyz/docs/paper-trading#pnl-cards) from a ledger row, with market cap at entry and exit.
|
|
36
|
+
- Filters: `--source`, `--mode`, `--strategy id[@version]`, `--profile`, `--exit`, `--mint`, `--run`, `--account`, `--days`, `--status`. `--account ID` keeps the trades of the strategies on one paper account (https://dexterm.xyz/docs/autotrade#paper-accounts); the export has an `account` column.
|
|
37
|
+
|
|
38
|
+
**Declared, not guessed.** An agent declares its exit profile when it buys and its exit reason when it sells, as typed fields on the paper desk (or a PROFILE / EXIT line), and the ledger shows where each tag came from: declared with the fill, from an exit rule, from a tag line, declared later, or missing. Undeclared trades are counted, not filled in.
|
|
39
|
+
|
|
40
|
+
**Your file, append-only.** Reads never write. `dexterm ledger sync` appends what the sources hold to `~/.dexterm/ledger/trades.jsonl`, where every line is sha256-chained to the one before; `dexterm ledger verify` recomputes the chain and names the first edited line, and an edited file is never appended to. No network, no model, no key.
|
|
41
|
+
|
|
42
|
+
PAPER rows are simulated. A small number of trades says little, and the summary says so. Not financial advice.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-the-wallet
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › The wallet
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: The wallet
|
|
8
8
|
anchor: the-wallet
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#the-wallet
|
|
@@ -13,7 +13,6 @@ tags:
|
|
|
13
13
|
- wallet
|
|
14
14
|
- paper
|
|
15
15
|
- trading
|
|
16
|
-
- live
|
|
17
16
|
- safety
|
|
18
17
|
- model
|
|
19
18
|
confidence: high
|
|
@@ -29,6 +28,6 @@ date: 2026-10-16
|
|
|
29
28
|
- starts at (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-wallet; app-help has the exact keys and commands) SOL (configurable), persisted in the same SQLite file as the cache and watchlist (`--db`; `:memory:` for a throwaway session);
|
|
30
29
|
- books every fill append-only with the simulated fee (5 000 lamports per fill, labelled as a simulation);
|
|
31
30
|
- marks positions from DexScreener's USD price over the live SOL price every (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-wallet; app-help has the exact keys and commands) s on the positions screen;
|
|
32
|
-
- shows a `◈ POSITION · PAPER` row under the chart on any token you hold, and the same row plus entry line and fill markers in the chart popup (https://dexterm.xyz/docs/popup-chart).
|
|
31
|
+
- shows a `◈ POSITION · PAPER` row under the chart on any token you hold, and the same row plus entry line and fill markers in the chart popup (https://dexterm.xyz/docs/popup-chart).
|
|
33
32
|
|
|
34
|
-
The analyst can open a PAPER ticket for you (`open_ticket`, pre-filled, editing phase) when you ask it to buy or sell. It cannot size it past what you typed, arm it
|
|
33
|
+
The analyst can open a PAPER ticket for you (`open_ticket`, pre-filled, editing phase) when you ask it to buy or sell. It cannot size it past what you typed, arm it or confirm it; it tells you to confirm yourself.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading-trade-moments
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model › Trade moments
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
heading: Trade moments
|
|
8
8
|
anchor: trade-moments
|
|
9
9
|
url: https://dexterm.xyz/docs/paper-trading#trade-moments
|
|
@@ -14,7 +14,6 @@ tags:
|
|
|
14
14
|
- moments
|
|
15
15
|
- paper
|
|
16
16
|
- trading
|
|
17
|
-
- live
|
|
18
17
|
- safety
|
|
19
18
|
- model
|
|
20
19
|
confidence: high
|
|
@@ -27,6 +26,6 @@ sources:
|
|
|
27
26
|
date: 2026-10-16
|
|
28
27
|
---
|
|
29
28
|
|
|
30
|
-
The cyberspace look reacts to a trade, but only to its **result**. A confirmed buy fires a green shockwave from the ticket with coins streaming up; a profitable sell a gold burst and gold rain; a loss red static that collapses down the screen (no shake, no mockery); a
|
|
29
|
+
The cyberspace look reacts to a trade, but only to its **result**. A confirmed buy fires a green shockwave from the ticket with coins streaming up; a profitable sell a gold burst and gold rain; a loss red static that collapses down the screen (no shake, no mockery); and a refused or failed order a red lockout flicker in the bands. Normal and fever tiers differ in length and density; `--calm` shows none of it and the result card still lands at once; any key skips a running moment.
|
|
31
30
|
|
|
32
|
-
Two things are mechanical, not conventions. **Only a settled outcome can fire a moment:** the ticket reports exactly one outcome per booked paper fill
|
|
31
|
+
Two things are mechanical, not conventions. **Only a settled outcome can fire a moment:** the ticket reports exactly one outcome per booked paper fill or failure, and the effects engine refuses anything without a confirmed-or-failed status; a quote or an armed order fires nothing, and a test checks the one call site. **The ticket is shielded:** every cell of the ticket and the PAPER banner is marked off-limits on the cell buffer, so rain, glitch, datamosh, scanlines and the moments cannot write a glyph, a colour or a background into it in any phase (tested byte-identical against a calm render at 176, 120 and 90 columns). `--sound` (or `DEXTERM_SOUND=1`) adds short synthesized cues after the same outcome: a buy chirp, a sell sweep then a chime or a thud, a buzz on a failure. Muted by default; the WAVs are written once to `~/.dexterm/sounds` and played detached so the render loop never waits.
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: docs-paper-trading
|
|
3
|
-
title: Paper trading
|
|
3
|
+
title: Paper trading and the safety model
|
|
4
4
|
kind: docs
|
|
5
5
|
page: paper-trading
|
|
6
|
-
page_title: Paper trading
|
|
6
|
+
page_title: Paper trading and the safety model
|
|
7
7
|
url: https://dexterm.xyz/docs/paper-trading
|
|
8
8
|
tags:
|
|
9
9
|
- docs
|
|
10
10
|
- paper-trading
|
|
11
11
|
- paper
|
|
12
12
|
- trading
|
|
13
|
-
- live
|
|
14
13
|
- safety
|
|
15
14
|
- model
|
|
16
15
|
confidence: high
|
|
@@ -23,10 +22,10 @@ sources:
|
|
|
23
22
|
date: 2026-10-16
|
|
24
23
|
---
|
|
25
24
|
|
|
26
|
-
The PAPER ticket, the simulated wallet, the confirm gate
|
|
25
|
+
The PAPER ticket, the simulated wallet, the confirm gate, order plans on paper, PnL cards and the trade ledger. dexterm holds no key and signs nothing.
|
|
27
26
|
|
|
28
27
|
Trading in dexterm is **PAPER by default**: a simulated wallet priced from live, keyless Jupiter quotes. Nothing is signed, no key is held, no transaction is sent, and the paper code imports no wallet or signing library of any kind. Every ticket and positions frame says so in a banner that is never hidden.
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
dexterm has no live trading path of its own: it holds no key, has no trading wallet and builds or sends no transaction. Live trading happens in a Telegram trading bot of your choice; see Live trading (https://dexterm.xyz/docs/live-trading).
|
|
31
30
|
|
|
32
31
|
PAPER positions on sample data
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-popup-chart-buy-and-sell-markers
|
|
3
|
+
title: Popup chart › Buy and sell markers
|
|
4
|
+
kind: docs
|
|
5
|
+
page: popup-chart
|
|
6
|
+
page_title: Popup chart
|
|
7
|
+
heading: Buy and sell markers
|
|
8
|
+
anchor: buy-and-sell-markers
|
|
9
|
+
url: https://dexterm.xyz/docs/popup-chart#buy-and-sell-markers
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- popup-chart
|
|
13
|
+
- buy
|
|
14
|
+
- sell
|
|
15
|
+
- markers
|
|
16
|
+
- popup
|
|
17
|
+
- chart
|
|
18
|
+
confidence: high
|
|
19
|
+
owner: maintainers
|
|
20
|
+
origin: docs-generated
|
|
21
|
+
reviewed_by: generated@2026-10-16
|
|
22
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
23
|
+
sources:
|
|
24
|
+
- site/content/docs/popup-chart.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Every fill of the coin in your ledgers is marked on the chart: the **paper ledger** (your PAPER trades and an agent's PAPER trades) and the **live ledger** (confirmed real swaps from a linked wallet). Nothing is fetched to draw them, and they show whether or not you still hold the coin.
|
|
29
|
+
|
|
30
|
+
- A buy is a triangle pointing up with `B` under it, its tip on the fill price; a sell points down with `S` above it. **Hollow** triangles (`△ ▽`) are PAPER, **solid** ones (`▲ ▼`) are live, and the colour only adds to that.
|
|
31
|
+
- Each fill sits on the bar whose period contains its time, on every timeframe: switch from 1m to 1h and the markers move to their 1h bars. Two fills of one side in one bar make one marker with a count (`S×2`) at their size-weighted price, so a position sold in three parts shows three sells on 1m and fewer, counted ones on 1h. Zoom far out and neighbouring markers merge the same way, so they never pile up.
|
|
32
|
+
- Hover a marker for its time, price (market cap with the price in brackets on the market cap axis), size in tokens and SOL, and the ledger it came from. A sell that left tokens says `partial`; the one that closed the position says `closed`.
|
|
33
|
+
- While a position is open, the average entry is a dashed line. A closed round trip gets a faint wash from the entry bar to the exit bar (green when it sold above the entry).
|
|
34
|
+
- A fill outside the candles on screen is never moved onto another bar. The legend says how many are off the chart and why: older than the first candle, newer than the last one (the candle feed lags a minute or two), or in a minute with no trades.
|
|
35
|
+
- **MARKERS** in the toolbar, or `k`, turns them off and on for both charts; the terminal saves it as `display.chartMarkers` (see chart markers (https://dexterm.xyz/docs/configuration#chart-markers)). A fill with no recorded USD price is drawn against its bar and says `price not recorded`.
|
|
36
|
+
|
|
37
|
+
Display only: no marker can arm, size, sign or confirm anything.
|
|
@@ -26,6 +26,7 @@ date: 2026-10-16
|
|
|
26
26
|
- candles, line or area; a volume pane; crosshair with the OHLCV, change and indicator values of the bar under it; wheel and pinch zoom, drag pan; auto, log or percent scale; local-time axis.
|
|
27
27
|
- the last-price line, and a dotted **LIVE** price line while the terminal's fast lane is streaming the coin; a `◌ STALE Ns` badge when no tick has arrived for 20 s.
|
|
28
28
|
- buy and sell markers from the trade tape, EMA 9/21, VWAP (anchored to the UTC day), a volume 20-MA, horizontal and trend lines you draw (page memory only; they go when the popup closes).
|
|
29
|
-
-
|
|
29
|
+
- **your own buys and sells** on every timeframe: every fill of the coin from the paper ledger and the live ledger, open position or closed, as BUY and SELL markers (https://dexterm.xyz/docs/popup-chart#buy-and-sell-markers).
|
|
30
|
+
- when you hold a position in the coin: a dashed **AVG ENTRY** line labelled with size and PnL %, STOP and TARGET lines when a ledger sets them, and the same position row the terminal shows under its chart.
|
|
30
31
|
- while an auto mode runs and a position is open (an agent you follow holds a PAPER position, or AI scan mode with your own position), the PnL chip (https://dexterm.xyz/docs/spectator#the-brain-view-and-the-pnl-chip) under the toolbar, with the same fields as the terminal's. It is about the held coin, which need not be the coin on the chart. Display only.
|
|
31
32
|
- the six timeframes are the popup's own. 5m and 15m are derived from the cached 1m base, 4h and 1d from the cached 1h base, so switching costs no fetch; a base the terminal has not fetched yet shows an honest "warming … no extra requests" banner until it lands. **1s is not offered:** the only trade source is a ≤60-trade tape refreshed at most every 20 s, so 1-second bars would be sparse and stale.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-screens-autotrade-paper
|
|
3
|
+
title: Screens tour › Autotrade (paper)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: screens
|
|
6
|
+
page_title: Screens tour
|
|
7
|
+
heading: Autotrade (paper)
|
|
8
|
+
anchor: autotrade-paper
|
|
9
|
+
url: https://dexterm.xyz/docs/screens#autotrade-paper
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- screens
|
|
13
|
+
- autotrade
|
|
14
|
+
- paper
|
|
15
|
+
- tour
|
|
16
|
+
confidence: high
|
|
17
|
+
owner: maintainers
|
|
18
|
+
origin: docs-generated
|
|
19
|
+
reviewed_by: generated@2026-10-16
|
|
20
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
21
|
+
sources:
|
|
22
|
+
- site/content/docs/screens.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
`Q` from anywhere opens AUTOTRADE: your strategies and the presets, a strategy editor that re-validates on every change, a side-by-side compare, backtests and held-out sweeps on your recorded history, and the runner view. `tab` moves between them. Everything on it is paper; nothing on it can switch a strategy to live or touch a wallet. The views and keys are in Autotrade (paper) (https://dexterm.xyz/docs/autotrade#on-the-q-screen).
|
|
@@ -23,4 +23,4 @@ sources:
|
|
|
23
23
|
date: 2026-10-16
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
-
`O` from anywhere opens the order-plans screen: a PLANS / MANDATES tab strip (`tab` flips), each plan on one line with its status tone (proposed, armed, filled, done, cancelled, expired) and the
|
|
26
|
+
`O` from anywhere opens the order-plans screen: a PLANS / MANDATES tab strip (`tab` flips), each plan on one line with its status tone (proposed, armed, filled, done, cancelled, expired) and the plan's read-back of what it will do. `a` on a row opens a hold-to-arm prompt; only a key held at the terminal arms, and the prompt is unreachable from the popup, voice, an agent or piped input. `c` cancels a plan, `r` revokes a mandate, `!` is panic (revoke everything), `M` opens the read-only plans popup, `G` shows the hands-free gate setting (GATE ON by default), and `L` raises the fire-path prompt: a held keypress switches plan fills between PAPER and LIVE · DEVNET · fast wallet (refused while plans are armed, without the signer process, off devnet or without a fast wallet). The header says PAPER unless a fill path is provably live. Plans, mandates, caps and the journal are in order plans and standing mandates (https://dexterm.xyz/docs/paper-trading#order-plans-and-standing-mandates).
|
|
@@ -29,6 +29,8 @@ Everything about one coin: candles (1m to 1d, `1`–`6`), market stats, mint and
|
|
|
29
29
|
|
|
30
30
|
The price badge says **LIVE** only while a fresh on-chain push is flowing for that coin over the fast lane (one WebSocket on its pump.fun bonding curve), otherwise **POLL**. When you hold a PAPER position in the coin a `◈ POSITION · PAPER` row renders under the chart with side, size, value, average entry, price and unrealized PnL.
|
|
31
31
|
|
|
32
|
+
**Your buys and sells on the chart.** Every fill of the coin in your paper ledger and live ledger is marked on its candle: `△B` / `▽S` for PAPER, `▲B` / `▼S` for live, with a count when one candle holds several (each partial sell of a position gets its own marker on a fine timeframe). While a position is open a dashed `avg` line marks the average entry, and a closed round trip gets a faint wash from entry to exit. A fill outside the candles on screen is not moved; the legend says how many are off the chart. See chart markers (https://dexterm.xyz/docs/configuration#chart-markers).
|
|
33
|
+
|
|
32
34
|
**Who holds it.** Once the wallet-intel scan (https://dexterm.xyz/docs/screens#bubble-map) lands (about 1.5 s after the token opens), every row of the HOLDERS panel carries a class read from the chain, never guessed: **POOL** (an AMM / CLMM / DLMM pool vault: Raydium, Orca, Meteora, PumpSwap), **CURVE** (a bonding curve: pump.fun, Meteora DBC for Jupiter Studio and Meteora launches, Raydium LaunchLab), **VAULT** (Meteora dynamic and Alpha vaults), **LOCK** (a Streamflow or Jupiter Lock escrow), **CEX** (seed-list exchange wallet, always *unverified*), **BURN** (the incinerator), **DEV** (the creator), **LINKED** (tied to another top holder by a funder, bundle or transfer rule) and **UNLABELLED** for everything else, including an account of a program dexterm does not list. The class comes from the token account's owner and the owner account's program (the same account lookup the scan already makes, no new request); the constant pool-authority addresses are re-derived in the tests. The single Top 10 holders row then becomes two: **Top 10 ex-pool** drops POOL / CURVE / VAULT / LOCK / BURN owners and is what the colour reads, **Top 10 raw** is what explorers show, so a fresh launch whose curve still holds 70 % no longer reads as a 78 % whale. Unlabelled owners are always counted. When a counted owner holds more than 30 % the panel says so on its first line (`⚠ main risk: UNLABELLED Ab12…Cd34 holds 71.6%`); when the biggest holder is a venue it says which (`· top holder 70.0% is CURVE (Meteora DBC): not counted in ex-pool`). A lock or vault names its escrow and program; dexterm does not decode the unlock schedule yet and says so.
|
|
33
35
|
|
|
34
36
|
When the Snipers and Bundled supply rows have no number they give the reason: `needs Helius key` only when no key is configured, otherwise `Helius paused · r` (rate-limited), `Helius cap today` (the daily credit budget is spent), `history failed · r` (the history call errored) or `no launch txs read`. `r` on the token screen re-runs a scan whose launch window did not land.
|
|
@@ -35,7 +35,7 @@ While the agent is active (it made a call in the last 3 minutes, or it holds a P
|
|
|
35
35
|
|
|
36
36
|
- **REASONING.** The agent's thoughts (from `--spectate-thoughts`) typing in, newest at the bottom, each with its clock time and the phase it was in (`SCANNING`, `VETTING`, `SIZING`, ...). Older lines dim, and long lines are clipped. With no thoughts feed, the header says `dexterm narration · no thoughts feed` and the lines are dexterm's own narration of each call. Lines a demo or stand-in feed marks as scripted (`"demo": true`) carry the coral `claude lines: demo text` tag.
|
|
37
37
|
- **VETTING $COIN.** The checklist for the coin on screen: momentum, liquidity against the $10K floor, tape buys/sells and wallet count, top-10 concentration, mint/freeze authority, LP lock, dev history, LARP flags, the rug heuristic and the verdict. Each box shows the number the app computed and `pass`, `warn`, `fail` or `pending` (pending = that number is not in yet). `◆` marks the checks the agent itself ran.
|
|
38
|
-
- **DATA.** Market cap, price, liquidity, 5m and 1h moves, buy/sell flow and holders, with a candle trace. These are the numbers already on screen; there is no extra fetch.
|
|
38
|
+
- **DATA.** Market cap, price, liquidity, 5m and 1h moves, buy/sell flow and holders, with a candle trace. A `B` or `S` cell on the trace marks the candle of each fill of the coin in your ledgers (the chart markers (https://dexterm.xyz/docs/configuration#chart-markers)). These are the numbers already on screen; there is no extra fetch.
|
|
39
39
|
- **PLAN / POSITION** (while a PAPER ticket or position is open): entry, size, the take-profit and stop the agent *said* (labelled `agent's plan`, or `no stop`), mark PnL in % and paper $, peak, drawdown from the peak, time held, and what it is waiting for. A desk refusal is stamped here.
|
|
40
40
|
- **DECISIONS.** The session log (`rejected DECOY · verdict AVOID`, `entered`, `sold`, `desk refused`) and a scoreboard: `PAPER simulated · vetted · entries · closed · realized SOL`.
|
|
41
41
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-telegram-approve-one-tap-entries
|
|
3
|
+
title: Telegram (your own bot) › Approve: one-tap entries
|
|
4
|
+
kind: docs
|
|
5
|
+
page: telegram
|
|
6
|
+
page_title: Telegram (your own bot)
|
|
7
|
+
heading: Approve: one-tap entries
|
|
8
|
+
anchor: approve-one-tap-entries
|
|
9
|
+
url: https://dexterm.xyz/docs/telegram#approve-one-tap-entries
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- telegram
|
|
13
|
+
- approve
|
|
14
|
+
- one-tap
|
|
15
|
+
- entries
|
|
16
|
+
- own
|
|
17
|
+
- bot
|
|
18
|
+
confidence: high
|
|
19
|
+
owner: maintainers
|
|
20
|
+
origin: docs-generated
|
|
21
|
+
reviewed_by: generated@2026-10-16
|
|
22
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
23
|
+
sources:
|
|
24
|
+
- site/content/docs/telegram.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Approvals are on for a strategy whose `entry.decide` is `"agent+approve"`, and for every strategy after `/approvals on` (or `dexterm telegram approvals on`). Your agent still decides and your strategy still clamps the size; the entry then becomes a **proposal** instead of an order:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
PAPER · PROPOSAL · moonbag v1.0.0 (67fc4c95)
|
|
32
|
+
token "SYM" abcd…wxyz
|
|
33
|
+
buy $20.00 (2.0% of book) @ 0.0001645 · liq $36.6K · impact ~0.40%
|
|
34
|
+
plan: moonbag: cost back at +100%, then a 55% bag trail, out after 7 days, no hard stop
|
|
35
|
+
why (the agent's words, unverified): "Fresh pair 34 min old, buyers 1.6x sellers."
|
|
36
|
+
expires in 90 s · #k3Jd9aQx
|
|
37
|
+
Only these buttons approve. Replies are ignored.
|
|
38
|
+
[Approve] [Half size] [Skip]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **No answer is a skip.** A proposal expires after 90 seconds (set 60 to 120 with `dexterm telegram set expiry`), on your computer's clock. There is no auto-approve.
|
|
42
|
+
- **[Half size]** only ever halves. **[Skip]** skips.
|
|
43
|
+
- **The price is checked again at your tap.** If it moved more than 3 % (never more than the strategy's own slippage), the liquidity fell more than 10 %, or the impact would pass the strategy's cap, the card is re-quoted with fresh numbers and new buttons and you confirm once more. A second move is a skip.
|
|
44
|
+
- **Your limits are checked again at your tap**, against the book as it is then: the size can shrink, or the entry is refused.
|
|
45
|
+
- **One tap, once.** Every button is bound to a one-time code, the proposal's exact numbers, its expiry, your account and your private chat. A double tap, a second device or an old button gets "Already handled"; a forwarded card tapped by someone else, or in a group, is refused.
|
|
46
|
+
- **A kill, a pause or a halt** cancels every open proposal and removes its buttons. If the runner restarts, open proposals expire; they are never brought back.
|
|
47
|
+
- **Exits never wait for chat.** Stops, take-profits, trails and rug exits run on their own, and a [Sell] on `/positions` only ever sells.
|
|
48
|
+
- At most as many proposals are open at once as the strategy allows sessions; the rest are skipped and counted.
|
|
49
|
+
|
|
50
|
+
The order then goes through the paper book with a single-use approval for exactly that order (bound to its hash and the proposal): a different order, a different coin, a bigger size or a second use is refused.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-telegram-control-the-commands
|
|
3
|
+
title: Telegram (your own bot) › Control: the commands
|
|
4
|
+
kind: docs
|
|
5
|
+
page: telegram
|
|
6
|
+
page_title: Telegram (your own bot)
|
|
7
|
+
heading: Control: the commands
|
|
8
|
+
anchor: control-the-commands
|
|
9
|
+
url: https://dexterm.xyz/docs/telegram#control-the-commands
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- telegram
|
|
13
|
+
- control
|
|
14
|
+
- commands
|
|
15
|
+
- own
|
|
16
|
+
- bot
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/telegram.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
The list is closed. Anything else gets the help text.
|
|
28
|
+
|
|
29
|
+
| command | what it does | from chat |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| `/status` | the runner state, strategy, open positions, the day's P/L %, spend, approvals | always |
|
|
32
|
+
| `/positions` | each open position with a [Sell] button | always |
|
|
33
|
+
| `/pause` | no new entries; exits keep running | always |
|
|
34
|
+
| `/resume` | lifts a **pause** | only a pause: never a kill, the panic switch, a loss-limit halt or a guard; those clear on your computer |
|
|
35
|
+
| `/kill` (or `/stop`) | the same as `dexterm autotrade stop`: no new entries, sessions closed, pending orders dropped, exits keep running until nothing is held | always |
|
|
36
|
+
| `/flatten` | stop, then sell every position at its next tick | after a [Yes, flatten] button |
|
|
37
|
+
| `/strategies` | your validated strategies and the presets, marked when `/use` may pick them | always |
|
|
38
|
+
| `/use <strategy>` | switch to another strategy | only to one that is **equal or tighter** than the running one, after a [Yes, switch] button. Any change dexterm cannot rank (a field with no safety rule, or a value it cannot compare) counts as looser, and so do a bigger bankroll and a dip-buying ladder. New entries stop at once; the new strategy starts once the open positions have closed. It never changes paper or live |
|
|
39
|
+
| `/approvals on` | every new entry waits for your tap | always. `off` is local only: `dexterm telegram approvals off` |
|
|
40
|
+
|
|
41
|
+
Never from chat, because no such command exists: live mode, looser caps or strategies, approvals off, resuming after a kill or the panic switch, moving funds.
|
|
42
|
+
|
|
43
|
+
Chat writes the same control file `dexterm autotrade stop` and the AUTOTRADE screen write, so it is a remote control for the runner on your computer and adds no way around its limits. Commands are limited to 10 a minute; `/kill`, `/stop`, `/pause` and `/flatten` are never limited. A command sent while nothing was polling is not acted on when the bot comes back. Commands count only in your private chat, and a forwarded message or one sent through an inline bot is never a command.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-telegram-if-something-goes-wrong
|
|
3
|
+
title: Telegram (your own bot) › If something goes wrong
|
|
4
|
+
kind: docs
|
|
5
|
+
page: telegram
|
|
6
|
+
page_title: Telegram (your own bot)
|
|
7
|
+
heading: If something goes wrong
|
|
8
|
+
anchor: if-something-goes-wrong
|
|
9
|
+
url: https://dexterm.xyz/docs/telegram#if-something-goes-wrong
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- telegram
|
|
13
|
+
- something
|
|
14
|
+
- goes
|
|
15
|
+
- wrong
|
|
16
|
+
- own
|
|
17
|
+
- bot
|
|
18
|
+
confidence: high
|
|
19
|
+
owner: maintainers
|
|
20
|
+
origin: docs-generated
|
|
21
|
+
reviewed_by: generated@2026-10-16
|
|
22
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
23
|
+
sources:
|
|
24
|
+
- site/content/docs/telegram.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
- **Telegram is down, or a message cannot be sent:** the proposal is a skip. Notifications retry. The runner never waits on chat, and your exits are unaffected.
|
|
29
|
+
- **Someone else uses your token** (a webhook appears on the bot, or another program polls it): the bot stops every approval, you are warned on your computer, and every local control keeps working (`dexterm autotrade stop`, the AUTOTRADE screen, `dexterm wallet panic`). Messages from accounts that are not paired get no answer; five in an hour raise a "possible token leak" warning on your computer.
|
|
30
|
+
- **Revoke it:** `dexterm telegram revoke` removes the token from your computer and forgets every paired chat. If the token may have leaked, also send `/revoke` to @BotFather for that bot and run setup again.
|