# RAILGUN SDKs

The RAILGUN SDKs are written in TypeScript and come in 2 forms depending on the needs of any integrating dApps:

* [RAILGUN Cookbook](https://docs.railgun.org/developer-guide/cookbook/cookbook-overview) - Easily integrate RAILGUN into any existing dApp to enable private features such as private lending, private trading, private minting, etc.
* ​[Wallet SDK](https://docs.railgun.org/developer-guide/wallet/wallet-overview) – Toolkit to integrate RAILGUN as a private mode for wallets.

[RAILGUN Cookbook](https://docs.railgun.org/developer-guide/cookbook/cookbook-overview) is suitable for most dApp developers integrating RAILGUN. It enables users to call your public smart contract from a private 0zk address. Calls can also be linked together in "Recipes" such that users can combine multiple DeFi actions together in a single transaction. For example, a user might be able to go from stablecoins in a 0zk address to providing liquidity in a DEX and depositing that liquidity into a yield optimizer such as Beefy Finance, all in the same Cookbook Recipe.

With Wallet SDK, developers can quickly and simply add RAILGUN privacy to their wallets to perform the following RAILGUN actions:

* Generate private keys and 0zk addresses
* Generate deposits into private balances
* Scan interaction history and sync balances
* Generate ZK proofs for withdrawals, to send interactions, and to initiate cross-contract calls

The `generateDeposit()` and `transact()` functions are contained within the Wallet SDK and are callable by dApps once integrated.

**Links:**&#x20;

Developer Guide - <https://docs.railgun.org/developer-guide> \
RAILGUN Cookbook GitHub: <https://github.com/Railgun-Community/cookbook>\
Wallet SDK GitHub - <https://github.com/Railgun-Community/quickstart>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.railgun.org/wiki/learn/integrating-railgun/railgun-sdks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
