This document is intended for external audiences.
This section is an overview of the interactions of the various systems on an application level to outline what information is shared across different systems.
Note: Sandbox Controller / Auth Provider / Chain Provider / Keyring Provider are Typescript classes that are abstractions for interfacing with different systems.
- Client application (example: opensea.com) uses the SDK to initiate authentication and wallet functionalities
- Relayer (relayer.marblewallet.com) loads through the SDK as an
- SDK communicates with the relayer through
- Relayer opens modals for information that needs to be directly communicated to and from the user (e.g. accepting user credentials, displaying transaction information).
- Relayer communicates with the MPC Server for authentication + distributed key generation, threshold signatures (MPC crypto operations).
- Relayer uses the WASM binary for MPC crypto operations.
- Written based on Go-Chi library that support various REST APIs for the client.
- Postgres as data store.
- AWS KMS used for additional encryption of sensitive info.