Features
Everything the self-hosted bot did,
minus the release cycle.
Undebt is the same boosting engine, rebuilt as a platform. Here is what that gets you, one piece at a time.
Your Discord bot
A Bot that needs no server
Paste your bot token; we set the interactions and register all commands for you. Nothing in the Developer Portal.
Onboarding is one paste
Give us a bot token and we set the interactions endpoint, register every command and tell you plainly if Discord could not reach us — and why.
Signed, and replayed once at most
Every interaction is verified with Ed25519 and its id recorded before it runs, so the same signed body delivered twice is a 401 rather than a second order.
It answers inside three seconds, always
Anything that needs the network acknowledges first and edits the real answer in, so a slow proxy never becomes “the application did not respond”.
Live order logs
Order logs you can watch
Every token, the exact proxy that carried it, and the outcome — streaming while the order runs. Delivered and failures are listed in full on the order page.
Written as it happens, kept with the order
Not a console window you closed. The log is part of the record, so “what happened on order X7QK2M” has an answer next month too.
A captcha parks a token, it does not lose it
A flagged account is set aside rather than handed straight back to the pool, so your next order does not pick the same one up first.
Proxy credentials never reach it
A failure message is stripped of its password before it is written, in every proxy format — including the one most providers hand out.
Proxies
Proxy health, without the guessing
Per-proxy success and failure counts written back after every order, a one-click test that shows the real exit IP and location, and no automatic benching — a rotating proxy is allowed a bad exit.
We never bench one for you
A rotating residential endpoint hands out a bad exit by design. The old rule — skip a proxy after five failures — benched a customer's only proxy mid-order. Counters tell you; you decide.
Test one and see the real exit
IP, location, organisation and round trip, fetched through that proxy. One at a time, because a bulk probe from our address looks like a scan to your provider.
No proxies, no dispatch
An order refuses rather than going out on the platform's shared address. That is the whole reason your rate-limit exposure stays yours.
Buyer-facing pages
Panels on your own domain
Redeem, live stock, order status and a reseller portal — hosted from the moment you sign up, on a private store code that never carries your name. Point a CNAME at us and the certificate is issued automatically.
Redeem
A buyer types their key, picks a server, and watches it fill.
/redeem-panel
Live stock
What you have, by type, updating on its own.
/live-stock
Order status
Where a purchase got to, without a support message.
/order-status
Reseller
Balance, pricing, keys and history for your partners.
/reseller-panel
A domain is cosmetic, never required
Every store is reachable from signup at a private store code that does not carry your name. A custom domain moves the address; it does not unlock the page.
Each page picks its own domain
All of them on one host except redeem, say, or a second host carrying just the reseller portal. A domain serves only the pages you gave it — asking for another gets nothing.
A challenge sits in front, not behind
Proof of work by default, on our own origin, handing back a signed pass. One widget covers every customer domain, so the hostname limit never binds.
Storefront autobuy
Autobuy from your storefront
Dynamic-delivery webhooks for seven storefronts. A buyer pays, the order dispatches, the receipt carries a link to its own status page. Sign the endpoint and nobody can spend your stock by guessing a URL.
Sign the endpoint
A URL identifies your store; it does not authenticate the caller, and your product ids are public because they appear in your own storefront links. A shared secret is the control, and an unsigned endpoint is labelled unverified with the consequence written out.
The receipt goes somewhere real
A buyer who has just paid gets a link to their own order status page, prefilled — not a dead route.
Payloads are read defensively
Storefronts send an explicit null where you expect an object. That used to kill the thread and lose a paid order.
Wired up
Dynamic delivery, and the dashboard tells you where each one hides the field.
Resellers
A reseller programme with real books
Prepaid balances in integer cents, per-type pricing, an append-only ledger and generated redeem keys. The charge and the delivery are one transaction, so a failure leaves neither.
The charge and the delivery are one transaction
The old bot debited first and refunded on failure, because JSON files cannot roll back — and its ledger filled up with pairs describing nothing that happened. Here a failure leaves neither.
Every number is derived, never counted
Revenue from the ledger, boosts from the orders it references, keys from the keys. Slower to compute, and it cannot drift.
Deleting a reseller leaves their keys working
The relationship ends. Somebody's purchase does not.
The balance after every line is stored, not recomputed — a dispute is answerable by reading one row.
Utilities
A checker built in
Six online modes over your own proxies, with a live log, saved output and downloads sorted into folders by status, nitro length, boosts and verification. Find the dead accounts before a buyer does.
Every pasted line is saved before the check runs
The result set is the input set, so a crash loses at most the rows still pending — never your list.
Sort by what you actually sell on
Boosts, nitro length, verification and age become their own clickable categories, and a download hands back whichever one you are looking at.
It runs over your proxies and counts them
Checker traffic writes back to the same per-proxy counters a boost order does, so the Proxies page tells the whole story.
Your stock
Your stock stays yours
Tokens and proxy credentials are encrypted per row under a key derived per store, and every read writes an audit line — who looked, and when. Nothing about your own stock is hidden from you.
Encrypted per row, per store
AES-256-GCM with a key derived from your store id, so one store's data does not unlock another's, and every column carries a key version so rotation never needs a flag day.
Audited, not hidden
Masking your own stock protects nobody — anyone who can reach it can already spend it. So it lists in full, in the format you uploaded, and every read writes a line saying who looked and when.
Isolated in the database, not by discipline
Row-level security on every tenant table, enforced by Postgres. One forgotten WHERE clause would otherwise be somebody else's whole order book.
The line is ownership, not sensitivity: your tokens and proxies are yours to read at any time. Secrets we hold on your behalf — bot tokens, provider API keys — have no read route at all, for anyone.