GRVT
Spreadr trades GRVT with an API key and its signing key, both created on GRVT. A GRVT API key belongs to one trading account, and that account is the one Spreadr trades.
| Property | Value |
|---|---|
| Markets | GRVT's USDT-quoted perps |
| Collateral | USDT, in the trading account the API key belongs to |
| Transport | REST (orders) + WebSocket (market data + account updates) |
| Signing | EIP-712, with the signing key GRVT generates for your API key |
| Funding interval | Per market, usually 4h or 8h |
| Concurrent Spreadr maker trades | 2 per account (subject to change) |
| Builder code support | Not charged yet. Your account can authorize it now with one signature (see Builder fees) |
Account setup
Open and fund an account
Visit grvt.io (opens in a new tab), connect your wallet and deposit USDT. GRVT credits deposits to your funding account, and Spreadr trades only a trading account, so transfer the collateral you want to trade into one.
Create an API key
In GRVT: Settings → API Keys. Click Create, pick the trading account, and choose Generate so GRVT creates the key pair. Enable the Trade permission. Spreadr never moves funds on GRVT, so don't give the key transfer or withdrawal rights. Copy the API Key and the Secret Private Key (GRVT shows the secret only once), then copy the Trading ID of the same trading account.
Connect in Spreadr
In the terminal: Settings → Wallets, pick your wallet, then + GRVT. Paste the API key into API Key, the Secret Private Key into Signing Private Key and the Trading ID into Trading Sub-Account ID, then press CONNECT GRVT. You sign 1 message: the credential vault unlock.
Quirks
- A wrong signing key shows only when a trade starts. GRVT's servers don't answer the browser directly, so Spreadr can't test the keys while you connect. The GRVT card then checks that GRVT accepts the API key, and turns red if it doesn't. The signing key is used only for orders, so a wrong one shows when GRVT refuses the trade's first order.
- One quote, several GRVT orders. Spreadr's GRVT quotes are post-only, and GRVT has no order edit, so Spreadr re-prices a quote by cancelling it and placing a new order. GRVT's order history lists several orders for one quote.
- Set leverage on GRVT. Spreadr reads the leverage set on your GRVT account but can't change it from the order form. Set it on GRVT before you start the trade.
- Closes aren't refused for balance. GRVT accepts an order that closes a position at any available balance, so Spreadr's negative-balance check doesn't apply to closes on GRVT. See Closing at a negative available balance.
- Market symbol format. GRVT names its perps like
BTC_USDT_Perp. Spreadr translates; you'll seeBTCin the Spreadr UI. - Removing the connection ([DEL]) deletes the keys from Spreadr only. The API key stays live on GRVT until you delete it there, under Settings → API Keys.
Builder fees
GRVT charges a builder fee only on orders from accounts that have authorized that builder. Spreadr's GRVT fee will be 0.5 bp (0.005%) per fill. It is not charged yet: your GRVT orders carry no Spreadr builder fee today.
The GRVT builder fee panel on the GRVT card shows whether your account has authorized Spreadr and offers [AUTHORIZE]: one signature, on Ethereum, from the wallet that owns your GRVT account. The authorization caps what Spreadr may charge at 0.1%, GRVT's maximum. The panel opens on its own after CONNECT GRVT, and [BUILDER FEE] on the card reopens it. Authorizing is optional: without it, your GRVT orders never carry the fee.
Common errors
| Symptom | Cause | Fix |
|---|---|---|
| "Signing private key must be 64 hex chars (0x-prefix optional) — the key you registered on GRVT, not your wallet key" | The signing key field doesn't hold a 64-character hex key | Paste the Secret Private Key GRVT showed when you created the API key |
| "Trading sub-account ID must be numeric" | The field holds an address or a name | Paste the trading account's Trading ID: digits only |
| The GRVT card says "GRVT API key is no longer valid at GRVT — reconnect GRVT" | The key was deleted or replaced on GRVT | Create a new API key, then [RECONNECT] |
| A trade fails with "Signature is from an unauthorized signer" | The signing key isn't the one GRVT generated for this API key, or GRVT no longer lists it | Reconnect with the API key and its own Secret Private Key |