The application has two entry points:
The feature set depends on the entry point meaning that Embedded Wallet might not need all the features of Standalone Wallet and vice versa.
Embedded wallet
The embedded wallet is the wallet instance intended to be loaded in IFRAME and controlled by the Wallet SDK via Communication layer. It has minimal UI: widget, authentication and approval modals (eg. TX signing) and much lower bundle size than the standalone version.
Standalone wallet
The standalone wallet is a full featured wallet instance which is opened in browser window. In comparison to the embedded version it does not initialize the Communication layer but includes much more UI elements and has bigger bundle size.
There is a case when the standalone wallet is opened from the context of embedded version, eg. when user clicks Open Wallet from the widget. In this mode both instances share their state (balance, selected account, etc.) via Shared state.
Summary
Cere Wallet client is a React application with MobX as business logic and application state layer. The application is deployed to each our environment and works in two modes: Embedded (IFRAME) and Full Page.
GitHub: https://github.com/cere-io/cere-wallet-client