# How it Works

This section offers developers an insight into the operational framework and core mechanisms of the xchain crypto blockchain library.&#x20;

It provides a structured overview of how developers can effectively utilize the library's features and functionalities to interact with diverse blockchain networks.

Typically keystore files encrypt a `seed` to a file, however, this is not appropriate or UX-friendly, since the phrase cannot be recovered after the fact.

Crypto design:

\[`entropy`] -> \[`phrase`] -> \[`seed`] -> \[`privateKey`] -> \[`publicKey`] -> \[`address`]

Instead, `XCHAIN-CRYPTO` stores the phrase in a keystore file, then decrypts and passes this phrase to other clients:

\[`keystore`] -> `XCHAIN-CRYPTO` -> \[`phrase`] -> `ChainClient`

The ChainClients can then convert this into their respective key pairs and addresses. Users can also export their phrases after the fact, ensuring they have saved them securely. This could enhance UX onboarding since users aren't forced to write their phrases down immediately for empty or test wallets.


---

# 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://xchainjs.gitbook.io/xchainjs/others/xchain-crypto/how-it-works.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.
