core
core copied to clipboard
Gem Wallet Core library in Rust
Gem Core Library
The Gem Core library is a Rust monorepo that serves as the backend infrastructure and cross platform libraries for the Gem Wallet on Android and iOS. It handles various tasks, including:
- Push notifications
- Pricing information
- Asset updating
- Shared modes using TypeShare
- Crypto primitives
- More
Gemstone
The Gemstone is a cross-platform library for Swift and Kotlin.
Cryptography
The underlying cryptography / keystore for Gem Wallet is implemented using Trust Wallet Core for now.
graph LR
client[Gem Wallet iOS / Android]
core-lib[Gem Wallet Core]
trust-core[Trust Wallet Core]
client-- pricing, notification and ... -->core-lib
client-- cryptography such as seed generation and ... -->trust-core
Note: According to the roadmap, in the future, the client will only interact with the Gem Wallet Core, and the interaction with the Trust Wallet Core will be the responsibility of the Gem Wallet Core.
Running
Setup Core
Run make install to install rust, typeshare
Setup DB
- Create a new database
apiand grant privileges tousernamerole - Run
diesel migration runto create tables and do migrations
Supported Chains
| Chain | Transfers | Token Transfers |
|---|---|---|
| Bitcoin | ✅ | -- |
| Litecoin | ✅ | -- |
| Doge | ✅ | -- |
| Ethereum | ✅ | ✅ |
| SmartChain | ✅ | ✅ |
| Solana | ✅ | ✅ |
| Polygon | ✅ | ✅ |
| Thorchain | ✅ | 🏗 |
| Cosmos | ✅ | 🏗 |
| Osmosis | ✅ | 🏗 |
| Arbitrum | ✅ | ✅ |
| Ton | ✅ | 🏗 |
| Tron | ✅ | ✅ |
| Optimism | ✅ | ✅ |
| Aptos | ✅ | 🏗 |
| Base | ✅ | ✅ |
| AvalancheC | ✅ | ✅ |
| Sui | ✅ | 🏗 |
| Xrp | ✅ | 🏗 |
| OpBNB | ✅ | ✅ |
List of available chains specified in primitives package.