Skip to content

selendra/selendra-sdk

Repository files navigation

Selendra SDK

Official TypeScript SDK for interacting with Selendra Network, supporting both EVM and WebAssembly (Substrate) interactions.

Features

  • 🚀 Dual VM Support: Interact with both EVM and WebAssembly smart contracts
  • 📦 TypeScript First: Full TypeScript support with comprehensive type definitions
  • 🔗 Multi-Chain: Support for mainnet, testnet, and custom networks
  • 💰 Wallet Integration: Easy connection with MetaMask, WalletConnect, and Polkadot.js
  • 🔧 Developer Friendly: Comprehensive utilities and helper functions
  • 📊 Real-time Data: WebSocket support for live blockchain events
  • 🧪 Testing Support: Built-in utilities for testing and development

Installation

npm install @selendrajs/sdk

Quick Start

EVM Interactions

import { SelendraSDK } from '@selendrajs/sdk';

// Initialize SDK
const sdk = new SelendraSDK({
  network: 'mainnet', // or 'testnet'
  provider: window.ethereum // or custom provider
});

// Connect wallet
await sdk.evm.connect();

// Get account balance
const balance = await sdk.evm.getBalance('0x...');

// Send transaction
const tx = await sdk.evm.sendTransaction({
  to: '0x...',
  value: '1000000000000000000' // 1 SEL
});

Substrate/WASM Interactions

// Initialize Substrate connection
await sdk.substrate.connect();

// Get account info
const account = await sdk.substrate.getAccount('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY');

// Submit extrinsic
const hash = await sdk.substrate.submitExtrinsic(
  api.tx.balances.transfer('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', 1000000000000)
);

Smart Contract Interactions

// EVM Contract
const contract = sdk.evm.contract({
  address: '0x...',
  abi: contractABI
});

const result = await contract.read('balanceOf', ['0x...']);
await contract.write('transfer', ['0x...', '1000000000000000000']);

// WASM Contract
const wasmContract = sdk.substrate.contract({
  address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
  metadata: contractMetadata
});

const wasmResult = await wasmContract.query('get_balance');

Documentation

Network Configuration

Mainnet

Testnet

Development

# Install dependencies
npm install

# Build
npm run build

# Test
npm run test

# Lint
npm run lint

# Generate docs
npm run docs

Examples

Check out the examples directory for complete working examples:

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT License - see LICENSE for details.

Support

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •