| Token In → Out | Per Cycle | Cycle | Total Deposited | Status | Actions |
|---|
| When | DCA | Drift | Target → Actual / cycle | Channels |
|---|---|---|---|---|
| Click to load | ||||
| Closed | Token In → Out | Per Cycle | Cycle | Total Deposited | Fee Paid | Export |
|---|
Connect the wallet you used when you originally upgraded. You'll be asked to sign a short message — this is free, off-chain, and does NOT move any funds. We use the signature to prove you own the wallet, then we look up your subscription and bind it to this browser.
UI value wins; Vercel env vars are first-boot fallback only. Edit here and saved values propagate immediately to /api/evm/chains, the OmniSwap quote endpoint, and every new position's stored fee config.
Live or test keys for Pro subscriptions. Admin values here override the Vercel STRIPE_* env vars. Leave any field blank to fall back to env. Secret values are masked after save (last 4 chars shown for verification).
Platform-wide defaults for drift + lifecycle alerts. Each user can override per-position (their per-DCA Drift threshold) and per-channel (their notification matrix in Settings). These are the values that apply when a user has no override.
Untick to hide a card from users. Use for integrations you haven't set up or tested yet. Defaults to all on. Hidden cards never appear in the Wallets or Integrations tabs.
Every task worth doing to grow revenue + traffic and keep the platform healthy. Templated tasks come from the operator plan; check off as you complete them. Custom tasks stay checkable too. Refresh anytime — state persists in platform_settings.
Read-only sweep of every chain × mechanism. Checks each RPC, contract, fee-wallet configuration, and price feed. Catches problems before real users see them — no funds moved, ~15 seconds to run. Doesn't cover actual wallet-signing UX (that needs a real browser).
Back-fill any Jupiter DCAs that exist on-chain for a wallet but never reached our DB. Use when a user signed the DCA tx in Phantom (especially on mobile) but the dApp's follow-up POST never fired — common race when the in-app browser loses JS state during the wallet popup. Reads getProgramAccounts on Jupiter's DCA program, decodes each, and persists under the wallet's existing user_id (or mints a new one). Returns a 24h sign-in URL the wallet owner can use to claim the account on their device.
| User | Fee (USD) |
|---|
| Time | Signature | Status |
|---|
Aggregate platform fees across Solana DCAs, OmniSwap fills, EVM DCAs, and EVM-OmniSwap. USD totals use stable-coin shortcuts (USDC/USDT = $1) and snapshot prices on fills. Native non-USD fees are surfaced separately so the figure honestly reflects USD-priced revenue only.
| # | User ID | USD total | Fills |
|---|
| Time (UTC) | Mech | User | Asset | Fee (native) | Fee (USD) | Ref |
|---|
| User | Token In → Out | Per Cycle | Cycle | Status | Created |
|---|
.env →
STRIPE_SECRET_KEY (sk_test_… or sk_live_…),
STRIPE_PUBLISHABLE_KEY,
STRIPE_PRO_PRICE_ID (create a recurring price in Stripe Dashboard → Products),
STRIPE_WEBHOOK_SECRET.
Webhook URL: https://your-domain/api/subscription/webhook — events:
checkout.session.completed,
customer.subscription.created / updated / deleted / paused / resumed / trial_will_end,
invoice.payment_succeeded / payment_failed / payment_action_required,
customer.source.expiring,
customer.deleted,
charge.dispute.created,
charge.refunded.
| User | Status | Granted | Expires | Reason | By |
|---|
What an active Pro subscription unlocks (left) and the pay-per-use add-ons available on any tier (right). Sourced from bot/features.py — single source of truth for /api/subscription, landing copy, and this reference.
| User | Tier | Status | Source | Stripe Sub | Renews / Expires |
|---|
Autonomous marketing loops. All gated by an enable toggle so a fresh deploy is silent by default. Drip + blog auto-gen are run by Vercel cron; shareable backtest URLs are user-driven (no cron needed).
| When | User | Step |
|---|
| When | Params | Views | URL |
|---|
Signups from /chains/<chain> landing pages and the in-app waitlist modal. Each row = (email, chain) — the highest counts tell us which chain to ship next.
| Chain | Signed up | User ID |
|---|
Daily Certificate Transparency log scan via crt.sh detects newly-registered SSL certs containing our brand keywords (skyyield, omnisell). The free replacement for ChainPatrol-class monitoring at our scale. Allowlisted domains we own (skyyield.io, dca.skyyield.io, etc.) are never flagged.
| Domain | Keyword | First seen | Cert issuer | Status | Actions |
|---|
| ID | Type | Chain | Address / Details | Status | Actions |
|---|
| Solana DCA (Jupiter) | — |
| OmniSwap (Solana, Token-2022) | — |
| EVM DCA (Balmy) | — |
| EVM-OmniSwap (1inch) | — |
| Solana DCA — your tier | — |
| OmniSwap | — |
| EVM DCA | — |
| EVM-OmniSwap | — |
Want occasional updates on what's shipping, market backtests, and Pro feature releases? Drop your email here. Separate from alert delivery — for that, use the Integrations tab.
Untick a cell to silence that alert type on that channel. Default = every wired channel gets every alert. Per-DCA overrides on the DCA's Edit panel take precedence over this.
| Alert | Telegram | Discord | |
|---|---|---|---|
| Drift | |||
| Fill missed (error) | |||
| DCA / OmniSwap complete | |||
| Running low on input |
Create API keys with trade-only permissions. No withdrawals needed.
Click below → tap Start in Telegram → done. We never see your messages; alerts go to your private 1:1 chat with @OmniSell_Bot.
/newbot → follow prompts → copy the bot tokenhttps://api.telegram.org/bot<TOKEN>/getUpdates and copy the chat.idClick below → Discord asks which server + channel → Authorize → done. No copy-paste, no URL juggling.
#general channel is fine. Come back here and click Authorize → pick your new server + #generalWe send from alerts@skyyield.io to your inbox. No Resend signup, no domain verification.
re_... valueapprove(0).
| DCA mode | Non-custodial · classic SPL Tokens only · Jupiter's keepers |
| OmniSwap | Semi-custodial · every Solana token (incl. Token-2022) · our bot |
Recurring on-chain sells across multiple blockchains. Solana live now via Jupiter. Ethereum, Base, Arbitrum, BSC, Polygon, Avalanche & Bitcoin coming soon. Three steps to start:
Ethereum DCA is in active development. Drop your email and we'll ping you the moment it goes live — usually means early-access pricing too.
Pick how you want to acquire the token. Card / bank options route to regulated onramps (KYC handled by the provider). Crypto swap options use your existing balance on this chain.
We only alert once per drift episode — not every cron cycle. After creating, use the 🔔 Snooze button on the bot's row to quiet alerts (24h / 7d / 30d / forever) — handy for a noisy position you want to leave alone.