Skip to main content
Back to Docs
🚀Getting Started

Connecting Your Wallet

Link Polymarket & Kalshi to see real positions and trade

Predite reads your live positions, balances, and P&L directly from your trading accounts — and, on the right plan, can place orders for you. None of that works until you connect a wallet. This page explains exactly what a connection is, how to set one up for both Polymarket and Kalshi, the three Polymarket signature types, what a funder address is, and how we keep your keys safe.

What "connecting a wallet" actually does

There are two distinct things you can grant Predite, and it's worth being precise about the difference because they have very different security profiles:

  • Read-only connection — Predite can see your positions, open orders, fills, and balances. It cannot move funds or place trades. This is enough to power the Portfolio dashboard, your Trade Journal, real-money P&L tracking, and to let the EV Scanner flag opportunities against markets you already hold.
  • Trading connection — Predite can sign and submit orders on your behalf. This is what powers Live Trading, TWAP Orders, Copy Trading, and the automated Bot. A trading connection requires your private key (or an API credential, on Kalshi) so the app can sign transactions.

You decide which one you want per wallet. A read-only connection never asks for a private key. You can start read-only and upgrade to trading later, or downgrade at any time by disconnecting and reconnecting.

> Plan gating: Read-only connections and real-money portfolio tracking are available on all plans (Starter $29, Pro $59, Bot $99). Manual Live Trading and TWAP Orders require Pro or Bot. Fully automated execution — the Bot running strategies and Copy Trading with auto-fill — requires the Bot $99/mo plan. If you connect a trading wallet on Starter, you'll still get full read-only data; the execute buttons simply stay disabled until you upgrade.

Where to find it

Everything lives in Settings → Trading API. From any screen:

  1. Open Settings from the left sidebar (or the gear icon, top right).
  2. Select the Trading API tab.
  3. You'll see two cards: Polymarket and Kalshi, each showing a status badge — Not connected, Read-only, or Trading enabled.

Each card expands into its own connection flow. You can connect one venue, both, or neither. Predite features degrade gracefully: connect only Kalshi and the Polymarket-specific tooling just won't show data.

Connecting Polymarket

Polymarket runs on Polygon and settles through its CLOB (Central Limit Order Book). Because Polymarket accounts come in a few flavors, this is the more involved of the two connections. You'll provide three things: a private key, a signature type, and — for two of the three types — a funder address.

Step by step

  1. In Settings → Trading API, click Connect on the Polymarket card.
  2. Choose Read-only or Trading. - For Read-only, paste only your public wallet address (the 0x… address). Click Verify and you're done — skip to the verification note below. - For Trading, continue with the steps below.
  3. Select your signature type (see the next section — this is the single most common source of connection errors).
  4. Paste your private key. This is the key for the account that signs CLOB orders. It's a 64-character hex string, with or without the 0x prefix.
  5. Enter your funder address if your signature type requires one (types 1 and 2 — explained below). For an EOA (type 0), leave this blank.
  6. Click Test connection. Predite derives the signer address from your key, queries the CLOB for your balance and any open positions, and shows you a confirmation summary: the signer it derived, the funder it will trade from, and your current USDC balance.
  7. Confirm the summary matches what you expect, then click Save & encrypt. Your key is encrypted before it ever touches our database (details in the security section).

The three signature types

Polymarket supports three account architectures, and the CLOB needs to know which one you're using so it builds the order signature correctly. Pick the wrong one and orders will be rejected with a signature-mismatch error even though your key is valid.

  • Type 0 — EOA (Externally Owned Account). A plain wallet — the private key directly controls the funds and signs orders. The signer *is* the funder, so no funder address is needed. Use this if you funded Polymarket from a self-custodied wallet like MetaMask and never went through the Polymarket web onboarding.
  • Type 1 — Email / Magic wallet: NOT supported. This is what you get if you signed up on polymarket.com with an email or Google account, and Predite will refuse the connection with an explicit error. The reason is not a missing feature on our side: money you add that way (card, Apple Pay) stays custodied by Polymarket and never becomes free on-chain USDC.e in your proxy — and CLOB API trading, which is how Predite executes, requires on-chain collateral. To trade through Predite you need a self-custody wallet (MetaMask, Rabby, or similar) holding USDC.e on Polygon. Only type 0 (EOA) and type 2 (Polymarket Gnosis Safe) are accepted.
  • Type 2 — Browser wallet / Gnosis Safe proxy. You connected an external browser wallet (e.g. MetaMask) through Polymarket's interface, and Polymarket deployed a Gnosis Safe proxy that actually holds your positions. Your browser wallet's key signs, but the Safe is the funder. Provide the Safe address as the funder.

A quick way to decide: if you log into Polymarket with an email, you're almost certainly type 1. If you log in by connecting a browser wallet, you're type 2. If you never used the Polymarket site and funded a raw wallet yourself, you're type 0.

What a funder address is

The funder address is simply *the address that holds the USDC and the position tokens* — the account that actually gets debited when you buy and credited when you sell. In type 0, the signer and funder are the same address, so there's nothing to enter. In types 1 and 2, Polymarket separates the *signer* (the key that authorizes an order) from the *funder* (the contract that holds and moves the money). The CLOB matches orders to the funder, so if you omit it or paste the signer address by mistake, the exchange will report a zero balance or reject the order.

You can find your funder address in Polymarket under your profile → deposit address, or by copying the address shown on your Polymarket portfolio page. It will be different from the address derived from your private key — that's expected and correct for types 1 and 2.

Common Polymarket gotchas

  • "Balance shows $0 but I have funds." Almost always the wrong funder address or signature type. Re-check whether you're type 1 (Magic/email) vs type 2 (Safe/browser), and confirm the funder is the deposit address, not the signer.
  • "Signature rejected on order." Wrong signature type. The key is fine; the type is mismatched. Disconnect and reconnect with the correct type.
  • Allowances. For a trading connection, the funder must have approved USDC and conditional-token spending on the CLOB. If you've ever traded on Polymarket's site, this is already set. If the account is brand new and has never placed an order, place one small order on polymarket.com first to set allowances, then connect here.
  • Use a dedicated trading wallet for the Bot. If you plan to run automated strategies, consider funding a separate wallet with only your trading bankroll rather than connecting a key that controls your entire crypto net worth. Smaller blast radius, cleaner P&L.

Connecting Kalshi

Kalshi is a regulated US exchange and doesn't use crypto wallets or private keys in the Polygon sense. Instead, you connect with a Kalshi API key.

  1. In Kalshi, go to Account → API Keys and generate a key. Kalshi gives you a Key ID and a private key (an RSA key used to sign API requests). Download or copy both — Kalshi only shows the private key once.
  2. In Predite, click Connect on the Kalshi card in Settings → Trading API.
  3. Choose Read-only or Trading. (Kalshi's API key model means the same credential can do both; choose Read-only if you want Predite to ignore the trading permission and never place orders.)
  4. Paste your Key ID and private key.
  5. Click Test connection. Predite authenticates, pulls your balance and open positions, and shows a summary.
  6. Click Save & encrypt.

Kalshi notes:

  • Make sure the API key has the permissions you intend. A read-only key in Kalshi simply can't trade even if you later switch the toggle in Predite.
  • Kalshi enforces its own rate limits. Predite batches and throttles requests automatically, but if you run the Bot aggressively across many markets you may occasionally see brief data-refresh delays — this is Kalshi's limit, not a Predite bug.

How we secure your key

This is the part that matters most, so we'll be specific.

  • Encryption at rest. Your private key (or Kalshi RSA key) is encrypted with AES-256-GCM before it is written to the database. AES-256-GCM is an authenticated cipher: it both encrypts the data and detects any tampering. Each key is encrypted with a unique initialization vector, and the encryption key is held in a managed secrets store, never in the same place as the ciphertext.
  • Decrypted only in memory, only to sign. When you place a trade (or the Bot does), the key is decrypted in memory for the moment it takes to sign that single transaction, then discarded. It is never written back to disk in plaintext.
  • We never log keys. Private keys are excluded from every log, error report, crash dump, and analytics event. If something fails, our logs record the *event* ("order signing failed for wallet ending …a3f1") but never the secret itself. We also redact keys from any support session — our team cannot see your key, even if you ask.
  • In transit. All connections happen over TLS. Your key is encrypted on submission and never sent to any third party other than the exchange you're trading on.
  • You stay in control. Predite only ever signs the specific orders you authorize (manual trading) or that match the strategy/guardrails you configured (Bot, Copy Trading). It cannot withdraw funds to an external address — the trading APIs we use are scoped to placing and cancelling orders, not transfers.

If you'd rather not store a signing key at all, use a read-only connection. You'll lose execution features but keep full portfolio analytics, journaling, and EV alerts. For the complete threat model and our data-handling commitments, see the Security page.

Disconnecting a wallet

You can revoke access at any time:

  1. Go to Settings → Trading API.
  2. On the relevant card, click Disconnect.
  3. Confirm. We permanently delete the stored ciphertext of your key from our systems. Read-only public addresses are also removed.

Disconnecting immediately disables any feature that depends on that wallet — the Bot pauses, Copy Trading stops mirroring, and live execution buttons grey out. Your historical Trade Journal entries and P&L records are kept (they're your data, not your key), so disconnecting doesn't erase your performance history.

For maximum safety after disconnecting a *trading* wallet you no longer trust, rotate the underlying secret at the source: generate a new Kalshi API key, or for Polymarket move funds to a fresh wallet. Deleting it from Predite removes our copy, but only you can invalidate the key itself.

Verifying it worked

After connecting, head to the Portfolio page. Within a few seconds you should see your live positions, cost basis, and unrealized P&L pulled straight from the exchange. If the Trading API card shows Trading enabled and Portfolio is populated, you're fully set up. From there:

  • The EV Scanner and AI Probability model can compare your holdings against fair value.
  • Live Trading and TWAP Orders unlock (Pro/Bot) for manual execution with your connected wallet.
  • The Bot and Copy Trading can run automatically (Bot plan), within the guardrails you set.

If positions don't appear, revisit the signature-type and funder-address checks above — that resolves the large majority of Polymarket connection issues.

Related Docs