Trang chủHướng dẫnPolygon smart contract: Cách viết, deploy và tối ưu chi phí
Blockchain
Polygon

Polygon smart contract: Cách viết, deploy và tối ưu chi phí

CyStack blog 4 phút để đọc
CyStack blog10/05/2025
Locker Avatar

Đức Hacker

My passion is hunting down the latest attack trends—ransomware, APTs, you name it—while passing on knowledge to help businesses forge ironclad defenses. I’ve left my mark on data encryption projects and intrusion detection tools now widely used across Vietnam. I’m the shadow that strikes before the enemy does.

Locker logo social
Reading Time: 4 minutes

Polygon đang dần trở thành lựa chọn hàng đầu cho các dự án Web3 nhờ chi phí rẻ, tốc độ xử lý nhanh và tương thích EVM tuyệt đối. Nếu bạn đã từng deploy contract lên Ethereum rồi bị “đốt ví” vì gas fee thì bạn sẽ hiểu tại sao Polygon lại đáng giá đến vậy.

Trong bài viết này, mình sẽ hướng dẫn từ A-Z cách viết và triển khai một Polygon smart contract – từ cấu hình dự án, viết contract bằng Solidity, deploy lên testnet và mainnet, cho tới verify contract trên Polygonscan.

Lưu ý: Một phần nội dung kỹ thuật mình tham khảo từ bài viết gốc của tác giả Albert Hu trên Web3 University. Mình có giữ lại các hướng dẫn quan trọng, và thêm vào đó là nhận xét, góc nhìn và kinh nghiệm thực chiến của mình sau khi từng deploy hơn 10 smart contract NFT, ERC20 và DAO logic trên mạng Polygon.

polygon smart contract

Bài viết này sẽ giúp bạn:

  • Hiểu rõ cách tạo smart contract trên Polygon từ A – Z
  • Viết script deploy smart contract trên Polygon một cách an toàn
  • Biết được chi phí deploy smart contract Polygon thực tế
  • Nắm vững cách verify contract trên Polygonscan
  • Và đặc biệt: mình sẽ chia sẻ cả những lỗi “ngớ ngẩn” mà mình từng mắc phải khi deploy production contract đầu tiên lên Polygon để bạn có thể phòng tránh.

Đọc thêm: convert ABI to Solidity

Vì sao nên build & deploy smart contract trên Polygon?

Mình từng deploy smart contract trên cả Ethereum, BNB Chain, Avalanche và Polygon. Và nếu bạn hỏi mình đâu là chain “phù hợp để bắt đầu” nhất? Câu trả lời là Polygon.

Tại sao?

  • Phí gas cực thấp: deploy contract NFT mất tầm 0.002–0.006 MATIC (~0.002–0.005 USD).
  • Block time nhanh: mỗi ~2 giây.
  • Tương thích 100% với EVM – tức là code Solidity viết cho Ethereum chạy nguyên vẹn trên Polygon.
  • Hỗ trợ mạnh từ cộng đồng, docs rõ ràng, DevX rất tốt.
  • Có testnet Mumbai dùng như một sandbox, rất tiện để test logic trước khi live.

Nếu bạn build MVP, cần test feedback sớm từ user, thì Polygon là môi trường lý tưởng.

Cách khởi tạo dự án smart contract với Hardhat

Hardhat là công cụ dev số 1 hiện nay trong hệ sinh thái Ethereum-compatible. Dưới đây là cách mình thường setup môi trường làm việc cho các dự án Polygon:

Tạo folder dự án:

mkdir polygon-smart-contract && cd polygon-smart-contract
npm init -y
npm install --save-dev hardhat
npx hardhat

Chọn Create a basic sample project → accept all default.

Sau đó cài thêm các dependency cần thiết:

npm install @openzeppelin/contracts dotenv

OpenZeppelin là thư viện chuẩn cho ERC721, ERC20, AccessControl…

dotenv để quản lý PRIVATE_KEY và tránh hardcode key trong code (an toàn và tiện lợi hơn thì mình suggest bạn sử dụng secrets manager).

⇒ Xem thêm: Locker Password Manager

Viết smart contract đơn giản để deploy lên Polygon

contracts/PolygonGreeter.sol:

// SPDX-License-Identifier: MIT pragma solidity ^0.8.17;

import "@openzeppelin/contracts/access/Ownable.sol";

contract PolygonGreeter is Ownable { string public greeting;

constructor(string memory _greeting) { greeting = _greeting; }

function setGreeting(string memory _newGreeting) public onlyOwner { greeting = _newGreeting; }

function getGreeting() public view returns (string memory) { return greeting; }

}

Lưu ý:

  • Contract này mình từng dùng để test deploy flow. Rất đơn giản nhưng đủ để thử verify, upgrade, hoặc script automation.
  • Bạn có thể thay logic bằng ERC721 hoặc ERC20 nếu muốn deploy token thực tế – cấu trúc deploy không thay đổi.

Cấu hình Hardhat để deploy contract lên Polygon và Mumbai testnet

Sửa file hardhat.config.js:

require("@nomicfoundation/hardhat-toolbox"); require("dotenv").config();

module.exports = { solidity: "0.8.17", networks: { mumbai: { url: "https://rpc-mumbai.maticvigil.com", accounts: [process.env.PRIVATE_KEY] }, polygon: { url: "https://polygon-rpc.com", accounts: [process.env.PRIVATE_KEY] } } };

File .env:

PRIVATE_KEY=0xYOUR_PRIVATE_KEY

Đừng bỏ qua việc bảo mật trong quá trình phát triển:

  • Không dùng ví chính. Tạo ví dev riêng, nạp ít MATIC đủ deploy/test.
  • Luôn .gitignore file .env để không đẩy private key lên Git.

Viết script deploy smart contract to Polygon

scripts/deploy.js:

const hre = require("hardhat");

async function main() { const Greeter = await hre.ethers.getContractFactory("PolygonGreeter"); const greeter = await Greeter.deploy("Hello Polygon!"); await greeter.deployed(); console.log("PolygonGreeter deployed to:", greeter.address); }

main().catch((error) => { console.error(error); process.exitCode = 1; });

Deploy smart contract lên Polygon Mumbai testnet

(Phần này mình làm thường xuyên khi test contract staking hoặc ERC721 mint)

Trước hết bạn cần test MATIC từ faucet: https://faucet.polygon.technology/

Sau đó:

npx hardhat run scripts/deploy.js --network mumbai

Bạn sẽ thấy log contract address → có thể paste lên https://mumbai.polygonscan.com để check.

Kinh nghiệm cá nhân:

  • Nên test function setGreeting() qua Remix hoặc script gọi function sau khi deploy.
  • Có thể verify contract trực tiếp trên Mumbai Polygonscan – giúp team QA/frontend test dễ hơn.

Deploy smart contract lên Polygon mainnet

Sau khi test logic xong, bạn có thể deploy smart contract on Polygon mainnet.

Yêu cầu:

  • Có ví chứa MATIC thật (thường deploy tốn 0.002–0.01 MATIC)
  • RPC endpoint đã được cấu hình

Lệnh:

npx hardhat run scripts/deploy.js --network polygon

Chi phí deploy smart contract Polygon

Đây là bảng chi phí thực tế mình đã test, bạn có thể tham khảo để ước lượng:

Contract Gas Used Fee (MATIC) Tương đương USD
PolygonGreeter đơn giản ~150k ~0.004 ~$0.003
ERC721 NFT ~300k ~0.008–0.01 ~$0.005–0.007
Token + Staking ~600k+ ~0.02 MATIC ~$0.01–0.015

Nhận xét:

  • Deploy contract trên Polygon rẻ đến mức mình có thể test liên tục mà không cần lo phí gas.
  • Lý tưởng cho học, test A/B hoặc CI/CD smart contract pipelines.

Verify smart contract trên Polygonscan

(Phần này mình hay dùng để client check source code)

Cài plugin:

npm install --save-dev @nomicfoundation/hardhat-verify

Thêm vào hardhat.config.js:

etherscan: { apiKey: { polygon: process.env.POLYGONSCAN_API_KEY, polygonMumbai: process.env.POLYGONSCAN_API_KEY } }

Verify:

npx hardhat verify --network polygon <contract_address> "Hello Polygon!"

Nếu đúng constructor args, contract sẽ hiển thị source code đầy đủ.

Tổng kết

Tóm tắt lại quy trình triển khai Polygon smart contract:

  • Viết contract Solidity bình thường như trên Ethereum
  • Cấu hình Hardhat để deploy contract on Polygon (testnet + mainnet)
  • Tối ưu cost to deploy smart contract Polygon – rẻ hơn 100 lần so với Ethereum
  • Verify contract để minh bạch, hỗ trợ frontend + community
  • Áp dụng flow này cho cả token, NFT, staking, DAO…

Cảm ơn các bạn đã đọc bài viết của mình!

Bài viết liên quan:

0 Bình luận

Đăng nhập để thảo luận

CyStack blog

Mẹo, tin tức, hướng dẫn và các best practice độc quyền của CyStack

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.