# Motoko - NFT with Approve and Transaction Log - An ICRC7/30/30 Canister

**URL:** <https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274>\
**Category:** Developers\
**Created:** [December 4, 2023, 8:44pm UTC](https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274 "2023-12-04T20:44:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [December 4, 2023, 8:44pm UTC](https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274/1 "2023-12-04T20:44:56Z")

</div>

ICRC 7(Base NFT), 30(Approve workflow), and 3(Transaction Log) are reaching final draft status. The following classes allow you to easily add the functionality from these standards to your motoko actor:

[GitHub - PanIndustrial-Org/icrc7.mo: ICRC7 implementation in motoko.](https://github.com/PanIndustrial-Org/icrc7.mo) - Supports minting, burning, transferring of NFTs

[GitHub - PanIndustrial-Org/icrc30.mo: ICRC30 Implementation in motoko](https://github.com/PanIndustrial-Org/icrc30.mo) - Supports the Approve, ApproveCollection, and TransferFrom workflow

[GitHub - PanIndustrial-Org/icrc3.mo](https://github.com/PanIndustrial-Org/icrc3.mo) - Supports a transaction log, including the creation of archive canisters that can store up to 96GB of transaction log data.

The following example puts them all together in a demo canister:

> **[GitHub - PanIndustrial-Org/icrc\_nft.mo: An example nft built on ICRC7/30/3...](https://github.com/PanIndustrial-Org/icrc_nft.mo)**
>
> An example nft built on ICRC7/30/3 standards. Contribute to PanIndustrial-Org/icrc\_nft.mo development by creating an account on GitHub.

All are open sourced and MIT Licensed. It would be helpful to have community eyes on them and to develop a community audit procedure so that the classes can be certified as safe for production use.

Pull requests and issues are welcome.

---

<div class="post-metadata">

**Author:** ![Gekctek](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/gekctek/32/6863_2.png) [@Gekctek](https://forum.dfinity.org/u/Gekctek)\
**Post date:** [December 5, 2023, 12:48am UTC](https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274/2 "2023-12-05T00:48:23Z")

</div>

Nice work. Always good to see Motoko development  
Would be awesome if you could throw them on [GitHub - motoko-unofficial/awesome-motoko: A curated list of Motoko code and resources.](https://github.com/motoko-unofficial/awesome-motoko/)

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [December 5, 2023, 9:18pm UTC](https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274/3 "2023-12-05T21:18:44Z")

</div>

Done. Also bumped everything in mops as the working group updated some of the metadata keys today.

---

<div class="post-metadata">

**Author:** ![sardariuss](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/sardariuss/32/39258_2.png) [@sardariuss](https://forum.dfinity.org/u/sardariuss)\
**Post date:** [August 8, 2024, 4:20pm UTC](https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274/4 "2024-08-08T16:20:40Z")

</div>

👋 @PanIndustrial

First off, thank you for these implementations, it’s great to have them in Motoko.

> Pull requests and issues are welcome.

I just opened an [issue](https://github.com/PanIndustrial-Org/icrc_nft.mo/issues/3) on the icrc\_nft.mo repository since I wasn’t really sure which method was responsible of the behavior I saw. You’ll see in attachement a scenario I made to reproduce the error. I would be curious to know your opinion on it. If you validate it’s a real bug I could try to do a fix myself if you’re busy.

Thank you

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 7, 2025, 10:56pm UTC](https://forum.dfinity.org/t/motoko-nft-with-approve-and-transaction-log-an-icrc7-30-30-canister/25274/5 "2025-01-07T22:56:37Z")

</div>

We have bumped this package in mops.

## v0.5.0

- Updated to the class+ library.

- Breaking Change: You will need to update your args and class setup functions.

- Fix for ICRC37 to allow batch transfer\_from

See more about ClassPlus here: [ClassPlus - A motoko class for classes](https://forum.dfinity.org/t/classplus-a-motoko-class-for-classes/39805)

It should reduce boilerplate in your actors
