> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meteora.ag/llms.txt
> Use this file to discover all available pages before exploring further.

# Zap Developer Guide

> Learn how to build Zap integrations for DAMM v2, DLMM, Jupiter-backed swaps, TypeScript SDK flows, Rust CPI, and release tracking.

Zap is Meteora's helper program for composing token movement, swaps, and liquidity actions around DAMM v2, DLMM, and Jupiter routes. It is mainly used to zap into liquidity positions, zap out from token balances produced by another action, or rebalance an existing DLMM position.

To learn more about Zap, including supported routes, and limits, you can read the following documentations.

<CardGroup cols={2}>
  <Card title="What Is Zap?" icon="book-open" iconType="solid" href="/helper-products/zap/what-is-zap">
    Product overview for Zap, supported AMM paths, and common user flows.
  </Card>

  <Card title="Formula And Limits" icon="calculator" iconType="solid" href="/helper-products/zap/formula-and-limits">
    Product formulas, limits, and route-level constraints.
  </Card>
</CardGroup>

## Integration

<CardGroup cols={2}>
  <Card title="Program Accounts" icon="table-cells" iconType="solid" href="/developer-guides/zap/program/accounts">
    Account model, ledger PDA, supported downstream programs, constants, and IDL types.
  </Card>

  <Card title="Program Instructions" icon="list" iconType="solid" href="/developer-guides/zap/program/instructions">
    Instruction flows for ledger setup, zap out, DAMM v2 zap in, DLMM zap in, and DLMM rebalancing.
  </Card>

  <Card title="Program Errors" icon="triangle-exclamation" iconType="solid" href="/developer-guides/zap/program/errors">
    Anchor custom error codes, messages, common causes, and integration fixes.
  </Card>

  <Card title="TypeScript SDK" icon="code" iconType="solid" href="/developer-guides/zap/typescript-sdk/getting-started">
    TypeScript SDK for building Zap transactions and route-specific swap helpers.
  </Card>

  <Card title="Rust Integration" icon="terminal" iconType="solid" href="/developer-guides/zap/rust-integration/cpi">
    Rust CPI guidance and local helper crates for advanced protocol integrations.
  </Card>
</CardGroup>

## Program IDs

The `zap` program ID is the same on mainnet and devnet:

| Network      | Program ID                                    |
| ------------ | --------------------------------------------- |
| Mainnet Beta | `zapvX9M3uf5pvy4wRPAbQgdQsM1xmuiFnkfHKPvwMiz` |
| Devnet       | `zapvX9M3uf5pvy4wRPAbQgdQsM1xmuiFnkfHKPvwMiz` |

## Public Source

<CardGroup cols={2}>
  <Card title="Zap Program" icon="code" iconType="solid" href="https://github.com/MeteoraAg/zap-program">
    Anchor program source, local Rust helper crates, tests, and changelog.
  </Card>

  <Card title="Zap IDL" icon="file-code" iconType="solid" href="https://github.com/MeteoraAg/zap-sdk/blob/main/src/idl/zap/idl.json">
    Anchor IDL for the deployed `zap` program.
  </Card>
</CardGroup>

<CardGroup cols={1}>
  <Card title="Zap TypeScript SDK" icon="node-js" iconType="solid" href="https://github.com/MeteoraAg/zap-sdk">
    TypeScript SDK source, examples, tests, IDL, and package changelog.
  </Card>
</CardGroup>

## Commands

| Task                 | Command                                        |
| -------------------- | ---------------------------------------------- |
| Build program        | `cd zap-program && anchor build`               |
| Run program tests    | `cd zap-program && pnpm install && pnpm test`  |
| Build TypeScript SDK | `cd zap-sdk && pnpm install && pnpm run build` |
| Run SDK tests        | `cd zap-sdk && pnpm test`                      |
| Type-check SDK       | `cd zap-sdk && pnpm run typecheck`             |

## Stay Updated

<CardGroup cols={1}>
  <Card title="Zap Changelog" icon="newspaper" iconType="solid" href="/developer-guides/zap/changelog">
    Program and TypeScript SDK changes that affect integration planning.
  </Card>
</CardGroup>
