Owallet
OWallet: Bitcoin x Cosmos-based x EVM in one wallet
Install / Use
/learn @owallet-io/OwalletREADME
OWallet
Overviews
OWallet: Universal gateway to Web3 in single native wallet
OWallet supports all web3 activities on most common liqudity networks, which are
- Bitcoin
- EVM-based: Ethereum, BNB Chain, Oasis / Oasis Sapphire
- Cosmos-based: Oraichain, Osmosis, Injective, Cosmos Hub...
- TVM-based: TRON network
- SVM-based: Solana network
OWallet’s key features
- Supports multiple accounts Bitcoin & Cosmos-based & EVM-based networks simultaneously
- Universal swap across various networks
- Portfolio management with cross-chain assets: Multi accounts, Send/Recieve, Price history...
- History of on-chain activities
- Friendly interface on transaction confirmation
Technical Overview
Context Level

Core Components Level

On-chain History Backend Design

Technical inquiries
- Source code: https://github.com/oraichain/owallet
- Support ticket: https://orai.io/support
- OWallet website: https://owallet.io
- Discord: https://discord.gg/XdTVgzKc
You can create a pull request to add your network
Install guide
- Git clone this repo to desired directory
git clone --recurse-submodules git@github.com:owallet-io/owallet.git
- Install required packages
yarn or yarn install
- Create a .env file in the apps/mobile folder.
API_KEY=
SENDER_ID=
APP_ID=
SENTRY_DSN=
SENTRY_TOKEN=
MIX_PANEL_TOKEN=
WC_PROJECT_ID=
BYTE_BREW_ID_ANDROID=
BYTE_BREW_SDK_KEY_ANDROID=
BYTE_BREW_ID_IOS=
BYTE_BREW_SDK_KEY_IOS=
- Build necessary packages
yarn build:libs
- Install Pod for iOS
cd apps/mobile && yarn pod:install
- Run it
Get into apps/mobile and run
- iOS
yarn ios
- Android
yarn android
Chain integration
Chain config
| Property | Type | Function |
| ------------- |:-------------:| -----:|
| rpc | string | RPC of a blockchain |
| rest | string | LCD of a blockchain |
| chainId | string | Chain ID |
| chainName | string | Chain Name |
| networkType | string | Network Type ("cosmos" or "evm"): To declare whether the network is Cosmos-based or Ethereum Virtual Machine (EVM)-based |
| stakeCurrency | {coinDenom: string, coinMinimalDenom: string, coinDecimals: number, coinGeckoId: string, coinImageUrl: string, gasPriceStep: { low: number, average: number, high: number}} | Native stake currency
| bip44 | { coinType: number} | Bip44 config |
| coinType | number | The coin type is usually 118 for Cosmos, 60 for EVM |
| bech32Config | Bech32Address.defaultBech32Config(string) | Config for bech32 address |
| currencies | Array<Currency> | Currencies of the chain |
| feeCurrencies | Array<Currency> | Fee currencies of the chain |
| features | Array<Currency> | To declare what features this chain have(ex: ["ibc-transfer", "cosmwasm")]) |
| chainSymbolImageUrl | string | Chain symbol image URL |
| txExplorer | {name: string, txUrl: string, accountUrl: string} | Transaction explorer config |
How to add a chain into OWallet?
- Clone this repo to desired directory
git clone --recurse-submodules git@github.com:owallet-io/owallet.git
- Checkout to main
git checkout main
- Checkout to new branch
git checkout -b feat/add-new-chain-config
- Create PR into main
If your chain needs to use special packages, please consider taking a look at the [CONTRIBUTING.md](Packages Usage) section to learn how to implement your chain into OWallet
Example
{
rpc: "https://rpc.ankr.com/eth",
rest: "https://rpc.ankr.com/eth",
chainId: "0x01",
chainName: "Ethereum",
bip44: {
coinType: 60,
},
coinType: 60,
stakeCurrency: {
coinDenom: "ETH",
coinMinimalDenom: "eth",
coinDecimals: 18,
coinGeckoId: "ethereum",
coinImageUrl:
"https://s2.coinmarketcap.com/static/img/coins/64x64/1027.png",
gasPriceStep: {
low: 1,
average: 1.25,
high: 1.5,
},
},
chainSymbolImageUrl:
"https://s2.coinmarketcap.com/static/img/coins/64x64/1027.png",
bech32Config: Bech32Address.defaultBech32Config("evmos"),
networkType: "evm",
currencies: [
{
coinDenom: "ETH",
coinMinimalDenom: "eth",
coinDecimals: 18,
coinGeckoId: "ethereum",
coinImageUrl:
"https://s2.coinmarketcap.com/static/img/coins/64x64/1027.png",
},
{
coinDenom: "OCH",
coinMinimalDenom:
"erc20:0x19373EcBB4B8cC2253D70F2a246fa299303227Ba:OCH Token",
contractAddress: "0x19373EcBB4B8cC2253D70F2a246fa299303227Ba",
coinDecimals: 18,
coinGeckoId: "och",
coinImageUrl:
"https://assets.coingecko.com/coins/images/34236/standard/orchai_logo_white_copy_4x-8_%281%29.png",
},
{
coinDenom: "ORAI",
coinMinimalDenom:
"erc20:0x4c11249814f11b9346808179cf06e71ac328c1b5:Oraichain Token",
contractAddress: "0x4c11249814f11b9346808179cf06e71ac328c1b5",
coinDecimals: 18,
coinGeckoId: "oraichain-token",
coinImageUrl:
"https://s2.coinmarketcap.com/static/img/coins/64x64/7533.png",
},
{
coinDenom: "ORAIX",
coinMinimalDenom:
"erc20:0x2d869aE129e308F94Cc47E66eaefb448CEe0d03e:ORAIX Token",
contractAddress: "0x2d869aE129e308F94Cc47E66eaefb448CEe0d03e",
coinDecimals: 18,
coinGeckoId: "oraidex",
coinImageUrl: "https://i.ibb.co/VmMJtf7/oraix.png",
},
],
get feeCurrencies() {
return [this.stakeCurrency];
},
features: ["ibc-go", "stargate", "isEvm"],
txExplorer: {
name: "Etherscan",
txUrl: "https://etherscan.io/tx/{txHash}",
accountUrl: "https://etherscan.io/address/{address}",
},
}
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Release
License
Browser Extension
Apache 2.0
iOS / Android App
Copyright (c) 2022 Oraichain Labs Inc. All rights reserved.
Full text: LICENSE.txt
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
