> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/docs/embedded-wallet-high-level-architecture",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# High-Level Architecture

<Note>
  For Fireblocks' recommended embedded wallet solution, see [Dynamic Embedded Wallets](/docs/dynamic-embedded-wallets). The documentation below covers the legacy Embedded Wallet APIs and SDKs.
</Note>

# Overview

The Fireblocks Embedded Wallet (EW), formerly Non-Custodial Wallet (NCW), architecture is designed with a minimalistic approach to provide maximum flexibility and ease of use.

Fireblocks provides Android, iOS, and Web SDKs for easily integrating EW functionality into your mobile and web applications. The mobile and web SDKs focus solely on MPC key provisioning, signing, and backup/recovery.

# Integration Components

There are two main components required for integrating the Fireblocks EW feature:

1. **Client-side application:** A mobile or web app with the EW SDK implemented.
2. **Fireblocks:** An EW-enabled workspace.

The current architecture uses a client-only approach, where the SDK communicates directly with Fireblocks APIs — no backend server is required.

<img src="https://mintcdn.com/fireblocks-43c4b3ee/8uV7V_rBjqF0ZDAg/images/docs/2c0f2a8dea4351b645be22ce6141418f658118a4d97ce9e08aedca0c7d07618c-ew_saas_architecture.png?fit=max&auto=format&n=8uV7V_rBjqF0ZDAg&q=85&s=2bf1df67c5088bf03ed3fd64f5f664de" alt="" width="1608" height="1088" data-path="images/docs/2c0f2a8dea4351b645be22ce6141418f658118a4d97ce9e08aedca0c7d07618c-ew_saas_architecture.png" />

# Optional: Backend Proxy Server

In the current architecture, a backend server is not required. However, some customers may choose to implement a backend proxy server for advanced use cases like request validation, rate limiting, or additional business logic.

## Example of EW creation

1. create a wallet (assign) -> `ew.assignWallet()`

* The client SDK calls the `assignWallet()` method, which communicates directly with Fireblocks to create the wallet if it doesn't exist yet.
* The client application can store the wallet ID and continue with other wallet operations.
