Samsung Blockchain Keystore puts consumers in control of their data by providing a platform to consolidate and easily manage private information and digital keys with vaultlike security. Samsung Blockchain Keystore is isolated within the Samsung Knox TrustZone and protected by defense-grade Trusted Execution Environment (TEE) software. To ensure complete security, the private key and information located in the Samsung Blockchain Keystore are never saved to a Samsung or external cloud, nor is it seen by the devices’ Android OS. This allows Samsung Blockchain Keystore to provide security unlike ever before, protecting information from data breaches, malware, or other threats.
The Samsung Blockchain Keystore stores and processes private data to allow:
Create, store, manage, and backup of a private key, including the ability to import already generated private keys from third-party applications. This can be protected through a preset mandatory PIN, with the option of further protection through fingerprint authentication.
Authorization of digital signatures for use with your Android app and services that require a private key for stronger security during encrypted transactions or purchases.
The facilitation of a Trusted User Interface (Trusted UI) ensures the information exchanged between trusted applications and consumers that can’t be accessed or modified by any malware or unauthorized application.
Enabling cryptocurrency transactions (please refer to Keystore SDK Restrictions section for more details).
- API Key will be issued after the internal team’s review. It may take several weeks to complete the review process if there are many submissions.
- An additional DApp partnership is required for listing on the Samsung Blockchain Wallet.
Please refer to the Getting Started section in the Programming Guide for more details in each step.
Samsung Blockchain Keystore SDK allows your Android DApp to communicate directly with Samsung Blockchain Keystore, a preloaded feature on selected Galaxy devices. By integrating Samsung Blockchain Keystore SDK into your Android app, you can leverage the following:
- Get Blockchain address to link to the Samsung Blockchain Keystore
Developers can link user’s Blockchain address like a user’s account. With the address returned from Samsung Blockchain Keystore, developers can check and show users how much cryptocurrency balance is in the account as well as view the transaction history. Samsung Blockchain Keystore supports BIP-39 compatible HD (Hierarchical Deterministic) Wallet – a standard tree structure, represented by derivation paths. Developers can use Samsung Blockchain Keystore API to enter an HD Path. Samsung Blockchain Keystore will derive the address from the public key that corresponds to the HD Path so developers can simply receive and utilize the address in return.
- Sign a cryptocurrency transaction
Developers can use Samsung Blockchain Keystore API to request the Samsung Blockchain Keystore to sign a cryptocurrency transaction. Samsung Blockchain Keystore will show the requested transaction to the user on a secure screen called, Trusted User Interface (TUI), executed in the Trusted Execution Environment (TEE). Once the user checks the transaction information and confirms the transaction with a PIN or a biometric authentication like Fingerprint, Samsung Blockchain Keystore will sign the transaction with a private key derived from the Root Seed stored in the Secure File system.
- Check Samsung Blockchain Keystore status
Developers can use an API provided by the Samsung Blockchain Keystore to check if a user is ready to use Samsung Blockchain Keystore. If the user has not created a wallet yet, developers can direct the user to create a new wallet to leverage Samsung Blockchain Keystore features. When a user chooses “Create a Wallet”, it implies that a Root Seed is created and stored safely in the Secure File system. The user can also “Import a Wallet” by entering mnemonic words created from a different wallet, thereby restoring the Root Seed. Samsung Blockchain will check the existence of a Root Seed and return the status value.