Skip to content

hot-dao/hot-sdk-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HOT Wallet SDK

Connector for Injected Apps

  • Support HOT Extension

  • Support Telegram/Mobile App via Iframe Widget

  • Solana Connect

  • TON Connect

  • EVM Connect

  • NEAR Connect

Solana Connect

import { HOT } from "@hot-wallet/sdk";
import { HotWalletAdapter } from "@hot-wallet/sdk/adapter/solana";

// for @solana/wallet-adapter-base
const adapter = new HotWalletAdapter();

// Or low level api
await HOT.request("solana:connect", {});
await HOT.request("solana:signMessage", { ... });
await HOT.request("solana:signTransactions", { ... });
await HOT.request("solana:signAndSendTransaction", { ... });

NEAR Connect

import { setupHotWallet } from "@hot-wallet/adapter/near";
// Setup near-wallet-selector with setupHotWallet()

// Or use low level api
import { HOT } from "@hot-wallet/sdk";
await HOT.request("near:signIn", {});
await HOT.request("near:signMessage", { ... });
await HOT.request("near:signAndSendTransaction", { ... });

TON Connect

import "@hot-wallet/sdk/adapter/ton";
// After this you can use @tonconnect/sdk as you want

// Or use low lvel api
import { HOT } from "@hot-wallet/sdk";
await HOT.request("ton:connect", {});
await HOT.request("ton:send", { ... });

EVM Connect

If the application is opened inside HOT, then your wallet-selector (web3modal or rainbowkit) will automatically see the HOT wallet:

import "@hot-wallet/sdk";

If you integrate HOT on a website or a separate Telegram miniapp, you need to call the method:

import { HOT } from "@hot-wallet/sdk";
HOT.setupEthProvider((request, chain, address) => {
  // use rpc for connected chain and address
  return yourPublicRpcProvider[chain]?.request(request);
});

hotProvider implements methods that require a private key signature. All other methods that need to be sent to the network you must implement yourself. You can use your own rpc for this in conjunction with etherjs or web3 library.

// Or use low lvel api
import { HOT } from "@hot-wallet/sdk";
await HOT.request("ethereum", { ... });

Stellar Connect

// Compatible with https://github.com/Creit-Tech/Stellar-Wallets-Kit
import { HotWalletModule } from "@hot-wallet/adapter/stellar";

// Or use low level api
import { HOT } from "@hot-wallet/sdk";
await HOT.request("stellar:getAddress", {});
await HOT.request("stellar:signTransaction", { ... });
await HOT.request("stellar:signAuthEntry", { ... });
await HOT.request("stellar:signMessage", { ... });

Debug Injected App

Default example app with chains connector:

  1. Open https://t.me/herewalletbot/app?startapp=browser
  2. Enter https://hot-example-connect.surge.sh inside HOT Wallet

You can replace hot-example-connect.surge.sh with your own domain (or localhost:PORT) to debug app!

Happy hacking

About

hot-sdk-js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages