# Integrating RAILGUN

RAILGUN’s largest advancement in privacy technology is the ability to interact with smart contracts native to chains where RAILGUN is deployed. Through ZK proofs and the cryptography described above, as well as additional smart contracts (called Adapt Modules), privacy can be added to any on-chain dApp. Adapt Modules form the core of the RAILGUN SDK. For developers, the fact that RAILGUN lives directly on-chain means that they do not have to refactor their existing code and deploy contracts on unproven networks with no liquidity. They can integrate RAILGUN with confidence that their dApps will be just as secure as before, as the system is as secure as the main blockchain, with no security tradeoffs.

For developers, the theoretical maximum user base for integrating the RAILGUN SDK is all of their existing users plus any additional privacy-conscious users. Users do not have to wait for new dApps to be built or redeployed on an off-chain solution nor do they have to wait for liquidity to arrive as it already is present in the underlying dApp. RAILGUN and its SDK thus has the best product market fit out of any privacy solution.

Adapt Modules are separate smart contracts to the main RAILGUN privacy smart contracts, this architecture has 2 key advantages:

1. Increased security and protection of privacy as the external integrations of RAILGUN cannot contaminate the main codebase.
2. Ease of implementation with existing smart contracts and dApps due to less unnecessary bloat.

Adapt Modules form the core of the RAILGUN SDK which is the flexible and powerful toolkit that allows developers to bring privacy to their applications. For developers, the fact that RAILGUN lives directly on-chain means that they do not have to refactor their existing code and deploy contracts on unproven networks with no liquidity. They can integrate RAILGUN with confidence that their dApps will be just as secure as before as the system is as secure as the main blockchain with no security tradeoffs.


---

# 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.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.
