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 to 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 to 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 to 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 to 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 to 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 to 27 USD with upside outliers.
- • Rough orientation: 30 to 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