Multi-chain wallet SDK for EVM, Solana & TON DApps.
Connect your DApp to SatuChain Wallet with just a few lines of code.
Users need SatuChain Wallet installed to use this SDK.
- Mobile App (Android/iOS): https://wallet.satuchain.com
- Browser Extension (Chrome): Paired via mobile app
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.
npm install @satuchain/wallet-sdk# or
yarn add @satuchain/wallet-sdk
pnpm add @satuchain/wallet-sdkimport { 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));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);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: "..." });import { SatuChainEVM, SatuChainSolana, SatuChainTON } from "@satuchain/wallet-sdk";
const evm = new SatuChainEVM();
const sol = new SatuChainSolana();
const ton = new SatuChainTON();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();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);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 |
| Chain | Chain ID | Provider |
|---|---|---|
| BNB Chain | 56 | SatuChainEVM |
| Ethereum | 1 | SatuChainEVM |
| Satuchain Mainnet | 10111945 | SatuChainEVM |
| Satuchain Testnet | 17081945 | SatuChainEVM |
| Solana | - | SatuChainSolana |
| TON | - | SatuChainTON |
| 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 |
| 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 |
| 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 |
- Wallet Download: https://wallet.satuchain.com
- npm: https://www.npmjs.com/package/@satuchain/wallet-sdk
- GitHub: https://github.com/satuchain/wallet-sdk
MIT — SatuChain
