# Shielder-SDK

Apart from the Shielder contract that is deployed on-chain, there is a number of other components of the Shielding Infrastructure that must be all put together to make it work. The full discussion of technical details is included in [https://github.com/Cardinal-Cryptography/blanksquare-gitbook/blob/main/key-concepts/broken-reference/README.md](https://github.com/Cardinal-Cryptography/blanksquare-gitbook/blob/main/key-concepts/broken-reference/README.md "mention") however let us briefly discuss here the most important parts:

* The ZK-SNARKs:
  * [ZK-circuits](https://github.com/Cardinal-Cryptography/zkOS-circuits/): low-level algebraic representation of the account logic in the Shielder.
  * Verifier: this part is deployed on-chain and the Shielder contract interacts with it in order to verify ZK-proofs included as part of transactions.
  * Prover: run by the end-user to construct ZK-proofs, locally, on user's device.
* Relayer network: user transaction in the shielder are put on chain by special actors called relayers to guarantee 100% unlinkability. Relayers charge fees for their services - see [Understanding Fees](/integration-guides/fees.md) for details.
* Viewing Keys: the user has access to special "viewing keys" which allows them to view all their past activity in shielder (while any other user can't see that). The user can also share this key with any other entity that they want to grant view access to their trace.

Shielder is integrated into user-facing applications via the Shielder-SDK (see [https://github.com/Cardinal-Cryptography/blanksquare-gitbook/blob/main/key-concepts/broken-reference/README.md](https://github.com/Cardinal-Cryptography/blanksquare-gitbook/blob/main/key-concepts/broken-reference/README.md "mention")), a library (currently available in JavaScript) that allows developers to integrate Shielder without any background in ZK or knowledge of how Shielder works under the hood. The Shielder-SDK provides a clear programmatic interface to Shielder, enabling the development of privacy-enhanced apps and wallets.

Currently, the Shielder-SDK offers maximum flexibility to developers in how privacy is integrated into their wallet or dApp. However, we plan to introduce higher-level building blocks, allowing developers to opt in to ready-to-use components—potentially trading off some flexibility for ease of use.


---

# 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.blanksquare.io/key-concepts/shielder-sdk.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.
