dexterm-cli 0.1.3 → 0.1.5
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/cli/assets/claude/analyst-system.md +2 -1
- package/dist/packages/cli/src/agent-paper.js +60 -0
- package/dist/packages/cli/src/analyst/backend.js +183 -0
- package/dist/packages/cli/src/analyst/codex.js +301 -0
- package/dist/packages/cli/src/analyst/session.js +9 -2
- package/dist/packages/cli/src/app-help-gen.js +18 -9
- package/dist/packages/cli/src/docs-kb-gen.js +228 -0
- package/dist/packages/cli/src/doctor.js +80 -9
- package/dist/packages/cli/src/index.js +1 -1
- package/dist/packages/cli/src/kb-skill-cmd.js +3 -0
- package/dist/packages/cli/src/larp-detected.js +209 -0
- package/dist/packages/cli/src/live/dev-history.js +99 -0
- package/dist/packages/cli/src/live/newpairs.js +12 -0
- package/dist/packages/cli/src/live/screens/token-live.js +11 -1
- package/dist/packages/cli/src/live/token.js +39 -1
- package/dist/packages/cli/src/main.js +260 -7
- package/dist/packages/cli/src/mcp-follow.js +255 -0
- package/dist/packages/cli/src/record-cmd.js +2 -0
- package/dist/packages/cli/src/rules.js +25 -2
- package/dist/packages/cli/src/screens/analyst-session.js +5 -3
- package/dist/packages/cli/src/screens/analyst.js +4 -3
- package/dist/packages/cli/src/spectate-cmd.js +14 -3
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/cli/src/x-cmd.js +11 -5
- package/dist/packages/custom/src/rules.js +2 -2
- package/dist/packages/custom/src/schema.js +5 -1
- package/dist/packages/data/src/fixtures.js +28 -6
- package/dist/packages/data/src/index.js +3 -0
- package/dist/packages/data/src/sources/jupiter.js +1 -0
- package/dist/packages/data/src/trade/agent/paper-desk.js +336 -0
- package/dist/packages/data/src/trade/agent/rendezvous.js +161 -0
- package/dist/packages/mcp/assets/kb/app-help/agent-paper-trade.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/ask-the-analyst.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/connect-an-agent.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/dev-history.md +32 -0
- package/dist/packages/mcp/assets/kb/app-help/paper-trade.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +4 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-token.md +1 -0
- package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +4 -1
- package/dist/packages/mcp/assets/kb/app-help/use-codex-analyst.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-capability-tiers-enforced-server-side.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-directory-metadata-prepared-not-submitted.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-install-in-one-command.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-per-agent-mandates.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-recipes.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-red-team-coverage.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-two-ways-to-connect.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-watch-an-agent-work-spectator-view.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-answer-style.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-it-knows-the-app.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-mcp-tools.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-plain-language-filters.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-skills.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-codex-instead-of-claude.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-can-change-three-tiers.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-the-analyst-can-never-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-1-start-dexterm.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-2-open-a-real-coin-by-contract-address.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-3-read-the-safety-panel.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-4-read-the-holder-panel.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-5-optionally-ask-the-analyst.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-6-export-or-share-what-you-see.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-7-quit-safely.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-check-the-installation-with-doctor.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-choose-a-setup-path.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-common-mistakes-and-recovery.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-copy-and-paste-without-surprises.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-data-says-unavailable-stale-or-rate-limited.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-optional-help-is-unavailable.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-paste-does-nothing-or-pastes-twice.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-the-screen-looks-broken.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-you-typed-the-wrong-thing.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-install-node-js-first.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-linux.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-homebrew.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-or-linux-npm.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-open-the-terminal.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-reopen-dexterm-later.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-ten-minute-first-win.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-terminal-shell-prompt-command-output-and-path.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-where-to-go-next.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-expectations.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-powershell-experimental.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-dexterm-help.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-filter-grammar.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-flags.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-invocations.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-presets.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-scan-commands.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-sort-keys.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-subcommands.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-history-recorder.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-packs.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-push-alerts-and-dexterm-watch.md +45 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-rules-engine.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-analyst-s-launch.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-optional-free-rpc-key.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-keymaps.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-look.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-widgets.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-workspaces.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-1-follow-a-wallet-see-what-it-does.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-cache.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-health-registry.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-rate-limits-and-pacing.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-request-budget-meter.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-the-helius-credit-meter.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-dexterm-doctor.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +81 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-next.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-supported-platforms.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-updating.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-global-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-keys-handled-by-the-loop.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-per-screen-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-what-shows.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +53 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-open-link-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-paste-a-coin-on-the-web.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-timestamped-follow-up-drafts.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp.md +24 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-degraded-states-you-will-see.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-free-vs-paid-x-api-tiers-your-bill-your-limits.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-kol-lists-and-the-per-handle-filter.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-tests.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-is-read-and-when.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-you-set-up-once.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-where-the-tokens-live.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-bubble-map-popup.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-build-the-native-window.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-config-dexterm-popup-json.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-docking-macos.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-keys-in-the-popup.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-security-model.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-token-and-feeds-popups.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-cost-control.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-keys-flag-command.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-safety-four-layers.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-states.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-triggers-and-score.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan.md +24 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-canary.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-task-1401-evaluation.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-latest-skill-care-run.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-links-only-larp-baseline-where-it-is-weak.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-not-measured.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-rug-verdict-rules.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-source-and-rebuild.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-1-screener.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-2-new-pairs.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-3-watchlist.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-4-analyst-tab.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-bubble-map.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-coin-images.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-dev-history.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-how-well-it-predicts-measured-held-out.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-live-holder-and-rug-signals.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-paper-ticket-and-positions.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-the-look.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-trending-social-and-kol-lists.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-1-the-agent-activity-window-follow-mode.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-2-the-read-only-stream-spectate.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-3-save-and-replay-record-file-dexterm-spectate.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-quick-start.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-security-model.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-see-also.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-streaming-it.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-what-is-redacted.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-in-app-messages.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-reporting-a-problem.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-doctor.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-it-clarifies-it-never-guesses.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-latency.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-privacy.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-still-unverified.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-the-voice-neural-by-default.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-what-it-can-never-do.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-what-you-can-say.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice.md +25 -0
- package/dist/packages/mcp/src/app-help.js +123 -0
- package/dist/packages/mcp/src/firewall.js +2 -2
- package/dist/packages/mcp/src/index.js +8 -4
- package/dist/packages/mcp/src/paper-agent.js +92 -0
- package/dist/packages/mcp/src/server.js +261 -29
- package/dist/packages/mcp/src/spectator-sink.js +146 -5
- package/dist/packages/mcp/src/user-content.js +1 -0
- package/dist/packages/recorder/src/dev-history.js +129 -0
- package/dist/packages/recorder/src/index.js +1 -0
- package/dist/packages/recorder/src/recorder.js +23 -0
- package/dist/packages/recorder/src/schema.js +11 -0
- package/dist/packages/voice/src/stt/whisper.js +4 -2
- package/package.json +6 -5
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-the-optional-free-rpc-key
|
|
3
|
+
title: Configuration and files on disk › The optional free RPC key
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: The optional free RPC key
|
|
8
|
+
anchor: the-optional-free-rpc-key
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#the-optional-free-rpc-key
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- optional
|
|
14
|
+
- free
|
|
15
|
+
- rpc
|
|
16
|
+
- key
|
|
17
|
+
- files
|
|
18
|
+
- disk
|
|
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/configuration.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
Keyless, the holders panel shows the holder count and the top-10 share from Jupiter; the ranked top-20 list with owner wallets needs a free RPC key (a 2-minute signup with no card at Helius, Alchemy, QuickNode or Ankr). Configure one of:
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
$ mkdir -p ~/.dexterm && printf %s "<your-key>" > ~/.dexterm/helius.key && chmod 600 ~/.dexterm/helius.key
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```sh any read-only RPC URL; the first wins, extras join the rotation pool
|
|
36
|
+
$ export DEXTERM_RPC_URL="https://<provider>/<path>"
|
|
37
|
+
$ export DEXTERM_RPC_URLS="https://rpc-a/...,https://rpc-b/..."
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Resolution order: `DEXTERM_RPC_URL`, else `~/.dexterm/helius.key`, else the public RPC pool. All configured endpoints rotate by health score; a 429 pauses one endpoint (honouring `Retry-After`) and fails over to the next. Every URL in an error, a `--verbose` line or a `--record` file passes a redactor; a recording that still carries a key refuses to save. `dexterm doctor` reports the provider name only, never the key.
|
|
41
|
+
|
|
42
|
+
> warn: never paste a key into a command line argument, a shell history, a chat or a repository. The file above is the only place dexterm reads it from.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-themes-and-keymaps
|
|
3
|
+
title: Configuration and files on disk › Themes and keymaps
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Themes and keymaps
|
|
8
|
+
anchor: themes-and-keymaps
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#themes-and-keymaps
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- themes
|
|
14
|
+
- keymaps
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
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/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
`~/.dexterm/themes/<name>.json` is `{ "extends": "cyberspace", "tokens": { "accent": "#ffb02e", … } }`: a built-in base plus hex overrides. At load every value must be a hex colour, ramps exactly four, unknown tokens are refused, and two semantic checks protect you from a shared theme: a **contrast floor** (text on background, muted on panel, the up / down / warn colours) and an **up / down guard** (`up` must read green/cyan and `down` red/pink by hue, both must carry real colour — an HSL saturation floor — and they must sit a minimum perceptual distance apart, so neither an amber pair nor a near-grey pair can make a loss look like a gain). A theme that fails loads as `paper` with a toast naming the token. `config.theme.overrides` is the same for one-off tokens; `dexterm theme list | show | init <name> | check <name>`.
|
|
28
|
+
|
|
29
|
+
`config.keymap` re-binds the app's actions: `"global": { "screen.watchlist": ["3", "W"] }` and `"screens": { "screener": { "preset.next": ["]"] } }`, chords as `"ctrl+w s"`. Refused by name, whatever the file says: assigning `ctrl+c`, `esc`, `enter`, `y` / `Y` or `!` to anything; changing the keys of quit, back, the alert confirm / dismiss, arm, panic or the gate; two actions on one key within one scope; a chord prefix bound on its own; more than four keys per action. Any error keeps the defaults (a half-applied keymap is worse than none) and names the path. `dexterm keymap [screen]` prints the effective keys with overrides marked `·`; the `?` overlay marks them the same way.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-themes-and-look
|
|
3
|
+
title: Configuration and files on disk › Themes and look
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Themes and look
|
|
8
|
+
anchor: themes-and-look
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#themes-and-look
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- themes
|
|
14
|
+
- look
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
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/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
`--theme cyberspace|midnight|ember|paper` or `t` at runtime. `--intensity off|normal|fever`, `--fps N`, `--no-boot`, `--ascii-rain`, `--tz ZONE` for the header clock (default America/New_York; `local` for the machine zone). Details in the CLI reference (https://dexterm.xyz/docs/cli#flags). User themes join the `t` cycle: see themes and keymaps (https://dexterm.xyz/docs/configuration#themes-and-keymaps).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-widgets
|
|
3
|
+
title: Configuration and files on disk › Widgets
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Widgets
|
|
8
|
+
anchor: widgets
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#widgets
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- widgets
|
|
14
|
+
- files
|
|
15
|
+
- disk
|
|
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/configuration.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
A pack widget is an html page the popup host serves in a loopback HUD window, the same window technology as the popup chart (https://dexterm.xyz/docs/popup-chart). It is the only way third-party UI gets into dexterm, and it is small on purpose: a widget can **receive and render**; it cannot fetch, import, run anything in the terminal process, or send anything but close / focus / drag.
|
|
27
|
+
|
|
28
|
+
- `widgets/<name>/widget.json` declares pages and their topics, a subset of `rows · token · narrative · positions · alerts · theme`: the screener's public columns, the open coin, the narrative board, your positions (symbol, size, PnL), the alert log, the theme. Nothing in a view model names a key, a signer, a cap, a mandate or the gate; pair / source ids and provenance internals are not sent.
|
|
29
|
+
- The window is two documents: the host's own wrapper page (it owns the connection to the terminal, the title strip and the close button) and, inside it, the pack page in a sandboxed frame. The pack page runs under a hash-only CSP: the html is served exactly as installed (nothing is substituted into it, there is no nonce), and every inline `<script>` and `<style>` block runs because its sha256 is in the header — only the text you read before enabling the widget. It has no network of its own at all (no fetch, no socket, no remote scripts, styles, images or fonts), no cookies or storage (an opaque origin), no inline handlers, no eval, no runtime script injection where the engine supports Trusted Types, and no way to navigate anywhere: a document may always navigate itself, which a sandbox alone cannot stop, so the wrapper's `frame-src` names the one document the frame may show and the engine refuses any other before a request exists — the wrapper then closes the widget and logs why. Verified in headless Chromium and WebKit. One kind of connection no content-security directive covers — a `<link rel=preconnect>` built at run time makes WebKit open a bare TCP connection to a host and port the page chose — so the SDK, which runs first in the frame, seals the DOM: the insertion methods, every HTML-parsing entry point (the static `Document.parseHTMLUnsafe` included), `adoptNode` / `importNode`, the element-taking setters and WebRTC are locked on the prototypes before any pack script runs, a click on a link that targets another window (and any form submit) is cancelled before the engine can open a connection for it, a MutationObserver closes the widget if a loader element ever appears anyway, and none of it depends on Trusted Types, which the system WebKit of macOS 14 and 15 lacks (verified inside the real native shell on that WebKit, and in headless Chromium and WebKit with Trusted Types stripped, with a raw TCP sink). Widgets open only in the native popup shell (macOS 14 or newer), whose windows are routed through a loopback sink proxy of the host's as a further backstop for named hosts. A page that carries a loader (`<script src>`, `<link>`, a frame, `<meta http-equiv>`, `@import`, or a `__NONCE__` placeholder) is refused at install, again at open and again when the host issues the window's ticket. A frozen `dexterm` object is injected ahead of the pack markup: `dexterm.on(topic, fn)`, `dexterm.theme` (also CSS variables), `dexterm.close()`, `dexterm.log()`; the frame can say only ready / log / close back, and the terminal's socket accepts nothing but the generic events from a widget.
|
|
30
|
+
- Consent is yours and re-checked: a widget installs disabled; `dexterm pack widget <pack> <name> --enable` after you read the page; at every open the app re-hashes the installed pack and refuses a page edited since. A workspace can list a widget popup (`{ "kind": "widget", "widget": "<pack>/<name>" }`) but cannot enable it.
|
|
31
|
+
- **Beta.** One example widget (`packs/example-widgets`, the MOVERS tiles), a popup window only. The in-process plugin sandbox from the design (terminal columns and panels, host-mediated fetch, per-plugin storage) is not built. API and limits: `packages/popup/WIDGETS.md` in the repo.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-workspaces
|
|
3
|
+
title: Configuration and files on disk › Workspaces
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Workspaces
|
|
8
|
+
anchor: workspaces
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#workspaces
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- workspaces
|
|
14
|
+
- files
|
|
15
|
+
- disk
|
|
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/configuration.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
A workspace is one JSON file, `~/.dexterm/workspaces/<name>.json`: the screen to land on, the theme and intensity, the screener preset / filter / sort, the token-screen panel toggles, optional per-screen pane trees for the layout solver (weights, fixed widths, priorities, what collapses at which width), and the HUD popups to open together. The shipped `default` reproduces the five screens exactly; `morning-hud` is "show me everything": the narrative board, the feeds, order plans and the chart of the selected coin as windows beside the terminal.
|
|
27
|
+
|
|
28
|
+
- In the app: `ctrl+w` then `w` list · `n` / `N` next / previous · `s` save the current layout under a typed name · `m` the morning HUD · `o` open the active workspace's popups · `d` default · `1`–`9` pick a slot. `--workspace <name>` starts in one. The footer shows the active workspace.
|
|
29
|
+
- On the command line: `dexterm workspace list | show <name> | remove <name> | init` (`init` writes `default` as an editable file with the shipped trees).
|
|
30
|
+
- A switch is a UI action and nothing more. It can navigate, re-theme and open the same read-only windows the keys open; it cannot open a ticket, confirm, arm or sign, and a workspace file has no field for any of that (the schema refuses unknown keys by name). Jarvis proposes workspace switches through the same proposal card as everything else.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration
|
|
3
|
+
title: Configuration and files on disk
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
url: https://dexterm.xyz/docs/configuration
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- configuration
|
|
11
|
+
- files
|
|
12
|
+
- disk
|
|
13
|
+
confidence: high
|
|
14
|
+
owner: maintainers
|
|
15
|
+
origin: docs-generated
|
|
16
|
+
reviewed_by: generated@2026-10-16
|
|
17
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
18
|
+
sources:
|
|
19
|
+
- site/content/docs/configuration.md
|
|
20
|
+
date: 2026-10-16
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Environment variables, the files dexterm writes, the optional free RPC key, and how to delete everything.
|
|
24
|
+
|
|
25
|
+
dexterm has no config server, no account and no telemetry. Everything it remembers is in a handful of local files you can read and delete.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-copy-trading-stage-1-follow-a-wallet-see-what-it-does
|
|
3
|
+
title: Copy trading (staged, personal, paper by default) › Stage 1: follow a wallet, see what it does
|
|
4
|
+
kind: docs
|
|
5
|
+
page: copy-trading
|
|
6
|
+
page_title: Copy trading (staged, personal, paper by default)
|
|
7
|
+
heading: Stage 1: follow a wallet, see what it does
|
|
8
|
+
anchor: stage-1-follow-a-wallet-see-what-it-does
|
|
9
|
+
url: https://dexterm.xyz/docs/copy-trading#stage-1-follow-a-wallet-see-what-it-does
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- copy-trading
|
|
13
|
+
- stage
|
|
14
|
+
- follow
|
|
15
|
+
- wallet
|
|
16
|
+
- does
|
|
17
|
+
- copy
|
|
18
|
+
- trading
|
|
19
|
+
- staged
|
|
20
|
+
- personal
|
|
21
|
+
- paper
|
|
22
|
+
- default
|
|
23
|
+
confidence: high
|
|
24
|
+
owner: maintainers
|
|
25
|
+
origin: docs-generated
|
|
26
|
+
reviewed_by: generated@2026-10-16
|
|
27
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
28
|
+
sources:
|
|
29
|
+
- site/content/docs/copy-trading.md
|
|
30
|
+
date: 2026-10-16
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
Press `U` anywhere for the **FOLLOWED WALLETS** screen, or use the shell:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
dexterm follow add <addr> --name "my label"
|
|
37
|
+
dexterm follow list | stats <addr> | trades <addr> | remove <addr> | purge --yes
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- **Your list, your labels.** A label is whatever you type, passed through the prompt firewall (an instruction-shaped label is refused, control characters are stripped, 24 characters at most). dexterm never infers who a wallet is, never scrapes X or Telegram to attribute one, and never exports the list. `purge` deletes every follow and label; the file is `~/.dexterm/follows.json` (mode 600).
|
|
41
|
+
- **Decoded swaps.** The tracker reads the wallet's own recent history (Helius `getTransactionsForAddress`, 10 credits a call, newest first, through the data layer's limiter and credit meter) and classifies each transaction from the wallet's own balances: tokens up and SOL down is a **buy**, tokens down and SOL up a **sell**, tokens moved without a SOL leg a **transfer** (an airdrop is flagged as cost 0), tokens and SOL moving the *same* way is **lp-like** (an LP add or removal, never a swap), and two mints in one transaction is a **token-swap** with no SOL split, so nothing unpriceable is priced. Wrapped SOL is never a mint. The POPCAT recording from the wallet-intel spike is the regression case for the lp-like rule: its busiest launch signer *receives* tokens and SOL together.
|
|
42
|
+
- **Numbers with their sample.** Realised PnL is FIFO by token amount over the history fetched, in SOL exactly and in USD at today's rate (the rate is printed). Fees and tips are inside the SOL leg. Win rate is wins over closed positions and stays hidden under n = 10 (the row shows `n<10 (2/4)`). The early-entry score needs the token's launch-window buyer ranks (a bubble-map scan) and shows `—` with the reason otherwise; it has no "reached 3×" filter yet and says so. Every figure carries `all N txs` or `last N txs only · older history not fetched`.
|
|
43
|
+
- **Alerts, not news.** The first look at a wallet backfills history silently. Only transactions that appear *after* that raise an alert, as a toast anywhere in the app and on the screen's ALERTS tape with the lag between the block and the moment dexterm saw it. Keyless, the tracker is honestly **unavailable** and says how to get the free Helius key; a failed poll shows on the row and the next poll retries.
|
|
44
|
+
|
|
45
|
+
- **Hold time.** The median time from first buy to last sell over the wallet's **closed** positions. A position counts only when both of those trades carry a real block time. Otherwise hold time shows `—` with the reason. It appears in `dexterm follow stats` and the detail view.
|
|
46
|
+
- **Buy and sell alerts, pushed if you want.** A new trade by a followed wallet raises the in-app alert as before. If you have enabled a push channel (https://dexterm.xyz/docs/configuration#push-alerts-and-dexterm-watch) (desktop, your own Telegram bot or Discord webhook), the alert is delivered there too, marked buy or sell and "not a recommendation". This happens only while the dexterm terminal is running: `dexterm watch` runs your rules headless but does not follow wallets. Delivery is read-only: an alert cannot open, arm or sign anything.
|
|
47
|
+
- **Per-wallet detail.** `⏎` on a followed wallet opens its detail view: recent decoded trades, positions, realised PnL, win rate with its n, hold time, early-entry score and open positions. Each figure is labelled with its source (Helius history) and data age. `↑`/`↓` scroll, `⏎` or `esc` close.
|
|
48
|
+
|
|
49
|
+
Nothing on this stage trades. A wallet's past fills say nothing about its next one, and the screen says so.
|
|
50
|
+
|
|
51
|
+
`H` on this screen makes a PnL card (https://dexterm.xyz/docs/paper-trading#pnl-cards) for the selected wallet's coins, stamped **TRACKED WALLET** (read-only observation), with the wallet address hidden unless you show it. To mark an open position it looks up the coin's public decimals and price (the same keyless lookup the mirror ticket uses).
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal
|
|
3
|
+
title: Copy trading (staged, personal, paper by default) › Stage 2: the one-key mirror ticket (a proposal)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: copy-trading
|
|
6
|
+
page_title: Copy trading (staged, personal, paper by default)
|
|
7
|
+
heading: Stage 2: the one-key mirror ticket (a proposal)
|
|
8
|
+
anchor: stage-2-the-one-key-mirror-ticket-a-proposal
|
|
9
|
+
url: https://dexterm.xyz/docs/copy-trading#stage-2-the-one-key-mirror-ticket-a-proposal
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- copy-trading
|
|
13
|
+
- stage
|
|
14
|
+
- one-key
|
|
15
|
+
- mirror
|
|
16
|
+
- ticket
|
|
17
|
+
- proposal
|
|
18
|
+
- copy
|
|
19
|
+
- trading
|
|
20
|
+
- staged
|
|
21
|
+
- personal
|
|
22
|
+
- paper
|
|
23
|
+
- default
|
|
24
|
+
confidence: high
|
|
25
|
+
owner: maintainers
|
|
26
|
+
origin: docs-generated
|
|
27
|
+
reviewed_by: generated@2026-10-16
|
|
28
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
29
|
+
sources:
|
|
30
|
+
- site/content/docs/copy-trading.md
|
|
31
|
+
date: 2026-10-16
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
On a followed wallet, `m` previews a **MIRROR TICKET** for that wallet's latest buy. The preview shows every check and its number:
|
|
35
|
+
|
|
36
|
+
| check | refuses when | why |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| lag | more than 30 s since the leader's block | you are late |
|
|
39
|
+
| drift | the price is more than 5 % above the leader's fill | you are chasing |
|
|
40
|
+
| liquidity | under $25k | you cannot get out |
|
|
41
|
+
| age | the pair is under 60 s old | launch noise |
|
|
42
|
+
| leader sold | the leader has already sold this mint since the buy | they left |
|
|
43
|
+
| leader dev / leader holds | the leader is linked to the dev cluster, or holds more than 5 % of supply (from a bubble-map scan) | they may be distributing to you |
|
|
44
|
+
|
|
45
|
+
Unknown facts are shown as unknown (`?`), never guessed, except decimals: without them the drift cannot be computed and the mirror is refused until the token is open. The size is `min(your cap, k × the leader's size, 1 % of liquidity)`; the cap is $20 per mirror today (the mandate's per-trade cap applies again at arming). `m` again **proposes**: an order plan, buy now, no ladder, 3 % slippage, expiring in 10 minutes, labelled `copy`, that lands on the `O` screen exactly like a typed or spoken plan. It is inert until you hold `a` to arm it into an armed mandate, or approve it in Phantom; nothing on the follows screen can arm.
|
|
46
|
+
|
|
47
|
+
The same mirror ticket works from a shell, for scripts and replays, with the same checks and the same size rule:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
$ dexterm follow mirror <addr> # preview the latest buy's mirror ticket; writes nothing
|
|
51
|
+
$ dexterm follow mirror <addr> --cap 10 --k 1 # preview with your own cap and size factor
|
|
52
|
+
$ dexterm follow mirror <addr> --propose # write it as an INERT proposed order plan on the O screen
|
|
53
|
+
$ dexterm follow mirror <addr> --json # machine-readable preview
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
A refused mirror prints every failed check and exits non-zero. `--propose` writes a plan with status `proposed` and no mandate. The command has no arm, sign or execute path, so the plan can only be armed in the app through the keypress or Phantom gate. A replay test drives a followed wallet's buy through `--propose` and checks that the plan exists, is not armed and that no execute path was reached. This is the copy-trade mirror ticket of the 0.1.3 release (its first copy-trading step in the release notes): **a proposal only. Nothing arms or fires on its own.**
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-copy-trading-stage-3-capped-auto-mirror-default-off-less
|
|
3
|
+
title: Copy trading (staged, personal, paper by default) › Stage 3: capped auto-mirror (default off, less safe)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: copy-trading
|
|
6
|
+
page_title: Copy trading (staged, personal, paper by default)
|
|
7
|
+
heading: Stage 3: capped auto-mirror (default off, less safe)
|
|
8
|
+
anchor: stage-3-capped-auto-mirror-default-off-less-safe
|
|
9
|
+
url: https://dexterm.xyz/docs/copy-trading#stage-3-capped-auto-mirror-default-off-less-safe
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- copy-trading
|
|
13
|
+
- stage
|
|
14
|
+
- capped
|
|
15
|
+
- auto-mirror
|
|
16
|
+
- default
|
|
17
|
+
- off
|
|
18
|
+
- less
|
|
19
|
+
- safe
|
|
20
|
+
- copy
|
|
21
|
+
- trading
|
|
22
|
+
- staged
|
|
23
|
+
- personal
|
|
24
|
+
- paper
|
|
25
|
+
confidence: high
|
|
26
|
+
owner: maintainers
|
|
27
|
+
origin: docs-generated
|
|
28
|
+
reviewed_by: generated@2026-10-16
|
|
29
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
30
|
+
sources:
|
|
31
|
+
- site/content/docs/copy-trading.md
|
|
32
|
+
date: 2026-10-16
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
`A` on a followed wallet raises the **AUTO-MIRROR** prompt. Turning it on is a held physical keypress, and it is refused unless the plan engine's own "this is less safe" popup (`G` on the `O` screen, keypress-only, 24 h expiry) is active. That one gesture drafts and arms a **copy mandate** in the plan engine, the signer trust domain: buy-only, `maxTier: hands-free`, with exactly the policy's caps, clamped to the engine's hard ceilings.
|
|
36
|
+
|
|
37
|
+
Every later buy by that wallet then runs the Stage 2 checks and, if they pass, is proposed and armed automatically with the **weakest confirmation tier**. The engine therefore sizes it at **¼ of the per-trade cap** (the same rule a spoken confirmation gets) and re-checks the per-trade, per-coin, total and daily-loss caps, the allow-list and the panic state at arming and on every fill. On top, the policy keeps a per-wallet **daily cap** (the mandate's total), **max open mirrors**, a **cooldown** between mirrors, a **size factor** against the leader, and an **auto-disarm streak**: that many refused or failed mirrors in a row turn it off.
|
|
38
|
+
|
|
39
|
+
What turns it off, always without a gesture: `A` again; the `!` panic key or `dexterm wallet panic`; restoring the keypress gate; the copy mandate expiring or being revoked; the refusal streak; unfollowing the wallet; and **every restart**, after which a copy mandate the engine recovered as armed is revoked on load. Caps can only be changed while it is off, from the shell:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
dexterm follow auto <addr> --per-trade 20 --daily 100 --max-open 3 --cooldown 60 --k 1 --disarm 3
|
|
43
|
+
dexterm follow auto # list policies and their state
|
|
44
|
+
dexterm follow auto <addr> --off
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Ceilings: $100 per trade, $500 per day, 10 open, a 10 s minimum cooldown, k ≤ 2. Every policy change, enable, disable, proposal, arm and refusal is appended to a hash-chained journal at `~/.dexterm/copy.journal`, next to the plans journal.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-copy-trading-what-is-proven-what-is-not
|
|
3
|
+
title: Copy trading (staged, personal, paper by default) › What is proven, what is not
|
|
4
|
+
kind: docs
|
|
5
|
+
page: copy-trading
|
|
6
|
+
page_title: Copy trading (staged, personal, paper by default)
|
|
7
|
+
heading: What is proven, what is not
|
|
8
|
+
anchor: what-is-proven-what-is-not
|
|
9
|
+
url: https://dexterm.xyz/docs/copy-trading#what-is-proven-what-is-not
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- copy-trading
|
|
13
|
+
- proven
|
|
14
|
+
- copy
|
|
15
|
+
- trading
|
|
16
|
+
- staged
|
|
17
|
+
- personal
|
|
18
|
+
- paper
|
|
19
|
+
- default
|
|
20
|
+
confidence: high
|
|
21
|
+
owner: maintainers
|
|
22
|
+
origin: docs-generated
|
|
23
|
+
reviewed_by: generated@2026-10-16
|
|
24
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
25
|
+
sources:
|
|
26
|
+
- site/content/docs/copy-trading.md
|
|
27
|
+
date: 2026-10-16
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
Proven on fixtures and a fake clock: the decoder on synthetic histories and the three spike recordings; the tracker's backfill-then-alert replay; every mirror refusal and the size rule; the proposal's inertness; the auto path end to end on the paper executor (enable, ¼-size arming, fill, cooldown, max-open, daily cap, the engine's own refusal of a hand-armed extra plan); the kill paths; the restart rule; and a compromised-model suite in which spoken, agent and forged gestures, a spoofed alert, a widened policy and a plan the service did not create all fail to enable, widen or auto-arm anything.
|
|
31
|
+
|
|
32
|
+
Not built or not proven: **mirror-sell** (you close every mirror yourself, so auto-disarm counts refusals and failed fills, not realised losses); an early-entry score with the "reached 3×" filter; a live run against real Helius history on this machine; and any mirror on devnet or mainnet.
|
|
33
|
+
|
|
34
|
+
**Confirmation provenance:** the engine rejects fabricated, copied, modified, cross-engine and reused proof objects. Copy automation receives a private operation scoped to its physically armed mandate; it can create new copy buys, never adopt an existing voice or agent proposal. Automation proofs stay inside the engine. The engine re-checks the less-safe opt-in, mandate lifetime, panic and existing caps. These are in-process checks: the trusted terminal captures physical input; this is not isolation against arbitrary code execution inside that trusted process.
|
|
35
|
+
|
|
36
|
+
Legal posture (flags for counsel, not advice): self-directed only, no custody, no third parties, no fees, no curated leaders, no inferred identities. See legal (https://dexterm.xyz/legal/).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-copy-trading
|
|
3
|
+
title: Copy trading (staged, personal, paper by default)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: copy-trading
|
|
6
|
+
page_title: Copy trading (staged, personal, paper by default)
|
|
7
|
+
url: https://dexterm.xyz/docs/copy-trading
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- copy-trading
|
|
11
|
+
- copy
|
|
12
|
+
- trading
|
|
13
|
+
- staged
|
|
14
|
+
- personal
|
|
15
|
+
- paper
|
|
16
|
+
- default
|
|
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/copy-trading.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Follow a wallet and see its decoded swaps and PnL; turn its buys into a mirror PROPOSAL with one key; or let a capped, keypress-armed auto-mirror propose and arm them for you. Your wallet, your caps, your keys.
|
|
28
|
+
|
|
29
|
+
Copy trading in dexterm is a **personal tool for your own wallet**. You pick the wallets, you set the caps, your own keys sign (or the paper wallet simulates). dexterm never holds funds, never copies for anyone else, never offers pooled or hosted copying, never publishes a leader list, and takes no fee on a mirrored trade. The whole feature is labelled **in progress**: it is on main and tested on fixtures and the task-1286 spike recordings, but no mirror has moved real funds, and the auto tier fires through the paper executor unless the plans fire path is switched to the devnet fast wallet (see the live fire path (https://dexterm.xyz/docs/paper-trading#the-live-fire-path-devnet-the-fast-wallet)).
|
|
30
|
+
|
|
31
|
+
It is built in three stages, each behind the previous one's gate.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources-cache
|
|
3
|
+
title: Data sources and rate limits › Cache
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
heading: Cache
|
|
8
|
+
anchor: cache
|
|
9
|
+
url: https://dexterm.xyz/docs/data-sources#cache
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- data-sources
|
|
13
|
+
- cache
|
|
14
|
+
- data
|
|
15
|
+
- sources
|
|
16
|
+
- rate
|
|
17
|
+
- limits
|
|
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/data-sources.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
A persistent SQLite cache (`node:sqlite`, one table, namespaced) makes a restart or a reopen instant and cheap. The analyst's MCP server reads the same file, so a warm dossier needs no network.
|
|
29
|
+
|
|
30
|
+
(generated from the app: see https://dexterm.xyz/docs/data-sources#cache; app-help has the exact keys and commands)
|
|
31
|
+
|
|
32
|
+
The last rows shown per preset are also snapshotted so a launch paints instantly, marked `cached Nm old · refreshing`.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources-health-registry
|
|
3
|
+
title: Data sources and rate limits › Health registry
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
heading: Health registry
|
|
8
|
+
anchor: health-registry
|
|
9
|
+
url: https://dexterm.xyz/docs/data-sources#health-registry
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- data-sources
|
|
13
|
+
- health
|
|
14
|
+
- registry
|
|
15
|
+
- data
|
|
16
|
+
- sources
|
|
17
|
+
- rate
|
|
18
|
+
- limits
|
|
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/data-sources.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
Every source goes through a health registry: three consecutive failures or two 429s in a minute mark it degraded for a backoff window (30 s, doubling to 10 min). A panel whose source is down shows `unavailable: <reason>` or `needs key`, the header turns `◐ degraded: <source>`, and the analyst's tool list is built from the healthy sources each session. A screen with no data says why instead of hanging: `connecting to the live feed…`, `offline — can't reach the data feed`, `rate-limited — backing off`. Press `r` to retry. Nothing fabricates a number.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources-rate-limits-and-pacing
|
|
3
|
+
title: Data sources and rate limits › Rate limits and pacing
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
heading: Rate limits and pacing
|
|
8
|
+
anchor: rate-limits-and-pacing
|
|
9
|
+
url: https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- data-sources
|
|
13
|
+
- rate
|
|
14
|
+
- limits
|
|
15
|
+
- pacing
|
|
16
|
+
- data
|
|
17
|
+
- sources
|
|
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/data-sources.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
One token bucket per host with the documented limit as the ceiling and a safety factor of (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands); over-budget requests queue and the column header shows `⌛` instead of blocking. Identical in-flight requests share one promise. The chart the user is waiting on takes a high-priority slot that background work (tape, prefetch, refresh) can never consume.
|
|
29
|
+
|
|
30
|
+
(generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands)
|
|
31
|
+
|
|
32
|
+
Refresh cadence, keyless: screener table (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands) s (one DexScreener batch per 30 rows), token screen (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands) s, watchlist (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands) s, positions (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands) s, new pairs push plus a 15 s Jupiter poll and a 30 s RugCheck poll, PAPER quote (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands) s while editing. The fast lane adds zero HTTP requests: it is push, capped at (generated from the app: see https://dexterm.xyz/docs/data-sources#rate-limits-and-pacing; app-help has the exact keys and commands) simultaneous subscriptions (the open token, your watchlist, a few fresh launches); tokens past the cap stay on the polling lane, never dropped.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources-request-budget-meter
|
|
3
|
+
title: Data sources and rate limits › Request budget meter
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
heading: Request budget meter
|
|
8
|
+
anchor: request-budget-meter
|
|
9
|
+
url: https://dexterm.xyz/docs/data-sources#request-budget-meter
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- data-sources
|
|
13
|
+
- request
|
|
14
|
+
- budget
|
|
15
|
+
- meter
|
|
16
|
+
- data
|
|
17
|
+
- sources
|
|
18
|
+
- rate
|
|
19
|
+
- limits
|
|
20
|
+
confidence: high
|
|
21
|
+
owner: maintainers
|
|
22
|
+
origin: docs-generated
|
|
23
|
+
reviewed_by: generated@2026-10-16
|
|
24
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
25
|
+
sources:
|
|
26
|
+
- site/content/docs/data-sources.md
|
|
27
|
+
date: 2026-10-16
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
Every request is counted per source for the session and for the day (persisted), so usage is visible with `--verbose` and in the header. Optional soft daily caps can bound a source.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources-sources
|
|
3
|
+
title: Data sources and rate limits › Sources
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
heading: Sources
|
|
8
|
+
anchor: sources
|
|
9
|
+
url: https://dexterm.xyz/docs/data-sources#sources
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- data-sources
|
|
13
|
+
- sources
|
|
14
|
+
- data
|
|
15
|
+
- rate
|
|
16
|
+
- limits
|
|
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/data-sources.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
| data need | keyless source | free-key upgrade | without it |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| screener pool | DexScreener + Jupiter Tokens v2 | Jupiter free key: 1 rps instead of 0.5 | fully keyless |
|
|
30
|
+
| token market | DexScreener + Jupiter | Jupiter free key: higher rate | fully keyless |
|
|
31
|
+
| candles and chart | GeckoTerminal | none | chart `unavailable` (rare) |
|
|
32
|
+
| trade tape and buy/sell flow | GeckoTerminal tape; DexScreener rolling windows for 5m to 24h | none | tape `unavailable` |
|
|
33
|
+
| mint and freeze authority | public Solana RPC `getAccountInfo` + Jupiter + GoPlus | any free RPC: faster, fewer 429s | Jupiter and GoPlus still answer |
|
|
34
|
+
| top holders | Jupiter aggregate: holder count + top-10 % | any free RPC key (Helius, Alchemy, QuickNode, Ankr): the ranked top-20 list with owners | count and concentration shown; the ranked list says "needs a free RPC key" |
|
|
35
|
+
| security checks | RugCheck + GoPlus | none | one may be `unavailable`, the other covers |
|
|
36
|
+
| new pairs | PumpPortal `subscribeNewToken` + `subscribeMigration`, Jupiter `recent` poll, RugCheck `new_tokens` | Helius: per-curve bonding % | rows from the poll; bonding is a create-time estimate |
|
|
37
|
+
| watchlist prices | DexScreener + Jupiter, persisted in SQLite | Jupiter free key: higher rate | fully keyless |
|
|
38
|
+
| fast-lane live price | public RPC WebSocket `accountSubscribe` on the pump.fun bonding curve, price computed on-chain | free Helius key: lower latency, higher limits (used first) | the polled price (POLL badge) |
|
|
39
|
+
| paper quotes | Jupiter `swap/v1/quote` (quote only; no build, no execute) | Jupiter free key: lower latency | fully keyless |
|
|
40
|
+
| product vetting | the token's own site, RDAP, the GitHub API | none | a claim stays unverifiable |
|
|
41
|
+
| trending board | Jupiter trending and organic-score lists, GeckoTerminal trending pools, DexScreener top boosts (counted against a coin), CoinGecko trending (macro) | none | a failing venue degrades only itself |
|
|
42
|
+
| news | publishers' official RSS: CoinDesk, Cointelegraph, The Block, Decrypt | none | the board works without it |
|
|
43
|
+
| social posts (X) | none keyless: dexterm does not scrape | Login with X (https://dexterm.xyz/docs/login-with-x): your own X app and login read posts about the open coin and from your KOL lists (user-context API, your limits, your bill; the Free tier allows identity only) | the live SOCIAL panel shows on-chain rows and news, and the band says `x-stream ○ logged out` |
|
|
44
|
+
| dev history, snipers, bundles | none keyless (wallet history is not public without an indexer) | Helius | columns dash + `needs Helius`; with a key, a paused or failed read names itself (`Helius paused · r`, `Helius cap today`, `history failed · r`) |
|
|
45
|
+
| holder classes (POOL / CURVE / VAULT / LOCK / CEX / BURN / DEV / LINKED / UNLABELLED) | the owner lookup over any RPC (`getMultipleAccounts`), part of the wallet-intel scan | same | DEV and LINKED need the Helius launch window; the rest work on any RPC that serves the ranked holder list |
|
|
46
|
+
|
|
47
|
+
The ranked holder list is the one real keyless gap: `getTokenLargestAccounts` is throttled or blocked on every keyless endpoint we probed, and Birdeye and Solscan need keys.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources-the-helius-credit-meter
|
|
3
|
+
title: Data sources and rate limits › The Helius credit meter
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
heading: The Helius credit meter
|
|
8
|
+
anchor: the-helius-credit-meter
|
|
9
|
+
url: https://dexterm.xyz/docs/data-sources#the-helius-credit-meter
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- data-sources
|
|
13
|
+
- helius
|
|
14
|
+
- credit
|
|
15
|
+
- meter
|
|
16
|
+
- data
|
|
17
|
+
- sources
|
|
18
|
+
- rate
|
|
19
|
+
- limits
|
|
20
|
+
confidence: high
|
|
21
|
+
owner: maintainers
|
|
22
|
+
origin: docs-generated
|
|
23
|
+
reviewed_by: generated@2026-10-16
|
|
24
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
25
|
+
sources:
|
|
26
|
+
- site/content/docs/data-sources.md
|
|
27
|
+
date: 2026-10-16
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
Helius Free is 1M credits a month, budgeted as (generated from the app: see https://dexterm.xyz/docs/data-sources#the-helius-credit-meter; app-help has the exact keys and commands) a day. Each request is charged (1 credit for standard RPC methods, 10 for DAS-class); the header shows `◐ helius credits N%` from 50% of the day, and at 90%, or at the per-run cap (`--max-credits`, default 5000), Helius switches off for the run and the keyless sources take over. Day totals persist in the SQLite file, so a restart keeps counting.
|