🚀 Khai giảng Khóa học Lập trình Blockchain trên Cardano!

Vào 20h30 ngày 6/3/2025, khóa học Lập trình Blockchain trên Cardano chính thức khai giảng với sự tham gia của gần 90 học viên, trong đó có các giảng viên từ Trường Đại học Giao Thông Vận Tải, Đại học Công Nghiệp Đông Á, Đại học Kinh Tế Kỹ Thuật Công Nghiệp, Đại học Phương Đông, Học viện Công nghệ Bưu chính Viễn thông (PTIT) và nhiều trường đại học khác. Ngoài ra, còn có sự góp mặt của đông đảo anh chị em trong cộng đồng Blockchain Việt Nam.

:small_blue_diamond: Lộ trình khóa học sẽ đi qua 4 module quan trọng:
:white_check_mark: Hiểu rõ mô hình EUTxO – nền tảng giao dịch trên Cardano
:white_check_mark: Tương tác với Blockchain Cardano qua công cụ cardano-cli và SDK Lucid
:white_check_mark: Viết hợp đồng thông minh bằng các ngôn ngữ mạnh mẽ như Aiken, Opshin
:white_check_mark: Thực hành từ cơ bản đến nâng cao, bao gồm triển khai Smart Contract và quản lý giao dịch trên Blockchain

:light_bulb: Các chủ đề quan trọng trong khóa học:
:pushpin: Hiểu và so sánh cách chi tiêu UTXO từ ví bằng chữ ký Private Key với việc chi tiêu UTxO trên Smart Contract thông qua điều kiện logic của Script


:pushpin: Cách biên dịch hợp đồng thông minh từ Plutus Tx, Aiken, Opshin thành Plutus Core và mã CBOR

:bullseye: Đây là cơ hội tuyệt vời để các giảng viên và lập trình viên mở rộng kiến thức, nắm bắt công nghệ mới và áp dụng vào thực tế!

:backhand_index_pointing_right: Cùng nhau học hỏi và phát triển trong hệ sinh thái Cardano! :rocket:

2 Likes

:rocket: Lesson 2: Tương tác với Blockchain Cardano bằng Cardano CLI

Bạn đã sẵn sàng đi sâu vào Cardano Blockchain chưa? :bullseye:
Lesson 2 sẽ giúp bạn làm chủ Cardano CLI - công cụ mạnh mẽ giúp bạn kết nối trực tiếp và kiểm soát blockchain như một lập trình viên thực thụ!

:fire: Nội dung chính:

Làm quen với Cardano CLI

:one: CLI Getstarted – Cách cài đặt và khởi động CLI nhanh chóng.
:two: Query Tip – Kiểm tra trạng thái mới nhất của blockchain (block height, slot…).
:three: Query UTXO – Đọc dữ liệu chi tiết về số dư và giao dịch từ địa chỉ ví.

:fire: So sánh ví HD và non-HD

:small_blue_diamond: Non-HD wallet: Mỗi lần tạo ví là một cặp khóa riêng biệt, khó quản lý nếu nhiều ví.
:small_blue_diamond: HD wallet (Hierarchical Deterministic): Tạo ví từ 1 mnemonic phrase (12/24 từ), dễ dàng quản lý nhiều địa chỉ chỉ từ 1 khóa gốc.

:fire: Restore key từ mnemonic

Làm gì khi mất ví? Đừng lo! Cardano CLI cho phép khôi phục ví từ mnemonic chỉ với vài lệnh đơn giản.
:pushpin: Chỉ cần lưu cẩn thận 15/24 từ khóa bí mật!


:movie_camera: Xem lại bài giảng chi tiết tại đây:

:backhand_index_pointing_right: Xem ngay video bài giảng


:rocket: Hãy trang bị cho mình kiến thức vững vàng để chinh phục Cardano Blockchain ngay hôm nay!
Bạn đã thử Cardano CLI chưa? Bình luận bên dưới cảm nhận của bạn nhé! :backhand_index_pointing_down::sparkles:

1 Like

:pushpin: Tóm tắt Buổi 3: Using the Cardano CLI to Interact with Cardano Blockchain (Cont)

Trong buổi học thứ 3, chúng ta tiếp tục khám phá Cardano CLI và đi sâu vào tạo metadata, token và giao dịch trên Cardano Blockchain. Dưới đây là những nội dung chính:

:small_blue_diamond: Tạo Metadata theo CIP25

  • Key 674: Dùng để mô tả tin nhắn dành cho người nhận trong giao dịch.
  • Key 721: Dùng để mô tả thông tin chi tiết của Token/NFT, ví dụ như tên, hình ảnh, thuộc tính…

:small_blue_diamond: Thực hành CLI:

  • Tạo giao dịch gửi tin nhắn: Đưa metadata kèm theo giao dịch để truyền thông tin on-chain.
  • Tạo Token/NFT: Triển khai quá trình mint token hoặc NFT với metadata chuẩn CIP25.
  • Tạo giao dịch chuyển Token: Hoàn thành giao dịch gửi token/NFT vừa tạo đến ví khác.

:sparkles: Hình ảnh minh họa buổi học:

:pushpin: Hình 1: Mô tả chi tiết metadata theo CIP25.

:pushpin: Hình 2: Ví dụ tạo giao dịch thực tế.

:pushpin: Hình 3: Mô tả chi tiết Token/NFT sau khi tạo thành công.

:movie_camera: Xem lại video buổi học tại đây:

:rocket: Bạn đã sẵn sàng thử tự tạo token và giao dịch trên Cardano chưa?
Hãy chia sẻ thành quả của bạn với cộng đồng nhé! :flexed_biceps:

Tuyệt vời. Cảm ơn các thầy.

1 Like

Thank you!

Tóm tắt buổi 4: Using Lucid to Interact with Cardano Blockchain (01/03)

:light_bulb: Buổi 4 chúng ta đã thu lượm được những gì?

Buổi học này tập trung vào việc sử dụng Lucid, một thư viện TypeScript giúp tương tác với blockchain Cardano một cách dễ dàng. Chúng ta đã cùng nhau khám phá:

:white_check_mark: Lucid là gì?
:white_check_mark: Cách cài đặt Lucid và import thư viện
:white_check_mark: Các thao tác cơ bản với Lucid:

  • Khởi tạo Lucid
  • Tạo ví từ Lucid
  • Mô tả giao dịch đơn giản từ Alice đến Bob
  • Demo tương tác với Cardano Blockchain bằng Lucid

:rocket: Chuẩn bị trước khi live coding

Trước khi đi vào phần thực hành, chúng ta đã chuẩn bị một số phụ thuộc quan trọng:
:small_blue_diamond: Cài đặt Deno
:small_blue_diamond: Đăng ký API Key của Blockfrost để truy cập dữ liệu blockchain Cardano

:laptop: Tiến hành Live Coding

Chúng ta đã trực tiếp thực hành các thao tác sau với Lucid:

Tạo một dự án
:small_blue_diamond: Import thư viện Lucid
:small_blue_diamond: Chọn provider, chọn ví và hiển thị địa chỉ ví
:small_blue_diamond: Đọc và phân tích UTxO trong ví, bao gồm:

  • Số lượng UTxO
  • Các thông tin quan trọng trong một UTxO: txhash, txix, số lượng lovelace, số lượng token, Datum, …

:small_blue_diamond: Đọc và phân tích Datum
:small_blue_diamond: Tạo giao dịch đơn giản trên Cardano
:small_blue_diamond: Tạo giao dịch có tin nhắn với key 674

:camera_with_flash: Một số hình ảnh từ buổi học

:pushpin: Xem chi tiết bài giảng qua video tại đây:

Chúng tôi rất mong nhận được phản hồi và câu hỏi từ các bạn! Nếu có bất kỳ thắc mắc nào, hãy tham gia thảo luận tại forum hoặc nhóm Telegram của Cardano2VN. :rocket:

cardano #Lucid blockchain #DApp #Cardano2VN

1 Like

:loudspeaker: Tóm tắt buổi 5: Sử dụng Lucid lập trình Off-chain trên Cardano (02/03)

Trong buổi học thứ 5, chúng ta đã tiếp tục khám phá cách sử dụng Lucid, một thư viện TypeScript giúp lập trình Off-chain trên Cardano một cách dễ dàng. Dưới đây là những nội dung quan trọng đã được đề cập trong buổi học:

:white_check_mark: Các thao tác cơ bản với Lucid

:small_blue_diamond: Chọn nhà cung cấp (Provider)
:small_blue_diamond: Chọn ví (Wallet)
:small_blue_diamond: Thực hiện thanh toán (Make payments):

  • Gửi token gốc (Send native tokens)
  • Gửi ADA kèm theo Datum (Send ADA with datum)

:link: Tương tác với Smart Contract AlwaySuccess bằng Lucid

:small_blue_diamond: Thực hiện khóa tài sản vào Plutus Script (Lock funds at Plutus script)
:small_blue_diamond: Mở khóa tài sản từ Plutus Script (Unlock from Plutus script)

:camera_with_flash: Một số hình ảnh từ buổi học

:pushpin: Xem chi tiết bài giảng qua video tại đây:

:speech_balloon: Tham gia thảo luận và kết nối với cộng đồng Cardano2VN:
:loudspeaker: Telegram: Telegram: View @cardano2vn

:rocket: Chúng tôi rất mong nhận được phản hồi và câu hỏi từ các bạn! Nếu có bất kỳ thắc mắc nào, hãy tham gia thảo luận tại forum hoặc nhóm Telegram của Cardano2VN.

cardano #Lucid blockchain #DApp #Cardano2VN

:loudspeaker: Tóm tắt Buổi 6: Sử dụng Lucid lập trình Offchain trên Cardano (03/03)

Xin chào cộng đồng Cardano! :waving_hand:

Vào ngày 10/04, Cardano2VN đã tổ chức Buổi học số 6 trong chuỗi đào tạo lập trình trên Cardano.

:bullseye: Nội dung chính của buổi học:

Trong buổi học này, chúng tôi tập trung vào cách lập trình off-chain trên Cardano bằng thư viện Lucid – một công cụ mạnh mẽ để tương tác với Cardano blockchain bằng JavaScript/TypeScript.

Các chủ đề được trình bày bao gồm:

:small_blue_diamond: Ôn tập cách mint NFT bằng cardano-cli

  • Cách tạo metadata tuân theo chuẩn CIP-25
  • Tích hợp metadata vào Transaction

:small_blue_diamond: Sử dụng Lucid để lập trình offchain các tác vụ sau:

  • :white_check_mark: Mint / Burn tài sản (Assets)
  • :white_check_mark: Đăng ký / Hủy đăng ký chứng nhận (Certification registration/deregistration)
  • :white_check_mark: Ủy quyền stake vào Stake Pool hoặc DRep trong hệ thống Governance
  • :white_check_mark: Thực hiện hành vi VotingDelegate (Ủy quyền biểu quyết)

Ngoài ra, các bạn sinh viên cũng đã làm quen với cấu trúc giao dịch phức tạp và hiểu rõ cách sử dụng Lucid để tạo, ký và gửi giao dịch một cách dễ dàng mà không cần đến cardano-cli.


:camera_with_flash: Một số hình ảnh từ buổi học




:television: Xem lại bài giảng qua video tại đây:

:speech_balloon: Tham gia nhóm trao đổi Telegram:

:backhand_index_pointing_right: Telegram: View @cardano2vn

:books: Tóm tắt Buổi học số 7 – Review từ Lesson 1 đến Lesson 6 & Giao bài tập thực hành

Xin chào cộng đồng Cardano! :waving_hand:
Vào ngày 17/04/2025, Cardano2VN đã tổ chức Buổi học số 7 trong chuỗi đào tạo “Lập trình Blockchain dành cho Lập trình viên và giảng viên– Khóa BK02”.

Buổi học lần này tập trung tổng ôn lại toàn bộ nội dung từ Lesson 1 đến Lesson 6, giúp học viên hệ thống lại kiến thức đã học và chuẩn bị tốt hơn cho phần thực hành và xây dựng dự án cá nhân.


:bullseye: Tóm tắt nội dung từng buổi học

:small_orange_diamond: Lesson 1: Giới thiệu về Plutus Core, UPLC, UTXO model và Smart Contract

Học viên được tiếp cận với kiến thức nền tảng như:

  • Mô hình giao dịch (Transaction Models)
  • UTXO & EUTXO
  • Cấu trúc địa chỉ trên Cardano
  • Quá trình sinh khóa (Key Derivation)
  • Kiến trúc ví (Wallet)

:small_orange_diamond: Lesson 2 & 3: Sử dụng Cardano CLI để tương tác với blockchain

  • Làm quen với công cụ CLI: Query tip, Query UTXO, Restore key from mnemonic
  • Tạo giao dịch cơ bản: Build – Sign – Submit
  • Mô hình sử dụng Airgap server để đảm bảo an toàn
  • Tạo địa chỉ stake, chứng thực (certification), ủy quyền stake
  • Tương tác với Smart Contract “Always Succeed”
  • Minting token, NFT
  • Thử nghiệm Native Script với Lucid (Mint bằng CLI, burn bằng Lucid)

:small_orange_diamond: Lesson 4–6: Lập trình off-chain với Lucid SDK

Học viên được hướng dẫn:

  • Cách import thư viện Lucid, kết nối Blockfrost
  • Tạo ví, khởi tạo Lucid instance
  • Thực hiện các giao dịch cơ bản như:
    • Payment
    • Mint/Burn tài sản
    • Đăng ký / Hủy chứng nhận stake
    • Ủy quyền VotingDelegate
  • So sánh Lucid với cardano-cli: tính tương tác, khả năng phát triển ứng dụng frontend/back-end với TypeScript/JavaScript

:camera_with_flash: Một số hình ảnh từ buổi học:

:television: Xem lại video buổi học tại đây:

:speech_balloon: Tham gia nhóm trao đổi trênTelegram:

:backhand_index_pointing_right: Telegram: View @cardano2vn

:technologist: [Tóm tắt Buổi 8 – Cardano Blockchain Programming Course | Lesson 7: Introducing Smart Contracts]

Hello👋

Trong buổi học thứ 8 của khóa Lập trình Blockchain trên Cardano (BK02), chúng tôi đã chính thức bước vào thế giới lập trình hợp đồng thông minh trên Cardano, mở đầu bằng việc làm quen với ngôn ngữ Aiken và môi trường phát triển on-chain.

:bullseye: Nội dung chính:

:white_check_mark: Tổng quan về lập trình Smart Contracts trên Cardano

  • Phân biệt các ngôn ngữ viết Smart Contract trên Cardano như Plutus, Opshin, Aiken.
  • Vì sao Aiken là lựa chọn phù hợp để bắt đầu học: đơn giản, dễ tiếp cận, hiệu suất cao.

:white_check_mark: Thiết lập môi trường phát triển Aiken trên Ubuntu

  • Cài đặt Aiken
  • Tạo cấu trúc dự án cơ bản (aiken new)
  • Compile hợp đồng và hiểu file plutus.json

:white_check_mark: Demo hợp đồng thông minh đầu tiên – AlwaysSuccess

  • Viết một Smart Contract đơn giản luôn trả về true (Always Success)
  • Compile contract, xuất plutus.json, lock và unlock tài sản bằng Lucid
  • Giải thích khái niệm Validator, Datum, Redeemer một cách trực quan

:camera_with_flash: Một số hình ảnh từ buổi học:



:movie_camera: Xem lại video buổi học tại đây:


Cảm ơn các bạn học viên đã tham gia rất tích cực! Hẹn gặp lại trong các buổi học tiếp theo, nơi chúng ta sẽ viết những hợp đồng thông minh thực sự có logic phức tạp hơn và tương tác thực tế với blockchain Cardano. :rocket:

:speech_balloon: Tham gia nhóm trao đổi Telegram:

:backhand_index_pointing_right: Telegram: View @cardano2vn

Trân trọng,
Cardano2vn Team

1 Like

:technologist: [Tóm tắt Buổi 9 – Cardano Blockchain Programming Course | Lesson 8: The Smart Contracts Datum and Redeemer]

buổi học thứ 9 của khóa học Lập trình Blockchain trên Cardano (BK02), chúng tôi đã đi sâu vào hai khái niệm cốt lõi của mô hình EUTxO trên Cardano khi phát triển Smart Contract: DatumRedeemer.

Sau buổi học trước, nơi học viên lần đầu viết thành công Smart Contract bằng Aiken (ví dụ “Always Success”), buổi này chúng ta nâng cấp kiến thức bằng cách kết hợp sử dụng DatumRedeemer để thiết lập điều kiện logic trong hợp đồng thông minh.


:bullseye: Nội dung chính:

:white_check_mark: Hiểu rõ mô hình EUTXO trong Smart Contract trên Cardano
:white_check_mark: Giải thích trực quan vai trò của:

  • Datum: Dữ liệu lưu cùng với UTXO
  • Redeemer: Dữ liệu cung cấp khi muốn chi tiêu UTXO
  • ScriptContext: Bối cảnh giao dịch cung cấp thông tin xác thực

:white_check_mark: Viết một Smart Contract đơn giản với điều kiện Datum == Redeemer

:white_check_mark: Thực hành:

  • Khóa tài sản (lock ADA) vào Smart Contract
  • Mở khóa (unlock) và tiêu UTXO nếu đúng điều kiện hợp đồng

:camera_with_flash: Một vài hình ảnh học tập sẽ được cập nhật trong phần bình luận.



:movie_camera: Video ghi hình buổi học sẽ sớm được chia sẻ tại:


Chúng tôi tin rằng việc hiểu rõ DatumRedeemer là nền tảng để xây dựng các dApp logic phức tạp và an toàn hơn trên Cardano.

Hẹn gặp lại các bạn trong buổi tiếp theo – nơi chúng ta sẽ tiếp tục khám phá cách tương tác giữa ví, off-chain và Smart Contract Cardano. :rocket:

:pushpin: Tham gia nhóm Telegram để trao đổi & cập nhật:
:backhand_index_pointing_right: Telegram: View @cardano2vn

Trân trọng,
Cardano2vn Team

:brain: [Tóm tắt Buổi 10 – Cardano Blockchain Programming Course | Lesson 9: The Contract Vesting]

Chào cộng đồng Cardano! :waving_hand:

Trong buổi học thứ 10 của khóa lập trình blockchain trên Cardano, chúng tôi đã cùng nhau tìm hiểu một trong những ứng dụng thực tế và đầy ý nghĩa của Smart Contracts – đó là Vesting Contract.

:bullseye: Chủ đề chính: Xử lý thời gian với ScriptContext trong Smart Contract

:locked_with_key: Vesting là gì?
Vesting là hình thức trao tặng tài sản có điều kiện, ví dụ cha mẹ muốn tặng tài sản cho con nhưng chỉ khi con đạt một độ tuổi nhất định (ví dụ 18 tuổi) thì mới có thể nhận.

Chúng tôi đã triển khai một Smart Contract “Vesting” với các bước chính:

:white_check_mark: Nội dung học:

  1. Giới thiệu ScriptContext và cách xử lý thời gian (txInfoValidRange)
  2. Xây dựng on-chain code cho hợp đồng Vesting sử dụng Aiken
  3. Thực hành Lock tài sản (ADA) vào trong hợp đồng với các điều kiện:
  • lock_until: Int (thời điểm có thể mở khóa)
  • beneficiary: VerificationKeyHash (địa chỉ người thụ hưởng)
  1. Thực hành Unlock tài sản đúng điều kiện thời gian và đúng người nhận
  2. Thảo luận về các ứng dụng thực tế và mở rộng từ mô hình Vesting

:man_teacher: Ý nghĩa buổi học:

Thông qua bài toán đơn giản nhưng gần gũi này, học viên đã hiểu rõ cách tương tác với thời gian trong ScriptContext, cũng như cách xây dựng logic on-chain có điều kiện rõ ràng, minh bạch – một trong những nền tảng để phát triển các Smart Contract chuyên nghiệp trên Cardano.

:camera_with_flash: Một số hình ảnh từ buổi học:




:movie_camera: Video bài giảng tại đây:


:folded_hands: Xin cảm ơn tất cả các học viên đã tham gia và thảo luận sôi nổi!
Hẹn gặp lại ở buổi học tiếp theo, nơi chúng ta sẽ tiếp tục khám phá thế giới hợp đồng thông minh đầy tiềm năng trên Cardano!

:pushpin: Tham gia nhóm Telegram để trao đổi & cập nhật:
:backhand_index_pointing_right: Telegram: View @cardano2vn

Trân trọng,
Cardano2vn Team

1 Like

:teacher: [Tóm tắt Buổi 11 – Cardano Blockchain Programming Course | Review Lesson 7-9 & Reference Scripts]

Xin chào cộng đồng Cardano! :waving_hand:

Trong buổi học thứ 11 của khóa học Lập trình Blockchain trên Cardano (BK02), chúng tôi đã cùng nhau ôn tập lại những kiến thức cốt lõi từ các bài học trước (Lesson 7-9) và giới thiệu thêm về một tính năng mạnh mẽ giúp tối ưu chi phí: Reference Scripts.


:bullseye: Tổng hợp nội dung chính:

:repeat_button: Review Lesson 7-9:

:white_check_mark: Lesson 7: Introducing Smart Contracts

  • Làm quen với ngôn ngữ Aiken
  • Cài đặt môi trường phát triển và viết Smart Contract đầu tiên: AlwaysSuccess

:white_check_mark: Lesson 8: Datum & Redeemer

  • Hiểu rõ vai trò của Datum, Redeemer, ScriptContext
  • Viết hợp đồng với điều kiện: Datum == Redeemer
  • Thực hành lock/unlock ADA từ hợp đồng

:white_check_mark: Lesson 9: Vesting Contract

  • Viết Smart Contract cho bài toán tặng tài sản có điều kiện
  • Dùng lock_untilbeneficiary trong hợp đồng
  • Sử dụng ScriptContext để kiểm tra thời gian giao dịch

:wrench: Giới thiệu: Reference Scripts

Một cách mới để tiết kiệm phí giao dịch khi sử dụng Smart Contract trên Cardano!

  • Thay vì gửi toàn bộ code hợp đồng trong mỗi giao dịch ➝ chỉ cần tham chiếu đến một script đã được lưu sẵn trên chuỗi.
  • Giúp giảm kích thước giao dịch, tiết kiệm phí, và tăng hiệu suất.
  • Đặc biệt hữu ích khi cùng một hợp đồng được sử dụng nhiều lần.

:camera_with_flash: Hình ảnh buổi học:

:movie_camera: Xem lại video bài giảng tại:


Cảm ơn các bạn học viên đã học tập tích cực và nhiệt huyết!
Hẹn gặp lại ở các buổi học tiếp theo, nơi chúng ta sẽ tiếp tục xây dựng và triển khai những Smart Contracts phức tạp hơn với Aiken! :rocket:


:handshake: Tham gia nhóm trao đổi trên Telegram:
:backhand_index_pointing_right: Telegram: View @cardano2vn

Trân trọng,
Cardano2vn Team

:technologist: [Tóm tắt Buổi 12 – Cardano Blockchain Programming Course | Lesson 10: Parameterized Smart Contracts]

Xin chào Cardano community :waving_hand:

Trong buổi học số 12 của khóa lập trình blockchain trên Cardano, chúng ta đã cùng nhau khám phá chủ đề rất quan trọng: Parameterized Smart Contracts – một kỹ thuật giúp viết các hợp đồng thông minh linh hoạt, tái sử dụng và cá nhân hóa.


:light_bulb: Nội dung chính của buổi học:

:white_check_mark: Khái niệm Parameterized Smart Contracts

  • Ý nghĩa và lợi ích: giúp một hợp đồng thông minh có thể được “tùy biến” để phục vụ nhiều người dùng, thay vì viết lại từ đầu.

:white_check_mark: Viết hợp đồng thông minh on-chain bằng Aiken

  • Cách truyền tham số (parameter) khi compile để tạo hợp đồng “cá nhân hóa”.

:white_check_mark: Viết chương trình off-chain bằng Lucid

  • Tương tác với hợp đồng thông minh đã được parameterized.
  • Khóa (lock) và mở khóa (unlock) tài sản dựa trên tham số đầu vào.

:camera_with_flash: Một số hình ảnh từ buổi học:


:movie_camera: Xem lại video bài giảng tại đây:


:folded_hands: Cảm ơn các bạn học viên đã tham gia và thực hành tích cực. Hẹn gặp lại trong các buổi tiếp theo khi chúng ta tiếp tục xây dựng các ứng dụng dApp thực sự trên Cardano Blockchain!


:loudspeaker: Tham gia cộng đồng trao đổi học tập:
:right_arrow: Telegram: View @cardano2vn

Trân trọng,
Cardano2vn Team

:books: [Tóm tắt buổi học số 13 – Khóa học Lập trình Blockchain trên Cardano]
:brain: Lesson 11: Smart Contract Mint

Trong buổi học lần này, chúng ta đi sâu vào một chủ đề cực kỳ thú vị và thực tiễn: Tạo và hủy token (NFT) bằng hợp đồng thông minh trên Cardano sử dụng ngôn ngữ Aiken và thư viện Lucid ở phía offchain.

:magnifying_glass_tilted_left: Nội dung chính của buổi học:

  • Viết smart contract onchain để mint token (NFT) với tham số hóa tên token.
  • Thiết lập mã offchain để mint và burn NFT với Lucid.
  • Phân tích chi tiết cách đọc thư viện Aiken, sử dụng đúng hàm và tham số phù hợp khi lập trình hợp đồng.

Buổi học giúp học viên nắm rõ cơ chế tạo token bằng hợp đồng thông minh thay vì sử dụng CLI, giúp mở rộng khả năng tự động hóa và bảo mật.

:camera_with_flash: Một số hình ảnh của buổi học


:movie_camera: Video bài giảng


:loudspeaker: Tham gia cộng đồng học tập:
:right_arrow: Telegram: View @cardano2vn

Trân trọng,
Cardano2vn Team

:books: [Tóm tắt Buổi Học 14 – Khóa học Lập trình Blockchain trên Cardano]
:graduation_cap: Lesson 12: Smart Contracts NFT

Trong buổi học này, chúng ta tiếp tục đi sâu vào việc tạo và tương tác với NFTs thông qua Smart Contracts trên Cardano – một kỹ năng quan trọng cho bất kỳ lập trình viên dApp nào.

:light_bulb: Nội dung chính:

:small_orange_diamond: NFT Minting Policy:
Cách viết chính sách phát hành (mint) NFT sử dụng hợp đồng thông minh, thay vì Native Script truyền thống, để kiểm soát quyền tạo token.

:small_orange_diamond: Tương tác hợp đồng thông minh với mã Lucid Off-Chain
:small_orange_diamond: Phân tích CBOR của giao dịch để hiểu rõ cấu trúc và thông tin mã hóa.
:small_orange_diamond: So sánh lợi ích và giới hạn giữa Native ScriptSmart Contract trong quá trình mint/burn token hoặc NFT.

:camera_with_flash: hình ảnh của buổi học




:movie_camera: Video bài giảng

:rocket: Cùng thảo luận & học hỏi tại cộng đồng:
:right_arrow: Telegram: View @cardano2vn

:graduation_cap: [Lesson 15 – Review & Tổng kết Khóa học Cardano Blockchain Programming | BK02]

Chào cộng đồng Cardano! :waving_hand:

Vào ngày 19/06/2025, Cardano2VN đã tổ chức Buổi học số 15, cũng là buổi cuối cùng của khóa đào tạo lập trình Blockchain trên nền tảng Cardano (BK02) dành cho giảng viên/lập trình viên.

:blue_book: Nội dung chính của buổi học:

:white_check_mark: Tổng kết chương trình học

Chúng tôi đã cùng nhau ôn lại toàn bộ 12 bài học đã được triển khai, bao gồm:

  • Kiến thức nền tảng về Cardano Blockchain, mô hình EUTxO
  • Các công cụ như cardano-cli, Lucid, Aiken, Opshin
  • Kỹ năng lập trình hợp đồng thông minh từ cơ bản đến nâng cao
  • Minting Token/NFT, Vesting, VotingDelegate và Reference Script

:white_check_mark: Các bước xây dựng một dApp trên Cardano

Học viên được hướng dẫn tổng quan về quy trình triển khai một dApp thực tế:

  1. Nền tảng & Thiết kế
  • Xác định Vấn đề & Giải pháp

  • Thiết kế Kiến trúc

  • Lựa chọn Công nghệ:

2: Phát triển On-Chain

  • Viết Hợp đồng thông minh.

  • Quản lý Trạng thái thông qua Datum

  • Kiểm thử

3: Phát triển Off-Chain

  • Tích hớp on-chain/off-chain qua API blockforst/Koios…

  • Xây dựng API & Services

4: Phát triển Giao diện người dùng

  • Thiết kế UI/UX

  • Tích hợp Ví (Wallet Integration)

  • Kết nối Backend

5: Kiểm thử, Triển khai & Vận hành

:speech_balloon: Phiên trao đổi mở

Các bạn học viên đã cùng nhau chia sẻ hành trình học, hỏi đáp chuyên sâu và cùng lên kế hoạch để tham gia Hackathon Cardano 2025 và chuẩn bị nộp dự án Catalyst F14.


:camera_with_flash: Một số hình ảnh buổi học:

:television: Video buổi học

:movie_camera: Xem lại buổi tổng kết tại:
:backhand_index_pointing_right: YouTube – Lesson 15: Final Review & Q&A


:light_bulb: Cảm ơn tất cả các học viên đã đồng hành!
Hẹn gặp lại tại những buổi học nâng cao, workshop, Hackathon và cộng đồng Cardano Việt Nam phát triển dApp ngày một lớn mạnh hơn!

:rocket: Cùng tiếp tục hành trình:
:backhand_index_pointing_right: Telegram: @cardano2vn

Trân trọng,
Cardano2VN Team

Bài tập cuối khóa:

Học viên cần làm phần offchain

  1. Applied parameter cho hợp đồng thông mình bằng mã khóa học: BK02
  2. Mint token bắt buộc bắt đầu bằng: BK02 sau đó là tên học viên, ví dụ BK02_NGUYEN_VAN_HIEU
  3. Giao dịch phải có 04 outputs
  4. NTF mint được phải chuyển về địa chỉ BTC: addr_test1qz3vhmpcm2t25uyaz0g3tk7hjpswg9ud9am4555yghpm3r770t25gsqu47266lz7lsnl785kcnqqmjxyz96cddrtrhnsdzl228
  5. Smart contract BTC đã chuẩn bị bên dưới
    ==>hoàn thành gửi về BTC: https://forms.gle/dACC92u6uMebuD8J7

use aiken/collection/dict
use aiken/collection/list
use aiken/primitive/bytearray
use cardano/address.{Address}
use cardano/assets.{PolicyId}
use cardano/transaction.{Output, Transaction} as tx

pub type Action {
Minting_NFT
Burning_NFT
}

validator mint_send_nft(prifix_token_name: ByteArray) {
// redeemer, policy_id, transaction đều được lấy từ transaction thực
mint(rdmr: Action, policy_id: PolicyId, transaction: Transaction) {
let Transaction { mint, outputs, .. } = transaction
let four_outputs = list.length(outputs) == 4
//The payment credential of addr_test1qz3vhmpcm2t25uyaz0g3tk7hjpswg9ud9am4555yghpm3r770t25gsqu47266lz7lsnl785kcnqqmjxyz96cddrtrhnsdzl228 is a2cbec38da96aa709d13d115dbd79060e4178d2f775a528445c3b88f
let c2vn_addr =
address.from_verification_key(
#“a2cbec38da96aa709d13d115dbd79060e4178d2f775a528445c3b88f”,
)
expect [Pair(asset_name, amount)] =
mint
|> assets.tokens(policy_id)
|> dict.to_pairs()
let sent_nft_to_c2vn = find_output(outputs, asset_name, c2vn_addr)
when rdmr is {
Minting_NFT → amount == 1 && sent_nft_to_c2vn && four_outputs
Burning_NFT → amount == -1 && sent_nft_to_c2vn && four_outputs
}
}

else(_) {
fail
}
}

fn find_output(outputs: List, asset_name: ByteArray, addr_cred: Address) {
list.any(
outputs,
fn(output) {
bytearray.slice(asset_name, start: 0, end: 3) == prifix_token_name && output.address.payment_credential == addr_cred.payment_credential
},
)
}

:graduation_cap: Đánh giá cuối khóa | BK02 – Hoàn thiện mảnh ghép cuối cùng :brain:

Xin chào cộng đồng Cardano! :waving_hand:

Vào ngày 19/06/2025, chúng tôi đã tổ chức buổi học cuối cùng của khóa Cardano Blockchain Programming – BK02, đánh dấu cột mốc kết thúc một hành trình học tập ý nghĩa cùng các giảng viên, lập trình viên trẻ đam mê công nghệ Blockchain.


Sau buổi học tổng kết, các học viên đã hoàn thành bài đánh giá cuối khóa, giúp hệ thống ghi nhận và tổng hợp năng lực toàn diện từ các bài học trước. Đây chính là mảnh ghép cuối cùng để Ban tổ chức update Chứng chỉ NFT trên mạng Preview, đồng thời:

:backhand_index_pointing_right: Chuẩn bị sẵn sàng cho việc mint chứng chỉ NFT cá nhân hóa trên mạng Mainnet :bullseye:


:camera_with_flash: Một số hình ảnh học viên đã hoàn thành khóa học:




:link: Giao dịch NFT cuối cùng trên mạng Preview:

TxHash:
tx hash tại đây>
:pushpin: Giao dịch này cập nhật metadata để phản ánh trạng thái “Hoàn thành” khóa học của học viên trên NFT chứng chỉ.


:folded_hands: Một lần nữa, Cảm ơn toàn thể anh chị em học viên đã kiên trì theo suốt hành trình học lập trình Blockchain cùng C2VN, với sự tài trợ từ Catalyst F13.

:light_bulb: Hy vọng chúng ta sẽ tiếp tục đồng hành cùng nhau trong các khóa nâng cao, workshop, Hackathon và những dự án giáo dục Blockchain sắp tới!

:rocket: Cùng xây dựng hệ sinh thái Cardano tại Việt Nam phát triển mạnh mẽ hơn!


:backhand_index_pointing_right: Tham gia cộng đồng Cardano2VN: Telegram: View @cardano2vn

Trân trọng,
Cardano2VN Team

cardano #BlockchainEducation #CardanoVietnam #C2VN #CatalystF13 #NFTcertificate #SmartContracts #BK02

:graduation_cap: [Nhận Chứng Chỉ Hoàn Thành Khóa Học bằng NFT | Cardano Blockchain Programming – BK02]

Xin chào cộng đồng Cardano! :waving_hand:

Sau hơn 4 tháng học tập nghiêm túc với 15 buổi học online qua Zoom, cùng hàng loạt bài tập thực hành sau mỗi buổi và mỗi module, các học viên của khóa đào tạo Cardano Blockchain Programming – BK02 đã chính thức hoàn thành chương trình học :tada:.


:brain: Một hành trình nỗ lực bền bỉ

  • Khóa học BK02 do Cardano2VN tổ chức, với sự tài trợ của Catalyst Fund 13, đã đồng hành cùng nhiều lập trình viên, giảng viên trẻ đam mê Blockchain từ những bước đầu tiếp cận kiến thức nền tảng đến kỹ năng viết và triển khai smart contract on-chain/off-chain thực tế trên Cardano.
  • Học viên đã học qua 12 bài học kỹ thuật chuyên sâu, trải nghiệm thực hành với cardano-cli, Lucid, Aiken, Opshin, làm bài tập sau mỗi buổi học và hoàn thành bài kiểm tra đánh giá cuối khóa.

:trophy: Chứng chỉ NFT – Ghi nhận nỗ lực trên Blockchain

  • Kết thúc khóa học, các học viên đã được mint chứng chỉ NFT cá nhân hóa trên mạng Mainnet của Cardano, như một minh chứng không thể thay đổi cho sự hoàn thành của họ.
  • Mỗi chứng chỉ NFT chứa metadata xác nhận trạng thái “Hoàn thành”, gắn với mã học viên và khóa học, thể hiện sự ghi nhận minh bạch trên nền tảng phi tập trung.

:camera_with_flash: Một số hình ảnh học viên nhận chứng chỉ:

:link: Giao dịch NFT trên Mainnet: here


:folded_hands: Chân thành cảm ơn tất cả các học viên đã kiên trì theo đuổi hành trình học lập trình Blockchain đầy thử thách nhưng cũng rất thú vị này!

:light_bulb: C2VN hy vọng sẽ tiếp tục đồng hành cùng các bạn trong các khóa học nâng cao, workshop, các sự kiện Hackathon và những dự án giáo dục Blockchain tiếp theo.

:rocket: Cùng nhau xây dựng hệ sinh thái Cardano Việt Nam ngày càng phát triển vững mạnh!

:megaphone: Tham gia cộng đồng Cardano2VN tại:
:backhand_index_pointing_right: Telegram: View @cardano2vn

Trân trọng,
Cardano2VN Team


cardano #BlockchainEducation #NFTcertificate #C2VN #CatalystF13 #BK02 #SmartContracts mainnet

1 Like