Skip to content

Deland-Labs/hibit-id

Repository files navigation

Introduction

HiBit ID is a web-based multi-chain crypto wallet, with SDK for DApp integration.

It supports a variety of popular third-party login methods which links user's Web2 accounts seamlessly to the Web3 world.

Supported Third-party Login Methods

  • Telegram
  • Google
  • Facebook
  • X
  • Apple
  • Github
  • and more...

Supported Chains

  • Ethereum
  • BNB Smart Chain
  • Base
  • Avalanche
  • Scroll
  • Bitlayer
  • Ton
  • Solana
  • Bitcoin
  • Tron
  • and more...

Integration

Install SDK

yarn add @delandlabs/hibit-id-sdk

Usage

import {
  HibitIdWallet,
  HibitIdChainId,
  WalletAccount,
  HibitIdAssetType,
} from "@delandlabs/hibit-id-sdk"
// remember to import styles for the wallet
import '@delandlabs/hibit-id-sdk/dist/style.css';

// init hibitid wallet
const hibitId = new HibitIdWallet({
  env: 'prod',  // 'prod' or 'test'
  chains: [
    HibitIdChainId.Ethereum,
    HibitIdChainId.Ton,
  ],
  defaultChain: HibitIdChainId.Ethereum,
})

// connect
const walletAccount: WalletAccount = await hibitId.connect(HibitIdChainId.Ethereum)

// sign
const signature: string = await hibitId.signMessage(msg)

// get balance
const balance: string = await hibitId.getBalance({
  assetType: HibitIdAssetType.ERC20,
  chainId: HibitIdChainId.Ethereum,
  contractAddress: '0x......',  // required for non-native tokens
  decimalPlaces: 18,
})

// transfer
const txId: string = await hibitId.transfer({
  toAddress: '0x......',
  amount: '0.1',
  assetType: HibitIdAssetType.ERC20,
  contractAddress: '0x......',  // required for non-native tokens
  decimalPlaces: 18,
})

// switch chain
await hibitId.switchToChain(HibitIdChainId.TonMainnet)

// listen to events
hibitId.addEventListener('chainChanged', (chainId: HibitIdChainId) => {
  console.log(chainId)
});
hibitId.addEventListener('accountsChanged', (account: WalletAccount | null) => {
  console.log(account)
});

// remove event listeners
hibitId.removeEventListener('chainChanged', chainChangedHandler);
hibitId.removeEventListener('accountsChanged', accountsChangedHandler);

TonConnect integration

Please refer to hibit-id-examples for TonConnect integration.