Set Up the unCoded Trading Bot on Your Own Server
Run the bot on your own server and connect it to your exchange -- without writing a single line of code.
Your Own Server
In Germany
Secured Exchange API
Sub-account + IP whitelist
Automated Trading
Dashboard + optional Telegram
Quick Glossary
Before You Start -- Mandatory Prep
Without these three points the setup won't work. Skip them if you already actively use your exchange.
Prep A — Complete Exchange KYC
Outcome: A fully verified exchange account (required for APIs and sub-accounts).
Trading APIs and sub-accounts are only available to fully verified exchange users.
Prep B — Enable 2FA
Outcome: Two-factor authentication active on your exchange account.
Your exchange requires 2FA before you can create any API keys.
If you lose your phone without a backup key, you will lose access to your account. A YubiKey hardware key adds even stronger protection.
Prep C — Fund with USDC or FDUSD
Outcome: Quote currency ready to transfer into your sub-account.
The bot trades against a quote currency that must be in the sub-account before launch.
Step-by-Step Setup
Fourteen steps from server purchase to a fully running bot.
Buy a Server on Zeabur
Outcome: A running server in Germany with its own IPv4 address.
- ›Open the Zeabur dashboard and sign in with Google.
- ›Click 'Buy More Servers'.
- ›Select Hetzner in Germany (around 16 USD / month).
- ›Specs: 4 vCPUs, location Germany, dedicated IP.
Safety net: within 7 days you can refund the server. You can also disable Auto-Renew if you only want to test for one month. Boot time is about 3–4 minutes.
Result: Server is running and the IPv4 address is noted.
Open the unCoded Template
Outcome: The Zeabur form open and ready to fill in.
- ›In Zeabur go to 'Projects' → 'Generate Project'.
- ›Under 'Deploy New Service' search for 'uncoded'.
- ›Select the server you just bought.
Don't fill anything in yet — we'll collect the required values in the next steps.
Create an Exchange Sub-Account
Outcome: A second exchange account cleanly separated from your main account.
- ›Click your profile picture in your exchange (top right).
- ›Click 'Sub Accounts' (or equivalent) in the menu.
- ›'Create Sub Account' → 'Create with Mail'.
- ›Enter a second email address and a password.
- ›Enable 'Switchable' so you can swap between main and sub via one click.
Create an API Key on Your Exchange
Outcome: API Key and Secret Key entered into the Zeabur template.
Never enable withdrawal permissions on the API. Trading bots only need read + trade rights. The IP whitelist and trading permission are intentionally set later in Step 9.
- ›Switch into the sub-account (top-left switcher).
- ›Profile → 'API Management'.
- ›'Create API' → 'System Generated'.
- ›Give it a name like 'uncoded Bot' → Next.
- ›Confirm with 2FA / YubiKey.
- ›Copy the API Key and Secret Key into the Zeabur fields 'Exchange API Key' / 'Exchange Secret Key'.
Copy the Secret Key immediately — it is never shown again after closing the page. Share it with nobody.
Result: API Key and Secret Key are entered into the Zeabur template.
Set Dashboard Passwords
Outcome: Two access passwords for your future dashboard.
The Zeabur template has two password fields:
Use strong passwords with special characters. No 'Test1' or similar.
- ›Dashboard Admin Password — full access including all settings.
- ›Dashboard View Password — read-only, e.g. for someone you want to show the bot to.
(Optional) Create a Telegram Bot
Outcome: A bot token for Telegram notifications.
If you don't want Telegram notifications, simply enter 00 in both Telegram fields and skip to Step 8. With Telegram you get a message per trade with profit, total profit and volume.
- ›In Telegram search for @BotFather.
- ›'Start' → send the command /newbot.
- ›Give a display name (e.g. 'Uncoded Trading Bot').
- ›Give an internal username (must end in 'bot' and is globally unique).
- ›BotFather returns a token like 123456789:ABCdefGhi… — paste it into the Zeabur field 'Telegram Bot Token'.
(Optional) Get the Telegram Group ID
Outcome: The group ID including the minus sign, entered into the Zeabur template.
The minus sign '-' must be copied along with the number. Without it the connection will fail.
- ›In Telegram create a new group (e.g. 'Uncoded Trading').
- ›Add your newly created uncoded bot to the group.
- ›Also add the helper bot @myidbot to the group.
- ›Promote both bots to admin (right-click / long-press on the bot → 'Promote to Admin' → Save).
- ›In the group send /getgroupid to @myidbot.
- ›You'll get a group ID with a minus sign, e.g. -1001234567890.
Set Domains and Launch Deployment
Outcome: Two own dashboard URLs and a running deployment.
Two domain names are required in the template:
- ›Dashboard domain (e.g. uncoded-yourname-1) — web dashboard for configuration.
- ›Signal domain (e.g. uncoded-yourname-2) — endpoint for TradingView signals.
- ›Rules: lowercase only, both names must be different.
- ›Optional: set a TradingView password now if you'll use TradingView signals later (can be changed any time).
- ›Pick the correct server below and click 'Confirm'.
Whitelist the Server IP on Your Exchange (critical!)
Outcome: A trade-ready API key that can only be used from your server.
Until the IP whitelist is set, 'Enable Spot & Margin Trading' on your exchange cannot even be selected. That's a security feature, not an error.
- ›In Zeabur → 'Servers' → click your server → copy IPv4 address.
- ›Back in your exchange → 'API Management' → click 'Edit restrictions' on your uncoded API key.
- ›Enable 'Restrict access to trusted IPs only'.
- ›Enter the server IP → Confirm.
- ›Now you can tick 'Enable Spot & Margin Trading' → enable it.
- ›Confirm with 2FA and 'Save'. Do NOT enable API withdrawals — trading only.
Why this is so secure: even if someone has your API Key and Secret, they can do nothing — only this one server IP is allowed to trade.
Log Into the Dashboard
Outcome: Access to the unCoded dashboard via your own domain.
Once the dashboard domain is green in Zeabur ('Online' / 'Running'), open it in the browser and log in with the admin password from Step 5.
Choose Trading Mode and Strategy
Outcome: A fully configured bot with mode, quote currency, pairs and risk profile.
In the dashboard pick the following in order:
- ›Bot type: Multi-Token Bot (standard for most users). High-Frequency Bot is single-token market making — usually NOT what you want.
- ›Quote currency: USDC inside the EU; FDUSD possible outside the EU (reduced / zero trading fees).
- ›Trading pairs: BTC and ETH are good starters — high liquidity, lower slippage.
- ›Risk profile: Low = conservative (recommended for starters). Medium / High = more aggressive (more splits, larger positions, less reserve).
- ›→ Confirm → Start.
Link Your Google Account
Outcome: Your license is mapped to your Google identity.
- ›In the dashboard click 'Open'.
- ›Sign in with your Google account.
- ›Accept the Terms of Service.
- ›Click 'Start'.
Pricing: the bot costs 20–30% of realized profit. No profit = no cost. New users currently get a 25 USD license credit.
Activate Your License
Outcome: Bot uniquely mapped to your account.
Only the public API Key — never the Secret Key.
- ›In the dashboard click 'Top-up License' — you'll be redirected to your unCoded account.
- ›Scroll to 'Your IDs'.
- ›Enter the public Exchange API Key here.
Verify Everything Works
Outcome: Confidence that the bot runs cleanly.
- ›Open the trading bot service in your Zeabur project → click 'Logs'.
- ›No red errors should appear.
- ›Trades run very fast (~40–50 ms each). Pause the log view if needed.
Result: Bot is running independently on your own server.
What Success Looks Like
Here's how you can tell, in the first 1--24 hours, that everything is working.
Immediately (within 5 minutes)
- Dashboard shows 'Bot Status: Running' (green).
- Logs show regular entries like 'Checking conditions for BTCUSDC…' without red errors.
Within the first hour
- When market conditions match: first buy orders appear in the logs.
- If Telegram is enabled: first notification (e.g. 'BUY BTCUSDC at 65,420 — Split 1/2').
Within 24 hours
- First completed trades (buy + sell) with profit display.
- Dashboard stats begin to fill up.
If no trade has happened after 24 hours: this isn't necessarily an error. At low volatility or with conservative settings it can take 1--3 days before the first entry conditions are met.
Troubleshooting
Security Checklist
Tune Strategies & Realistic Expectations
Customize Later
- • Switch Mode (e.g. Basic mode for bull markets).
- • Adjust Splits (e.g. 50/50).
- • Change strategies for bull / bear markets.
- • Browse public strategies and the leaderboard under "Backtesting".
Realistic Expectations
- • Reference: ~17,000 trades / month, ~1,200 USD profit in the example period.
- • Daily results typically 12--27 USD with upside outliers.
- • Rough orientation: 30--40% annual return as a realistic ballpark.
- • Profit grows in steps (positions must close), not linearly.
Sideways and bear markets are where the bot can clearly beat hodling. In extreme bull runs hodling can occasionally win -- which is why stop-loss and emergency indicators matter.
Risks & Disclaimer
- Usage:at your own risk.
- Returns:no guarantee of future profits. Past results are not a forecast.
- Taxes:this is not tax advice. Trading profits may be taxable depending on your country.
- Losses:crypto trading can lead to losses up to total capital loss.
- Responsibility:you are responsible for your configuration, API keys and server.
Quick Reference
For repeat setups.
- 1Buy Hetzner server on Zeabur (4 vCPU, Germany)
- 2Open the unCoded template
- 3Create exchange sub-account + transfer USDC / FDUSD
- 4Create API Key + Secret Key (no withdrawal rights)
- 5Set dashboard passwords
- 6(Optional) Create Telegram bot via BotFather
- 7(Optional) Get Telegram group ID via @myidbot (include the minus!)
- 8Set dashboard + signal domains, launch deployment
- 9Whitelist server IP in your exchange + enable trading
- 10Log into the dashboard
- 11Pick Multi-Token, quote currency, pairs and risk
- 12Link Google account
- 13Activate license (public API Key)
- 14Verify logs