Koine docs

Getting started

Koine's trading terminal is a Telegram bot and a web terminal that share one custodial Solana wallet per trader. This page walks through setting up a wallet, funding it, buying, tying a first knot and getting money out.

What it is #

You trade in the Telegram bot @koinemarketsbot or in the web terminal at koine.markets/terminal. The web terminal signs in with a Solana wallet or with Telegram. If you link both, they reach one account, one wallet and one set of knots.

Two things to know first:

  • The wallet is custodial. Koine creates it at Privy. Its signing rules allow swaps that spend or receive SOL, Koine's fee, network tips, presale actions and SOL withdrawals to your one saved address. You can export the private key. See Security.
  • Knots are limits you tie yourself. Every knot is off until you tie it. Koine holds you only to the knots you tie. See Knots.

Memecoins can go to zero. No knot prevents every loss, and nothing here is financial advice.

Source: trade/server/users.ts, trade/server/policy.ts, trade/server/bot.ts

Who can join #

The trading service has two access modes. With TRADE_ACCESS=invite, a new trader needs an invite link from an admin. With the default, open, anyone can join by sending /start. The gateway can also run in a private testing mode (TELEGRAM_ALLOW_IDS), where only listed Telegram accounts reach the bot and everyone else who writes to it gets a one-line reply pointing to koine.markets, at most once every 10 minutes.

Source: trade/server/config.ts, trade/server/users.ts, gateway/gateway.ts, gateway/route.ts

Setting up a wallet in the bot #

  1. Send /start, then tap ๐Ÿš€ Set up a wallet.
  2. Read the notice and tap โœ… I understand, create my wallet.
  3. The bot creates the wallet. It gets its signing rules and is registered with the withdrawal approver before its address is shown. If the approver can't be reached, you see "Your wallet isn't ready yet" and a ๐Ÿ”„ Try again button, and nothing is spent.
  4. Choose your untie delay: 1 hour, 24 hours, 3 days, 7 days, or None (untying is instant). You must answer before you can buy or fund. None is an allowed answer.

Until you choose, the bot still lets you read help, the notice and fees, see positions and history, sell, and stop buying.

Source: trade/server/bot.ts (start, onTermsAccepted, delayChoiceScreen, DELAY_FREE_COMMANDS), trade/server/users.ts (ensureWallet), trade/server/knots.ts (chooseDelay)

Setting up on the web #

  1. Press Sign in in the header of any koine.markets page, or on koine.markets/terminal.
  2. Sign in with your email (a one-time code), a passkey, or a Solana wallet. The first time, read the notice and press I understand, create my account.
  3. Koine then creates your Koine wallet. If that doesn't finish, press Create my wallet on your portfolio or in the trade drawer. It's the only wallet the site uses: you fund it, trade from it and launch from it. A wallet you sign in with only proves who you are.
  4. Choose your untie delay on your portfolio before your first buy.

See Accounts and sign-in.

Source: trade/server/web.ts (/web/privy/login, /web/wallet/create, /web/quote), app/web/src/terminal/lib/terminal/privy.tsx, app/web/src/terminal/components/terminal/SiteSignIn.tsx, StartCards.tsx, TerminalHome.tsx, app/web/src/account.tsx

First deposit #

  1. Send /wallet, or tap ๐Ÿ’ผ Wallet on Home. On the web, open your portfolio, or the menu under your balance in the launchpad's header.
  2. Tap ๐Ÿ“‹ Copy address.
  3. Send SOL to that address.

A new wallet's screen says to send at least 0.15 SOL to make a 0.1 SOL trade. A buy needs SOL for Koine's fee, the tip, network fees, a temporary wrapped-SOL account and sometimes rent, on top of the amount.

Send SOL only. Tokens sent to the wallet still arrive, but Koine tracks only tokens it bought for you, so it can't sell or withdraw them. Exporting the key is the way to move them.

You get a message when a deposit lands: in Telegram, or in your web inbox if you have no Telegram.

Source: trade/server/bot.ts (walletScreen), trade/server/deposits.ts, trade/server/trading.ts (quoteBuy)

First buy #

  1. Search for a Koine coin by ticker or name, or paste its address (a link that contains it works too). Only coins launched on Koine can be bought.
  2. The token card opens with buy buttons. They start at 0.1, 0.25 and 0.5 SOL.
  3. Tap an amount, ๐ŸŸข Buy X SOL to type one, or ๐ŸŸข Buy max.
  4. Check the quote: about what you get, the least you'd accept, Koine's fee, the tip, the speed and the route.
  5. Tap โœ… Confirm buy, or โœ–๏ธ Cancel to spend nothing.

The bot replies with what you got, what it cost, how long it took and a Solscan link.

To sell, open /positions, tap the position and tap ๐Ÿ”ด Sell 25%, 50% or 100%. A sell goes out when you tap it, with no second confirm.

Source: trade/server/bot.ts (cardScreen, buy, run, positionScreen), trade/server/db.ts (settings defaults)

First knot #

  1. Send /knots.
  2. Tap ๐Ÿšช Exits or another group, then a knot, then a value.
  3. Tying is instant.

Or tap ๐Ÿงฉ Start from a style for a ready-made set of knots that you review before anything is tied. See Knots.

With no untie delay, untying is instant too. With a delay, loosening or untying any knot waits that long. The delay also covers withdrawals, a change of withdrawal address and key export.

Source: trade/server/bot.ts (knotsScreen, requestKnot), trade/server/knots.ts, trade/server/styles.ts

Getting money out #

Withdrawals are SOL only, to one saved address. Sell tokens to SOL first.

  1. Tap ๐Ÿ’ผ Wallet โ†’ ๐Ÿ“ฎ Withdrawal address โ†’ โœ๏ธ Save an address and paste an address you control. The bot reads your first address back once. Tap โœ… Yes, save it. The first address applies at once.
  2. Tap โฌ†๏ธ Withdraw, pick 25%, 50%, All or โœ๏ธ Other amount, and tap โœ… Withdraw.
  3. With no untie delay, it goes out at once. With one, it waits that long and you can cancel until then.

See Trading and key export.

Source: trade/server/bot.ts (addressScreen, saveAddress, withdrawScreen), trade/server/withdraw.ts

Where to go next #