# Security

## 🔐 Wallet Creation & Security

Caishen's wallet infrastructure is built from the ground up with **user sovereignty and security** at its core. While inspired by modern cryptographic techniques, we intentionally avoid disclosing implementation specifics to reduce attack surface awareness.

***

### 🚫 No Centralized Private Key Storage

Caishen **never stores complete private keys—anywhere**.

Our architecture ensures that no single system, service, or entity can ever reconstruct a user's full private key independently.

***

### 🧩 Key Sharding and Secure Assembly

Wallet keys are generated using a **secure, distributed process** and then cryptographically split into multiple independent **key shares**.

These shares are distributed across multiple trusted factors, which may include:

* User-controlled elements
* Device-resident data
* Confidential authentication vectors

***

### 🔐 Threshold-Based Access

To use a wallet for a transaction:

* A **minimum threshold of shares** is required
* Shares are **securely reassembled just-in-time**
* The key only exists **ephemerally**, during the operation
* Nothing is stored or cached after use

***

### 👤 Self-Custodial by Design

Caishen is designed so that:

* **Only the user or agent** can trigger key reassembly
* Even with backend access, **no one (including Caishen)** can unilaterally recreate or use a private key
* All wallet actions are initiated and approved **by the user or agent** exclusively


---

# 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.caishen.tech/essentials/security.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.
