Skip to content

satuchain/wallet-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SatuChain Wallet

@satuchain/wallet-sdk

Multi-chain wallet SDK for EVM, Solana & TON DApps.
Connect your DApp to SatuChain Wallet with just a few lines of code.

npm license chains


Prerequisites

Users need SatuChain Wallet installed to use this SDK.

The mobile app manages private keys securely. The browser extension connects via encrypted QR pairing. DApp developers integrate this SDK — end users install the wallet.


Install

npm install @satuchain/wallet-sdk
# or
yarn add @satuchain/wallet-sdk
pnpm add @satuchain/wallet-sdk

Quick Start

EVM (Ethereum, BNB Chain, Satuchain)

import { SatuChainEVM } from "@satuchain/wallet-sdk/evm";

const provider = new SatuChainEVM({ appName: "My DEX" });

// Connect — opens wallet approval popup
const accounts = await provider.connect();
console.log("Connected:", accounts[0]);

// Send transaction — opens tx approval popup
const txHash = await provider.sendTransaction({
  to: "0x...",
  value: "0x38D7EA4C68000", // 0.001 ETH in wei (hex)
});

// Sign message — opens sign approval popup
const signature = await provider.signMessage("Hello SatuChain!");

// Sign typed data (EIP-712)
const sig = await provider.signTypedData(typedData);

// Listen for events
provider.on("accountsChanged", (accounts) => console.log(accounts));
provider.on("chainChanged", (chainId) => console.log(chainId));

Solana

import { SatuChainSolana } from "@satuchain/wallet-sdk/solana";

const provider = new SatuChainSolana({ appName: "My DEX" });

// Connect
const { publicKey } = await provider.connect();
console.log("Connected:", publicKey);

// Sign message
const { signature } = await provider.signMessage("Hello SatuChain!");

// Sign and send transaction
const { signature: txSig } = await provider.signAndSendTransaction(base64Tx);

TON

import { SatuChainTON } from "@satuchain/wallet-sdk/ton";

const provider = new SatuChainTON({ appName: "My DEX" });

// Connect
const { address } = await provider.connect();
console.log("Connected:", address);

// Send transaction
const { hash } = await provider.sendTransaction({
  to: "EQ...",
  value: "1000000000", // 1 TON in nanoTON
});

// Sign proof (TON Connect)
const proof = await provider.signProof({ domain: "myapp.com", timestamp: Date.now(), payload: "..." });

All chains at once

import { SatuChainEVM, SatuChainSolana, SatuChainTON } from "@satuchain/wallet-sdk";

const evm = new SatuChainEVM();
const sol = new SatuChainSolana();
const ton = new SatuChainTON();

Detection

import { isSatuChainInstalled, waitForSatuChain, EXTENSION_URL } from "@satuchain/wallet-sdk";

if (!isSatuChainInstalled()) {
  // Show install prompt — redirect to wallet download
  window.open("https://wallet.satuchain.com");
} else {
  // Connect
}

// Or wait for injection (max 3s)
const installed = await waitForSatuChain();

EVM — EIP-1193 Compatible

The EVM provider implements the EIP-1193 standard, so it works with:

  • ethers.js: new ethers.BrowserProvider(provider)
  • viem: createWalletClient({ transport: custom(provider) })
  • web3.js: new Web3(provider)
import { ethers } from "ethers";
import { SatuChainEVM } from "@satuchain/wallet-sdk/evm";

const satuProvider = new SatuChainEVM();
await satuProvider.connect();

const provider = new ethers.BrowserProvider(satuProvider);
const signer = await provider.getSigner();
const balance = await provider.getBalance(signer.address);

Transaction Approval

All sensitive operations require user approval via the extension popup:

Action Popup Type Color
eth_requestAccounts Connection Request Blue
sol_requestAccounts Connection Request (Solana) Purple
ton_requestAccounts Connection Request (TON) Cyan
eth_sendTransaction Transaction Approval Orange
personal_sign Signature Request Blue
eth_signTypedData_v4 Signature Request Blue

Contract interactions are auto-detected:

Method Detected As
0xa9059cbb Transfer
0x095ea7b3 Approve
0x38ed1739 Swap Exact Tokens
0x7ff36ab5 Swap Exact ETH
0xe8e33700 Add Liquidity
0xa694fc3a Stake
0x1249c58b Mint

Supported Chains

Chain Chain ID Provider
BNB Chain 56 SatuChainEVM
Ethereum 1 SatuChainEVM
Satuchain Mainnet 10111945 SatuChainEVM
Satuchain Testnet 17081945 SatuChainEVM
Solana - SatuChainSolana
TON - SatuChainTON

API Reference

SatuChainEVM

Method Returns Description
connect() string[] Request wallet connection
getAccounts() string[] Get connected accounts
getChainId() string Get current chain ID (hex)
getBalance(addr?) string Get balance (hex wei)
sendTransaction(tx) string Send transaction, returns tx hash
signMessage(msg) string Personal sign
signTypedData(data) string EIP-712 typed data sign
switchChain(chainId) void Switch network
request(args) any Raw EIP-1193 request
disconnect() void Disconnect
on(event, cb) this Subscribe to events

SatuChainSolana

Method Returns Description
connect() { publicKey } Connect wallet
signMessage(msg) { signature } Sign message
signAndSendTransaction(tx) { signature } Sign and send
signTransaction(tx) { signedTransaction } Sign without sending
disconnect() void Disconnect

SatuChainTON

Method Returns Description
connect() { address } Connect wallet
signMessage(msg) { signature } Sign message
sendTransaction(params) { hash } Send transaction
signProof(params) { signature, timestamp } TON Connect proof
disconnect() void Disconnect

Links

License

MIT — SatuChain