# Velocity for Developers

> Canonical: https://docs.velocity.exchange/developers

Velocity is a perpetual futures exchange that runs as a Solana program. Trading is non-custodial: an account is an onchain PDA, orders are accounts the program owns, and nothing sits between the trader and the chain except an RPC node. Building on it means reading those accounts and sending those instructions, which is what the TypeScript SDK exists to make bearable.

Velocity forked Drift and then diverged: its own deployment, its own SDK package, and a deliberately reduced feature set. An integration being ported from upstream should start with the [migration guide](/developers/migrate-from-drift.md), which lists every behavioral and API difference rather than leaving them to be found.

> **Important:**
>
> The Velocity program is not open source yet. It will be published once the post-fork audit report is final. These docs are the reference until then, and the docs site itself is public: file a correction as an [issue](https://github.com/velocity-exchange/velocity-docs/issues) or a [pull request](https://github.com/velocity-exchange/velocity-docs/pulls). See [Contributing](/developers/contributing-to-velocity.md).

## Start here

## The two interfaces

**The SDK** is the write path. `@velocity-exchange/sdk` wraps the program: placing and canceling orders, managing subaccounts and positions, computing margin, subscribing to account and event streams, and building the transactions that carry all of it. It reads live state from the chain, so it is the right tool for anything that has to be current.

| Package | Version | Where the source lives |
| --- | --- | --- |
| [`@velocity-exchange/sdk`](https://www.npmjs.com/package/@velocity-exchange/sdk) | 0.20.0 | `velocity-v1/packages/sdk` |
| [`@velocity-exchange/vaults-sdk`](https://www.npmjs.com/package/@velocity-exchange/vaults-sdk) | Published, trails the monorepo | `velocity-v1/packages/vaults-sdk` |

> **Info:**
>
> There is no Python SDK. A Rust client (`velocity-rs`) exists in the `velocity-v1` monorepo but is source-only and not on crates.io. The monorepo itself is not public yet, so those paths name locations that cannot be browsed from outside the team.

**The [Data API](/developers/data-api.md)** is the read path for history. It serves indexed events over HTTP, fills, funding payments, liquidations, settlements, candles, leaderboards, so an analytics or portfolio surface does not have to run an indexer. It is the wrong tool for live order state and the right one for anything older than the current block.

## Guides by integration type

| Integration | Go to |
| --- | --- |
| An app, dashboard, or analytics surface over Velocity data | [Ecosystem builders](/developers/ecosystem-builders.md) |
| A quoting strategy or a maker bot | [Market makers](/developers/market-makers.md) |
| A keeper bot, or automated execution from an existing service | [Trading automation](/developers/trading-automation.md) |
| A managed vault that trades depositor capital | [Vault managers](/developers/vault-managers.md) |
| A frontend on top of someone else's vault | [Vault depositors](/developers/vault-depositors.md) |
| A frontend that earns a per-order fee on the flow it routes | [Builder codes](/developers/builder-codes.md) |

## Getting help

Ask in [#research-and-dev-chat](https://discord.com/invite/95kByNnDy5) on Discord. If a page here disagrees with what the program does, that is a bug: report it against the [docs repository](https://github.com/velocity-exchange/velocity-docs/issues).
