Skip to content

OWallet: Bitcoin x Cosmos-based x EVM in one wallet

License

Notifications You must be signed in to change notification settings

nrs-minhdoan/owallet

 
 

Repository files navigation

OWallet

License Twitter: OWallet

OWallet: Cosmos x EVM in one Wallet

OWallet is a secure, easy-to-use Web3 crypto wallet that empowers you to manage your digital assets with ease. OWallet supports both Cosmos-based and EVM-based networks, including Cosmos Hub, TRON, Oraichain, Osmosis, Ethereum, BNB Chain, and more.

OWallet is developed based on Keplr extension and currently maintained by Oraichain Labs.

OWallet’s key features

  • Strategic Portfolio Management: Experience a seamless multi-chain and multi-account management interface. Conveniently manage multiple accounts from a single interface;
  • Multi-Chain Support: Seamlessly track and manage your crypto assets across multiple blockchains, including Oraichain, Bitcoin, Ethereum, BNB Chain, TRON, Injective, Oasis, Osmosis, Noble, and Stargaze;
  • IBC Transfers: Enable secure and efficient Inter-Blockchain Communication (IBC) transfers;
  • CW20 Tokens: Improved sending and receiving of CW20 standard fungible tokens based on CosmWasm;
  • CosmWasm Compatibility: Compatible with CosmWasm;
  • Ledger Support: Future support for Ledger hardware wallets;
  • Universal Wallet & Swap: Utilize a universal wallet for Bitcoin, EVM, Oraichain, and Cosmos-SDK blockchains. Swap assets seamlessly with the Universal Swap and Smart Routing powered by OBridge Technologies;
  • Mobile and Web Extension: Available on mobile apps and web extensions for greater accessibility.

Technical inquiries

Install

  1. Git clone this repo to desired directory
git clone https://github.com/oraichain/owallet
  1. Install required packages
yarn
  1. Build necessary packages
yarn build:libs
  1. Build provider
cd packages/mobile && yarn build:provider
  1. Install Pod for iOS
cd packages/mobile/ios && pod install
  1. Run it

Get into packages/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?

  1. Clone this repo to desired directory
git clone https://github.com/oraichain/owallet
  1. Checkout to main
git checkout main
  1. Checkout to new branch
git checkout -b feat/add-new-chain-config
  1. 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

/*
 * Copyright 2022 Oraichain Labs JSC.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at

 *      http://www.apache.org/licenses/LICENSE-2.0

 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 
 * The repository (this work) includes work covered by the following copyright and permission notices:
 *
 *    Copyright 2020 Chainapsis, Inc
 *    Licensed under the Apache License, Version 2.0.
 * 
 * NOTICE: The source code branch of Chainapsis Inc. under Apache 2.0 license:
 *  https://github.com/chainapsis/keplr-wallet/tree/0e137373ac4f526caf97b4694de47fe1ba543bd8
 */

Full text: LICENSE.txt

About

OWallet: Bitcoin x Cosmos-based x EVM in one wallet

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 93.8%
  • JavaScript 4.0%
  • SCSS 1.5%
  • Ruby 0.4%
  • Java 0.2%
  • Objective-C 0.1%