Giải mã giao dịch EVM
Giải mã hex tx EVM ngay trên trình duyệt: đọc function selector và calldata ERC-20, phát hiện phishing rút allowance, kiểm tra gas EIP-1559 trước khi ký.
Công cụ giải mã giao dịch EVM là gì?
Trước khi phát giao dịch đã ký lên mạng — và đặc biệt trước khi trả gas cho nó — bạn muốn biết chính xác mình sắp gửi gì. Ví của bạn có encode đúng function call không? Địa chỉ to có đúng không? Gas có hợp lý với điều kiện mạng hiện tại không? Đó có thật là giao dịch Type 2 EIP-1559 với maxFeePerGas phù hợp, hay dApp mặc định kiểu legacy sẽ trả thừa? Decoder này tách bất kỳ hex giao dịch đã ký nào (chuỗi dài 0xf86... mà ví export để ký offline hoặc relay QR qua Ledger Nano) thành các trường người đọc được: type, chain ID, người gửi (recover từ chữ ký), người nhận, value, nonce, gas, calldata, và thành phần chữ ký v/r/s. Hoạt động cho mọi chain EVM — Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche, Fantom, zkSync, Linea, Gnosis. Quan trọng cho luồng cold-wallet, debug smart contract, audit tối ưu gas, và xác minh UI ví khớp với bytes thực sự đang được ký.
Các chain EVM được hỗ trợ
| Tên Chain | Chain ID |
|---|---|
| Ethereum Mainnet | 1 |
| Binance Smart Chain (BSC) | 56 |
| Polygon (MATIC) | 137 |
| Arbitrum One | 42161 |
| Optimism | 10 |
| Avalanche C-Chain | 43114 |
| Fantom Opera | 250 |
| Base | 8453 |
| Gnosis Chain | 100 |
| zkSync Era | 324 |
| Polygon zkEVM | 1101 |
| Linea | 59144 |
Raw transaction hex là gì?
Raw transaction hex là dữ liệu giao dịch được serialize và ký dưới dạng hexadecimal. Nó chứa tất cả thông tin giao dịch bao gồm người gửi, người nhận, giá trị, tham số gas, dữ liệu đầu vào và chữ ký mật mã. Định dạng này được sử dụng để phát tán giao dịch lên mạng blockchain.
Tôi có thể giải mã thông tin gì?
Công cụ giải mã trích xuất: Loại giao dịch (Legacy, EIP-2930, EIP-1559), Chain ID, Địa chỉ gửi/nhận, Giá trị ETH, Nonce, Giới hạn và giá gas, Dữ liệu đầu vào (cho hợp đồng thông minh), và Các thành phần chữ ký (v, r, s) dùng để xác minh giao dịch.
Những blockchain nào được hỗ trợ?
Tất cả các blockchain tương thích EVM đều được hỗ trợ, bao gồm Ethereum, BSC (Binance Smart Chain), Polygon, Arbitrum, Optimism, Avalanche C-Chain, Fantom, Base, Gnosis, zkSync Era, Polygon zkEVM, Linea, và bất kỳ chain nào khác sử dụng Ethereum Virtual Machine.
Các loại giao dịch (Type 0, 1, 2) là gì?
Type 0 là định dạng giao dịch legacy ban đầu. Type 1 (EIP-2930) thêm access lists để tối ưu gas. Type 2 (EIP-1559) giới thiệu thị trường phí mới với base fee và priority fee, làm cho giá gas dễ dự đoán hơn.
Dữ liệu giao dịch của tôi có an toàn không?
Có! Tất cả việc giải mã diễn ra hoàn toàn trong trình duyệt của bạn sử dụng JavaScript. Không có dữ liệu giao dịch nào được gửi đến bất kỳ máy chủ nào. Công cụ chỉ đọc và hiển thị thông tin công khai đã có sẵn trong giao dịch đã ký.

Tại sao cần giải mã trước khi phát?
Phòng thủ trước dApp ác hoặc UI ví bị xâm phạm. Tấn công phổ biến: site phishing hiển thị nút 'approve' vô hại nhưng thực ra tạo giao dịch rút sạch allowance token của bạn cho kẻ tấn công. Bằng cách giải mã bytes thô trước khi ký, bạn xác minh địa chỉ to khớp contract dự kiến, function selector (4 bytes đầu của data) gọi đúng method (vd 0xa9059cbb cho transfer, 0x095ea7b3 cho approve), và tham số hợp lý. Luồng ví cứng thường có QR code chứa tx data thô — giải mã trước khi duyệt trên thiết bị.
Khác biệt giữa Type 0, 1, 2 trong thực tế?
Type 0 (legacy): trường gasPrice duy nhất, dùng trước EIP-1559 và vẫn cần cho L2 như BSC. Type 1 (EIP-2930): thêm accessList khai báo slot storage sẽ đọc — tiết kiệm gas cho tương tác phức tạp nhưng giờ ít dùng. Type 2 (EIP-1559): thay gasPrice bằng maxFeePerGas + maxPriorityFeePerGas (tip cho validator). Type 2 chiếm ưu thế trên Ethereum mainnet vì ngăn trả thừa — base fee tự burn, chỉ tip về validator. Nếu thấy Type 0 trên Ethereum, ví của bạn lỗi thời.
Lấy raw transaction hex để giải mã ở đâu?
Nhiều nguồn: (1) MetaMask: mở tab activity, click vào tx pending, mở rộng 'Details', show raw — phiên bản ví khác nhau. (2) Ledger Live: bật 'ký bằng QR' cho luồng cold-wallet; QR mã hóa raw tx. (3) Etherscan: mọi trang tx đã xác nhận có tab 'Raw Tx'. (4) ethers.js / web3.js: `wallet.signTransaction(tx)` trả về hex thô. (5) cast (Foundry CLI): `cast tx --raw <hash>`. (6) Công cụ offline MyCrypto. Dán bất kỳ cái nào (bắt đầu 0x) vào decoder này.
Function selector là gì và đọc calldata thế nào?
Mọi lệnh gọi contract bắt đầu bằng function selector 4 byte: 4 byte đầu của input data, bằng 4 byte đầu của keccak256 chữ ký chuẩn (vd keccak256('transfer(address,uint256)') bắt đầu bằng 0xa9059cbb). Decoder này trích 4 byte đó, gán nhãn theo các method phổ biến (transfer 0xa9059cbb, approve 0x095ea7b3, transferFrom 0x23b872dd, setApprovalForAll 0xa22cb465, deposit 0xd0e30db0, withdraw 0x2e1a7d4d, và nhiều nữa), và với transfer/approve/transferFrom ERC-20 nó giải mã tham số bằng ABI — hiển thị địa chỉ người nhận hoặc spender đã checksum EIP-55 và số lượng token dưới dạng số nguyên chính xác theo đơn vị thô (không float, không làm tròn). Đây là kiểm tra chống phishing cụ thể: xác nhận một 'approve' cấp đúng spender và số lượng bạn muốn, không phải allowance vô hạn cho contract của kẻ tấn công.
Địa chỉ 'recovered from' nghĩa là gì?
Địa chỉ người ký không được lưu trực tiếp trong giao dịch — nó được khôi phục toán học từ thành phần v/r/s của chữ ký kết hợp với hash giao dịch. Decoder này chạy phục hồi đường cong elip secp256k1 (cùng thuật toán node Ethereum dùng) để suy ra ai đã ký. Nếu xuất hiện 'Cannot recover address', chữ ký méo hoặc dùng sai chain ID (chain ID nằm trong hash ký, nên chain sai = địa chỉ recover sai). Xác minh 'from' khôi phục khớp ví bạn dự kiến là bằng chứng cuối cùng tx không bị giả mạo.
Hướng dẫn sử dụng
- Sao chép raw transaction hex đã ký (bắt đầu bằng 0x)
- Dán vào trường nhập liệu
- Nhấn nút 'Giải mã' để phân tích giao dịch
- Xem tất cả chi tiết đã giải mã bao gồm địa chỉ, giá trị, gas và dữ liệu
