Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 92 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Loading