Skip to main content
The Hedgin manager bot is a public Telegram bot that operates a vault through the manager API. Each Telegram user keeps their own wallets in the bot. The bot reads vault state, builds transactions through the API, signs them with the active wallet, sends them, and shows live progress with Solscan links. It runs on the same API and SDK as any other manager integration. If you want your key to stay in your own process, use the TypeScript SDK instead.
The bot is custodial. When you import or create a wallet, the bot stores its private key on the server that runs it, encrypted with a master key that the bot’s operator holds. The bot must hold the key, because it signs every transaction for you.
  • Anyone who has both the encrypted store and the master key controls every stored wallet, and every vault those wallets manage.
  • A vault’s manager authority cannot be moved on chain. No program instruction transfers it. If a manager key leaks, you cannot rotate it away.
  • Telegram chats are not end-to-end encrypted. A key you paste passes through Telegram’s servers before the bot deletes the message.
  • If the bot loses its data, any wallet it generated that you did not export is gone. Export a copy of every generated wallet.
Import only a wallet whose risk you accept. Prefer a dedicated manager wallet over a wallet that holds other funds.

Get started

You need two things before the bot can show a vault: a manager wallet and an API key issued for that wallet’s address.
1

Open the bot in a private chat

The bot works only in private chats. It ignores groups, because you paste keys into the chat.
2

Add a wallet

Send /wallet, then tap 📥 Import wallet to paste an existing private key, or ✨ New wallet to create one. A new wallet manages no vault until a Hedgin admin whitelists it and it creates one.
3

Add the wallet's API key

Ask a Hedgin admin for an API key issued to this wallet’s address, with the read scope and the action scopes you need. Tap 🔐 Add API key and paste it. The bot checks the key against the API before it stores it.
4

Open your vaults

Send /vaults, or /start. Until the active wallet has an API key, /start opens the wallet menu instead.
Each API key is bound to one manager wallet, so every wallet needs its own key.

Wallets

Open the wallet menu with /wallet. Vault screens, balances, and trades always use the active wallet and its API key. Switching wallets expires the form and confirm buttons made for the previous wallet, so a stale button cannot act with the new key. Removing a wallet deletes the bot’s only copy of the key and its API key. Funds stay on chain, but without your own copy of the key you lose access to them and to every vault the wallet manages. If you paste something that looks like a private key anywhere other than the import prompt, the bot deletes the message and tells you to use /wallet.

Commands

<vault> is a vault address, its number from /vaults, or its name. Telegram’s / menu lists only /start, /wallet, /vaults, /help, and /cancel, but every command above works when you type it. The vault screen also has a button for each read. /history and /nav fail with HistoryUnavailable on a server without a history database. If an API response does not match the documented contract, the bot reports contract_mismatch instead of showing half-parsed data.

Trade and manage

Every action opens a form, then a confirm screen, then runs. Fields you type into ask with a prompt. Answer in the chat or send /cancel. Amounts accept a number (1.5), a percent (25%), or max. Prices are the pool’s quote token per base token. The bot converts price ranges to bins. It shows the actual edge prices, the bin count, and which tokens the range can hold. It flags pasted tokens that Jupiter has not verified on the form and again on the confirm screen.

Swaps and tokens

Meteora DLMM positions

Phoenix perpetuals

Phoenix needs a vault whose deposit token is USDC. The bot walks through setup in order.

Vault settings and creation

The bot looks up a pasted deposit mint through a vault the key already manages. A manager’s first vault must therefore use USDC. Pausing the vault, closing it, and closing a DLMM position show a plain-words warning on the confirm screen.

Key scopes per feature

Every action needs the send scope plus its own action name. When a key lacks one, the bot names the missing action so you can ask the admin for it. See Key scopes for the full rule.

Safety behavior

The bot signs through the SDK, so it inherits the SDK’s signing policy. The rules below are what you can rely on when you use it.
  • Private chats only. The bot ignores groups. When the operator sets an allowlist of Telegram user IDs, users outside it get no reply at all, so the bot does not reveal that it exists.
  • Secrets are deleted. The bot deletes the message that holds a pasted private key or API key before it does anything else. An exported key appears as a protected spoiler message that deletes itself after 60 seconds.
  • Inspect before signing. Every transaction in a batch must be v0, paid by the manager key, already signed by any other required signer, and call only the Hedge Vault program, ComputeBudget, Associated Token Account, Meteora DLMM, or Jupiter at the top level. The priority fee is capped at 100,000 microLamports per compute unit. The bot refuses anything else without signing. Phoenix onboarding is the one exception: a single transaction that calls only the Phoenix program, which Phoenix co-signs on submit. See Execute and safety for the policy in detail.
  • Confirm first, one shot. Every action shows a confirm screen. A confirm button works once. Each user runs only one action at a time.
  • No blind retries. The bot polls an ambiguous send by its receipt. It never rebuilds after one, because a rebuild could execute the action twice. When it cannot tell what happened, it says so and links the transaction.
  • Buttons do not survive a restart. Form and confirm buttons stop working when the bot restarts, and half-typed answers are forgotten. Send /start for fresh buttons.
By default the bot talks to the production API at hedgin.xyz, which runs on Solana mainnet. Every confirmed action moves real funds.