diff --git a/README.md b/README.md index 8114ae182a..6687774d5e 100644 --- a/README.md +++ b/README.md @@ -5,72 +5,122 @@ > The most powerful open source wallet infrastructure for the multi-chain world. +## Table of Contents + +- [Official Releases](#official-releases) +- [Building Locally](#building-locally) + - [Browser Extension](#building-browser-extension) + - [Mobile App](#building-mobile-app) +- [Packages](#packages) +- [Dapp Integration](#dapp-integration) +- [Disclaimer](#disclaimer) +- [License](#license) + ## Official Releases -> NOTE: We do not accept native integrations to the official releases through pull requests. Please feel free to check out [Keplr Chain Registry repo](https://github.com/chainapsis/keplr-chain-registry) for permissionless integrations with your chain. +> **Note:** We do not accept native chain integrations to the official releases through pull requests. Please check out the [Keplr Chain Registry](https://github.com/chainapsis/keplr-chain-registry) for permissionless integrations with your chain. -You can find the latest versions of the official managed releases on these links: +### Browser Extension -- Browser Extension - - Keplr officially supports [Chrome](https://chrome.google.com/webstore/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap), [Firefox](https://addons.mozilla.org/en-US/firefox/addon/keplr/), and [Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/keplr/ocodgmmffbkkeecmadcijjhkmeohinei). -- [iOS App](https://apps.apple.com/us/app/keplr-wallet/id1567851089) -- [Android App](https://play.google.com/store/apps/details?id=com.chainapsis.keplr) +| Browser | Link | +| ------- | ---- | +| Chrome | [Chrome Web Store](https://chrome.google.com/webstore/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap) | +| Firefox | [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/keplr/) | +| Microsoft Edge | [Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/keplr/ocodgmmffbkkeecmadcijjhkmeohinei) | -For help using Keplr Wallet, Visit our [User Support Site](https://help.keplr.app/). +### Mobile App -## Building browser extension locally +| Platform | Link | +| -------- | ---- | +| iOS | [App Store](https://apps.apple.com/us/app/keplr-wallet/id1567851089) | +| Android | [Google Play](https://play.google.com/store/apps/details?id=com.chainapsis.keplr) | -### Requirements +For help using Keplr Wallet, visit our [User Support Site](https://help.keplr.app/). -- protoc v21.3 (recommended) +## Building Locally + +### Prerequisites - ```sh - # This script is example for mac arm64 user. for other OS, replace URL(starts with https://..) to be matched with your OS from https://github.com/protocolbuffers/protobuf/releases/tag/v21.3 - curl -Lo protoc-21.3.zip https://github.com/protocolbuffers/protobuf/releases/download/v21.3/protoc-21.3-osx-aarch_64.zip - unzip protoc-21.3.zip -d $HOME/protoc - cp -r $HOME/protoc/include /usr/local - cp -r $HOME/protoc/bin /usr/local - ``` - - [Node.js v18+](https://nodejs.org/) - -Clone this repo and run: +- protoc v21.3 (recommended) + +```sh +# macOS (Apple Silicon) +curl -Lo protoc-21.3.zip https://github.com/protocolbuffers/protobuf/releases/download/v21.3/protoc-21.3-osx-aarch_64.zip + +# macOS (Intel) +curl -Lo protoc-21.3.zip https://github.com/protocolbuffers/protobuf/releases/download/v21.3/protoc-21.3-osx-x86_64.zip + +# Linux +curl -Lo protoc-21.3.zip https://github.com/protocolbuffers/protobuf/releases/download/v21.3/protoc-21.3-linux-x86_64.zip + +# Install +unzip protoc-21.3.zip -d $HOME/protoc +cp -r $HOME/protoc/include /usr/local +cp -r $HOME/protoc/bin /usr/local +``` + +For other OS versions, check the [protobuf releases page](https://github.com/protocolbuffers/protobuf/releases/tag/v21.3). + +### Building Browser Extension ```sh +# Install dependencies and build yarn && yarn build ``` -You can find the build output of Keplr Extension in apps/extension/build/manifest-v3. This output only works on Chrome now, so we recommend using other build outputs (in apps/extension/build/manifest-v2 or apps/extension/build/firefox) for other browsers. You can visit [this page](https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked) for instructions on loading the build output on Chrome. +Build outputs are located in: + +| Output Path | Browser Support | +| ----------- | --------------- | +| `apps/extension/build/manifest-v3` | Chrome (Manifest V3) | +| `apps/extension/build/manifest-v2` | Other Chromium browsers | +| `apps/extension/build/firefox` | Firefox | + +To load the extension in Chrome, follow the [Chrome extension development guide](https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked). + +### Building Mobile App + +```sh +# Install dependencies +yarn + +# iOS +cd apps/mobile && npx pod-install + +# Run iOS +yarn ios + +# Run Android +yarn android +``` ## Packages -| Package | Description | Latest | -| ------- | ----------- | -------| -| [@keplr-wallet/background](packages/background) | The core logic of wallet running in the background. Interfaces to communicate with other processes are also defined. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/background.svg)](https://www.npmjs.com/package/@keplr-wallet/background)| -| [@keplr-wallet/cosmos](packages/cosmos) | Interfaces that are compatible with the data from Cosmos SDK, Tendermint based chains. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/cosmos.svg)](https://www.npmjs.com/package/@keplr-wallet/cosmos) | -| [@keplr-wallet/crypto](packages/crypto) | Implementations of key cryptography for wallet. Hashing (sha256, keccak256), elliptic curve (secp256k1), HD key derivation (BIP-32, BIP-39). | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/crypto.svg)](https://www.npmjs.com/package/@keplr-wallet/crypto) | -| [@keplr-wallet/proto-types](packages/proto-types) | scripts to generate `.proto` files into typescript files, and the types generated.| [![npm version](https://img.shields.io/npm/v/@keplr-wallet/proto-types.svg)](https://www.npmjs.com/package/@keplr-wallet/proto-types) | -| [@keplr-wallet/provider](packages/provider) | Implementations that makes some of the wallet's core logic externally available. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/provider.svg)](https://www.npmjs.com/package/@keplr-wallet/provider) | -| [@keplr-wallet/router](packages/router) | Interfaces used to communicate with the background. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/router.svg)](https://www.npmjs.com/package/@keplr-wallet/router) | -| [@keplr-wallet/stores](packages/stores) | The core logic of application's state, query and wallet is implemented on top of Mobx. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/stores.svg)](https://www.npmjs.com/package/@keplr-wallet/stores) | -| [@keplr-wallet/types](packages/types) | Types used across packages. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/types.svg)](https://www.npmjs.com/package/@keplr-wallet/types) | -| [@keplr-wallet/unit](packages/unit) | Interfaces defined to handle token quantities and values, integers, floating points, etc. | [![npm version](https://img.shields.io/npm/v/@keplr-wallet/unit.svg)](https://www.npmjs.com/package/@keplr-wallet/unit) | +| Package | Description | Version | +| ------- | ----------- | ------- | +| [@keplr-wallet/background](packages/background) | Core wallet logic running in the background with process communication interfaces | [![npm](https://img.shields.io/npm/v/@keplr-wallet/background.svg)](https://www.npmjs.com/package/@keplr-wallet/background) | +| [@keplr-wallet/cosmos](packages/cosmos) | Cosmos SDK and Tendermint compatible interfaces | [![npm](https://img.shields.io/npm/v/@keplr-wallet/cosmos.svg)](https://www.npmjs.com/package/@keplr-wallet/cosmos) | +| [@keplr-wallet/crypto](packages/crypto) | Cryptographic implementations: SHA256, Keccak256, secp256k1, BIP-32/39 | [![npm](https://img.shields.io/npm/v/@keplr-wallet/crypto.svg)](https://www.npmjs.com/package/@keplr-wallet/crypto) | +| [@keplr-wallet/proto-types](packages/proto-types) | Protocol buffer type definitions and generation scripts | [![npm](https://img.shields.io/npm/v/@keplr-wallet/proto-types.svg)](https://www.npmjs.com/package/@keplr-wallet/proto-types) | +| [@keplr-wallet/provider](packages/provider) | External provider implementations for wallet core logic | [![npm](https://img.shields.io/npm/v/@keplr-wallet/provider.svg)](https://www.npmjs.com/package/@keplr-wallet/provider) | +| [@keplr-wallet/router](packages/router) | Background communication interfaces | [![npm](https://img.shields.io/npm/v/@keplr-wallet/router.svg)](https://www.npmjs.com/package/@keplr-wallet/router) | +| [@keplr-wallet/stores](packages/stores) | MobX-based state management, queries, and wallet logic | [![npm](https://img.shields.io/npm/v/@keplr-wallet/stores.svg)](https://www.npmjs.com/package/@keplr-wallet/stores) | +| [@keplr-wallet/types](packages/types) | Shared type definitions | [![npm](https://img.shields.io/npm/v/@keplr-wallet/types.svg)](https://www.npmjs.com/package/@keplr-wallet/types) | +| [@keplr-wallet/unit](packages/unit) | Token quantity and value handling utilities | [![npm](https://img.shields.io/npm/v/@keplr-wallet/unit.svg)](https://www.npmjs.com/package/@keplr-wallet/unit) | -## Dapp example +## Dapp Integration -Refer to the [Keplr Example repository](https://github.com/chainapsis/keplr-example) for examples of how to integrate Keplr signing support for your web interface/application. +For examples of integrating Keplr signing support into your web application, refer to the [Keplr Example Repository](https://github.com/chainapsis/keplr-example). ## Disclaimer -Usage of any other packages besides @keplr-wallet/types is not recommended. +> **Important:** Usage of packages other than `@keplr-wallet/types` is not recommended for external projects. -- Any other packages besides @keplr-wallet/types are actively being developed, backward compatibility is not in the scope of support. -- Since there are active changes being made, documentation is not being updated to the most recent version of the package as of right now. Documentations would be updated as packages get stable. - -Also, this repo contains submodules that are not open sourced and are only available through the Chainapsis’ official Keplr Browser Extension release. However, all primary features of the extension will work without the closed sourced submodules. +- All packages except `@keplr-wallet/types` are under active development without backward compatibility guarantees +- Documentation may not reflect the latest package versions until packages stabilize +- This repository contains private submodules available only in Chainapsis' official releases; however, all primary features work without them ## License -### Browser Extension - -Apache 2.0 License +Apache 2.0 License - see [LICENSE](LICENSE) for details.