Công cụ phát triển
Quy trình phát triển một smart contract cơ bản trên Lisk bao gồm các bước sau:
- Viết và biên dịch smart contract
- Test smart contract (Viết Unit Test)
- Deploy smart contract trên Lisk
- Test tương tác thực tế trên Lisk
Công cụ phát triển
Remix (IDE)
Hardhat
https://hardhat.org/ (opens in a new tab)
Foundry
https://getfoundry.sh/ (opens in a new tab)
Thư viện tương tác với smart contract solidity cho Web3 (Solidity) Fullstack Developer 2025
Thư viện Core cho JavaScript/TypeScript
Viem
Viem là thư viện TypeScript nhẹ, type-safe dùng để tương tác với Ethereum hoặc các blockchain EVM khác, được phát triển bởi team đứng sau Wagmi
Ưu điểm:
-
TypeScript-first với type safety mạnh mẽ
-
Bundle size nhỏ hơn đáng kể so với ethers.js và web3.js
-
API hiện đại và dễ sử dụng
-
Hỗ trợ BigInt native thay vì BigNumber libraries
-
Được maintain tích cực và có cộng đồng phát triển mạnh
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'
const client = createPublicClient({
chain: mainnet,
transport: http(),
})
Ethers.js
Thư viện Ethers.js là một thư viện JavaScript được sử dụng để tương tác với blockchain Ethereum và các blockchain tương thích với Ethereum
-
API developer-friendly và dễ sử dụng
-
Hỗ trợ TypeScript tốt
-
Cộng đồng lớn và tài liệu phong phú
-
Được sử dụng rộng rãi trong nhiều dự án lớn
import { ethers } from 'ethers';
// connect to mainnet via Infura
const provider = new ethers.JsonRpcProvider("https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID");
Web3.js
const Web3 = require("web3");
// Infura Mainnet URL
const web3 = new Web3("https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID");
NOTE: Ngoài ra còn có nhiều thư viện khác hỗ trợ cho nhiều ngôn ngữ khác nhau như Go, Python, Java, ...
Framework và Hooks cho React Development
Wagmi - React Hooks
Wagmi là thư viện React Hooks được sử dụng phát triển Web3 applications
Tính năng chính:
-
Hơn 20+ React Hooks cho Ethereum interactions
-
Hỗ trợ hơn 50 EVM-compatible blockchains
-
TypeScript support hoàn chỉnh
-
Tích hợp với popular Web3 providers như Alchemy và Infura
Ví dụ sử dụng:
import { useAccount, useBalance, useSendTransaction } from 'wagmi'
function MyComponent() {
const { address, isConnected } = useAccount()
const { data: balance } = useBalance({ address })
// ... other hooks
}
Web3Modal + Wagmi - Wallet Connection
import { configureChains, createConfig, WagmiConfig } from "wagmi"
import { EthereumClient, w3mConnectors, w3mProvider } from "@web3modal/ethereum"
import { Web3Modal } from "@web3modal/react"
Giải thích
w3mConnectors: Là 1 hàm khởi tạo connectors cho Web3Modal, có thể tương tác wallet thông qua WalletConnect, Metamask, ...
const connectors = w3mConnectors({ projectId: 'YOUR_PROJECT_ID', chains });
w3mProvider: Là 1 hàm khởi tạo provider cho Web3Modal, có thể tương tác wallet thông qua WalletConnect, Metamask, ...
const { publicClient } = configureChains(chains, [w3mProvider({ projectId })]);
configureChains: Hàm được sử dụng cho việc tuỳ chỉnh blockchain networks và provider
import { mainnet, sepolia } from 'wagmi/chains';
const { chains, publicClient } = configureChains(
[mainnet, sepolia],
[w3mProvider({ projectId: 'YOUR_PROJECT_ID' })]
);
createConfig: Hàm được sử dụng cho việc tạo config object
const config = createConfig({
autoConnect: true,
connectors: w3mConnectors({ projectId, chains }),
publicClient,
});
WagmiConfig: Một component React từ Wagmi dùng để wrap các component con và cung cấp config cho Wagmi
<WagmiConfig config={config}>
<App />
</WagmiConfig>
EthereumClient: Là class tích hợp Web3Modal
với Wagmi
để quản lý việc kết nối ví và tương tác với Ethereum provider
const ethereumClient = new EthereumClient(config, chains);
Web3Modal: Là 1 React component dùng để render modal UI cho người dùng để chọn và kết nối ví
<Web3Modal projectId="YOUR_PROJECT_ID" ethereumClient={ethereumClient} />
SDKs
ThirdWeb SDK
- SDK Web (React / Next.js)
-
Gồm các component UI và hook cho connect wallet, lấy address, balance, gửi transaction, ...
-
Hỗ trợ kết nối ví, giao dịch, và tương tác smart contract dễ dàng.
-
Type-safe, auto-generated TypeScript APIs.
- SDK Backend (Node.js)
-
Hỗ trợ Backend Wallets -> quản lý ví server an toàn không cần private key.
-
Tích hợp với thư viện như Ethers, Viem.
- SDK Unity (Game)
-
Hỗ trợ đa nền tảng EVM blockchain trong game Unity.
-
Kết nối ví, tương tác smart contract, IPFS, và Account Abstraction.
- Smart contract template
-
NFT AirDrop
-
Token AirDrop
-
Marketplace
-
DAO
- Hệ thống ví (Wallets)
-
External Wallets: MetaMask, Coinbase,...
-
In-App Wallets: Đăng nhập bằng email/số điện thoại/social.
-
Smart Wallets (ERC-4337): Gasless, multisig, AA-based.
-
Vault: Quản lý key trên server (TEE-based, không lộ private key).
- Hỗ trợ đa nền tảng và đa chuỗi
-
SDK cho Web (React), Backend (Node), Mobile (React Native), Unity.
-
Triển khai contract trên các chain EVM (Ethereum, Polygon, Base, v.v.) thông qua Dashboard hoặc CLI
Alchemy SDK
- Tương thích Ethers.js (Core)
-
Dễ dàng thay ethers.Provider bằng alchemy.core.
-
Hỗ trợ đầy đủ JSON-RPC: getBlockNumber(), getBalance(),...
- Enhanced APIs (API nâng cao)
-
NFT API: Truy vấn toàn bộ NFT của một địa chỉ, hỗ trợ nhiều chain.
-
Token API: Lấy số dư ERC-20 và metadata chỉ với một hàm gọi.
-
Transfers API: Lấy lịch sử chuyển token .
-
Trace & Debug API: Truy vết giao dịch, debug smart contract.
- WebSocket & Real-time Event
-
Lắng nghe sự kiện theo thời gian thực (pending tx, mined, NFT mint).
-
Hỗ trợ WebSocket và Notify webhook.
- Hỗ trợ đa chuỗi (Multi-chain)
- Chuyển đổi linh hoạt giữa nhiều mạng: Ethereum, Polygon, Base, zkSync, v.v.
- Cải thiện trải nghiệm và hiệu năng
- Tự động retry, type-safety.
- Truy vấn dữ liệu onchain nhanh hơn
Tính năng | Thirdweb | Alchemy |
---|---|---|
SDK frontend/backend | ✅ | ❌ |
Các template smart contract | ✅ | ❌ |
RPC & IPFS tích hợp | ✅ | ✅ |
Giao diện UI/component sẵn sàng | ✅ | ❌ |
Giá | Từ $5/tháng | Theo usage |
Thư viện Smart Contract Development
OpenZeppelin
- Cung cấp các contract tiêu chuẩn và các hàm hỗ trợ cho việc phát triển smart contract
- Audit và test được thực hiện bởi các chuyên gia
- Có thể tích hợp với các framework phát triển smart contract như Hardhat, Foundry, ...
Best stack Web3 Fullstack Developer 2025
-
Frontend: React + Next.js + TypeScript
-
Web3 Library: Viem, Ethers.js
-
React Hooks: Wagmi
-
Wallet Connection: Web3Modal
-
Smart Contract Development Framework: Foundry, Hardhat
-
Contract Library: OpenZeppelin
-
SDK Platform: ThirdWeb hoặc Alchemy