Key takeaways
- TRC-721 replaces the balance ledger of a TRC-20 with an ownership registry: every token carries a unique
uint256id, and the contract records exactly one owner per id. - APENFT was the showcase — Justin Sun's 2021 auction wins (a $20M Picasso, a $2M Warhol, a $6M Beeple, the $78.4M Giacometti Le Nez) were minted to TRC-721 by the buyer's own foundation, while the foundation's NFT token is itself an ordinary fungible TRC-20.
- NFTs stayed a small corner of TRON: TRC-721 contracts number in the low thousands against hundreds of thousands of TRC-20 contracts.
- For tracing: an NFT transfer moves a registry pointer while any payment travels separately; a marketplace address holding a token is custody; and on-chain "sale history" can be manufactured by an owner trading with themselves — what the U.S. Treasury calls self-laundering.
TRON’s NFT story runs through two token standards and one foundation. The standards, TRC-721 and TRC-1155, are near-verbatim ports of their Ethereum counterparts, adapted to the TVM. The foundation, APENFT, spent 2021 routing some of the most expensive art purchases in crypto history — a Picasso, a Warhol, a Beeple, a $78.4 million Giacometti — onto the chain as tokens.
The mechanics matter more than the headlines. A non-fungible token is a registry entry: a contract that maps each token id to exactly one owner, where a fungible token maps each address to an amount. That single design change flips what a “transfer” means on-chain, and it changes how an investigator has to read one.
The payoff of this article is the reading, so the headlines get their audit too. What an NFT records about its own history begins at mint, mint is self-attested, and everything after mint can be staged. TRON’s most famous NFTs were minted by the same organization that bought the underlying art.
What TRC-721 changes about a token
The standard is TIP-721 (status: Final, created November 2020), and it states its own compatibility: TIP-721 is adopted from Ethereum’s EIP-721. A compliant contract tracks unique assets, each identified by a uint256 token id that stays constant for the life of the contract. The pair of contract address and token id is globally unique — that pair, and neither half alone, is the asset’s name on-chain. TRC-20, covered in Token Standards on TRON, answers a different question with a similar-looking interface:
| TRC-20 (TIP-20) | TRC-721 (TIP-721) | |
|---|---|---|
| What the contract stores | A balance per address | An owner per token id |
balanceOf(address) | How many units an address holds | How many distinct tokens it holds |
| Identity of what moved | None — units are interchangeable | tokenId, unique and permanent |
| Transfer call | transfer(to, value) | transferFrom(from, to, tokenId) |
The Transfer event carries | An amount | A token id |
Ownership queries. ownerOf(tokenId) returns the single address that owns a token — a function with no TRC-20 equivalent, because a fungible unit has no identity to look up. This is the investigator’s primitive: called at any block height, it answers “who held this exact asset, then.”
Approvals. approve(address, tokenId) delegates control of one token; setApprovalForAll delegates the caller’s entire collection to an operator. Marketplaces run on the second form, which is also where drainer risk concentrates — an operator approval over a collection persists until revoked.
The safe-transfer handshake. safeTransferFrom checks whether the recipient is a contract and, if so, requires it to answer with a magic value proving it can handle NFTs. Here TIP-721 diverges from its parent in one byte-level detail: the onTRC721Received return value is 0x5175f878, where Ethereum uses 0x150b7a02. A contract ported from Ethereum without that change silently breaks safe transfers — and the divergence is a fingerprint that tells you which chain a contract was written for.
TRC-1155. TIP-1155 (status: Final, created July 2022) is the multi-token standard, compatible with EIP-1155. One contract manages many token ids, each with its own supply — an id with supply 1 behaves as an NFT, an id with supply 1,000,000 as a fungible token — and safeBatchTransferFrom moves several ids in a single call. Batch semantics mean one transaction can move an arbitrary mix of assets, so decoding the event log is the only way to know what changed hands. The decoding mechanics live in Smart Contracts and the TVM.
ownerOf at any block.APENFT: an auction paddle with a token contract
APENFT is where TRON’s NFT layer met the traditional art market, and the timeline is compact. In March 2021, Justin Sun won Beeple’s OCEAN FRONT for $6 million in a charity auction whose proceeds went to the Open Earth Foundation. His open letter announcing the win, published March 24, committed the piece to the chain — “the ownership of the NFT artwork will be mapped to TRON blockchain following the TRC721 standard,” with storage on BTFS — and announced the plan to establish an NFT foundation. APENFT’s own materials date its formal registration to March 29, 2021, six days later, with a stated mission of “registering world-class artworks as NFTs on the blockchain.”
The traditional-art buys followed within the week. On April 1, 2021, Sun’s JUST NFT Fund announced its first listed works: Picasso’s Femme nue couchée au collier (1932) and Warhol’s Three Self Portraits (1986), both from Christie’s 20th Century Evening Sale in London on March 23 — the Picasso realising £14,582,500 (~$20.2 million) by Christie’s own figure, the Warhol about $2 million, premium-inclusive realised prices rather than the hammer figures the buyer’s release billed them as. That release also set the fund’s floor at $1 million per piece with a $10 million median. The season’s capstone came that November: at Sotheby’s Macklowe Collection sale on November 15, 2021 — a $676.1 million white-glove auction — Giacometti’s sculpture Le Nez achieved $78.4 million. Sotheby’s release names no buyer. Sun publicly revealed himself as the winning bidder — a $60 million hammer, roughly $78.4 million with buyer’s premium — and said he would donate the sculpture to APENFT, which announced on November 23 — eight days after the sale — that the piece had been minted into TRC-721 format. Even that donation is a contested self-attestation: in 2025 litigation against David Geffen, Sun stated he never actually donated or transferred ownership of the sculpture, only allowed it to be exhibited virtually online — so for this piece the self-attestation problem reaches past the mint into whether the on-chain claim reflects any real transfer at all. By early November 2021 APENFT put its collection — Picasso, Warhol, Beeple, Pak, and NFT collectibles — at over $46 million, before Le Nez joined it.
One structural detail cuts through the branding. The foundation’s own token, ticker NFT, is a TRC-20 — a fungible token with a total supply of 999,990,000,000,000 issued May 13, 2021, held by millions of addresses. The artworks are non-fungible; the thing most people bought under the NFT name was interchangeable supply. The foundation has since rebranded: the token contract now reports its name as AINFT, by mid-2026 apenft.org redirected to ainft.com, and exchange notices confirm the ticker stayed NFT through the rename.
The provenance caveat applies to the whole episode. The Picasso and the Giacometti changed hands at auction houses, settled off-chain in the ordinary way; the tokens were minted afterward by the buyer’s foundation as claims about assets it controls. On-chain history for these pieces starts at that mint, and the minter and the subject of the provenance are the same party.
Scale: a small corner of a stablecoin chain
The numbers keep the category in proportion. In TRONSCAN’s token registry, non-fungible contracts — TRC-721 and TRC-1155 combined — number in the low thousands, against TRC-20 contracts in the hundreds of thousands and thousands more TRC-10 tokens. Non-fungible contracts are on the order of one percent of the chain’s token contracts. TRON’s economy is stablecoin settlement, and NFTs never became for TRON what they were for Ethereum, even at the 2021 peak when U.S. authorities measured the market-wide NFT trade at $1.5 billion for the first quarter alone, up 2,627% on the prior quarter.
Structure explains part of that. A fungible token gets continuous pricing from AMM pools — the machinery in Decentralized Exchanges on TRON — because any unit is as good as any other. A unique token id can’t sit in a liquidity pool; every sale is a negotiated pair of counterparties on a marketplace contract or a private transfer. Prices are whatever the last pair agreed, which is precisely the property that makes the next section’s distortion cheap to run.
Reading an NFT trail
An NFT’s life on-chain is an event stream from one contract. The mint is a Transfer event from the zero address; every subsequent Transfer carries the token id to a new owner; Approval and ApprovalForAll events record who was licensed to move it in between. Each of those is a TriggerSmartContract transaction — which means the top-level transaction shows the NFT contract as the destination, and the parties and token id sit in the event log, waiting to be decoded.
Three rules keep the reading honest.
A transfer moves a pointer, and the money travels separately. An NFT transfer is a contract interaction, not a value payment. When a sale settles through a marketplace contract, the TRX or TRC-20 payment and the token movement are separate legs inside one execution; when parties settle privately, the payment may be a different transaction entirely, on a different day, or off-chain and invisible. Never infer a price from a transfer, and never assume a transfer had one.
A marketplace address is an intermediary, not an owner. Listing and escrow patterns park tokens at marketplace contracts, and operator approvals let those contracts move tokens the seller still holds. ownerOf returning a marketplace address describes custody machinery, and treating that contract as a party of interest is the same category error as treating a DEX router as a trader. The owner of record is whoever the token leaves the intermediary for — the same discipline applied to exchange and contract addresses throughout Following the Money.
Sale history can be manufactured. Because every sale is a negotiated pair, an owner controlling both sides can trade a token between their own wallets at any price, as many times as they like, and the chain will faithfully record a rising market. The U.S. Treasury’s 2022 study of the art trade names the pattern: “NFTs can be used to conduct self-laundering, where criminals may purchase an NFT with illicit funds and proceed to transact with themselves to create records of sales on the blockchain,” priming a final sale to an unwitting buyer with clean funds. The counter is funding analysis — for each “buyer” in the token’s history, trace where that wallet’s money came from. Wash trades tend to betray themselves upstream: the buyer was funded by the seller, or both sides drink from one funding source a hop or two back.
For an investigator the method reduces to a checklist. Fix the asset as the (contract, tokenId) pair and walk its Transfer events from mint forward. Discount everything before mint — on-chain provenance cannot reach behind the minter’s own attestation. Collapse marketplace contracts to pass-throughs and name the wallets on either side. Then audit the buyers’ funding, because a token’s price history is only as honest as the independence of the wallets that produced it.
Sources
- TIP-721 — TRC-721 Token Standard — the canonical NFT standard (status: Final, created November 2020): unique
uint256token ids, the (contract, id) global identifier,ownerOf/approve/safeTransferFrom, EIP-721 compatibility, and the0x5175f878magic value diverging from Ethereum’s0x150b7a02. - TIP-1155 — TRC-1155 Multi Token Standard — the multi-token standard (status: Final, created July 2022): per-id supply and metadata,
safeBatchTransferFrom, EIP-1155 compatibility. - TRONSCAN tokens-overview API — chain-explorer registry counts as of July 2026: 2,880 TRC-721 and 41 TRC-1155 contracts against 183,829 TRC-20 and 4,655 TRC-10.
- TRONSCAN — NFT/AINFT token record — the foundation’s token at
TFczxzPhnThNSqr5by8tvxsdCFRRz6cPNq: TRC-20, ticker NFT, contract name AINFT, total supply 999,990,000,000,000, issued May 13, 2021, ~2.15M holders as of July 2026. - Open Letter to the Community by Justin Sun — TRON DAO — Sun’s own March 2021 letter: the $6M OCEAN FRONT win, proceeds to the Open Earth Foundation, ownership “mapped to TRON blockchain following the TRC721 standard,” BTFS storage, and the plan to establish an NFT foundation.
- Justin Sun Acquires Artworks by Picasso and Warhol via JUST NFT Fund — Coinspeaker — independent reporting that Sun’s JUST NFT Fund bought Picasso’s Femme nue couchée au collier ($20M) and Warhol’s Three Self Portraits ($2M) at Christie’s 20th Century evening auction, London; Christie’s official realised price for the Picasso was £14,582,500 ($20,167,598) on March 23, 2021, per Salon Privé. The $1M floor / $10M median remain the fund’s own stated policy.
- Sotheby’s press release — White Glove Result for The Macklowe Collection — the auction house’s own record: November 15, 2021, $676.1M total, Le Nez at $78.4M. Names no buyer.
- Justin Sun, the buyer of Sotheby’s $6m banana, sues megacollector David Geffen over $78m Giacometti sculpture — The Art Newspaper — independent, durable confirmation that Sun revealed himself as the Le Nez buyer (hammer $60M; ~$78.4M with fees) and said he would donate it to APENFT; the same litigation record shows Sun later claimed he never actually donated or transferred ownership, only allowed virtual online exhibition — so the donation itself, not just the pre-mint provenance, is a contested self-attestation.
- TRON’s Founder Justin Sun Donated Giacometti’s $78.4 Million Le Nez to the APENFT Foundation — APENFT release — the foundation’s own November 23, 2021 press release (syndicated copy), eight days after the Sotheby’s sale: Sun’s donation announcement and the statement that the works “have been minted into TRON’s TRC-721 NFT format.” A self-attestation by the minting party — which is the article’s point.
- APENFT Foundation Launches $100 Million Art Dream Fund — APENFT release — the foundation’s own November 2021 boilerplate (syndicated copy): registered March 29, 2021, the mission of “registering world-class artworks as NFTs on the blockchain,” BTFS backing, and the >$46M collection valuation.
- U.S. Department of the Treasury — Study of the Facilitation of Money Laundering and Terror Finance Through the Trade in Works of Art (Feb 2022) — the self-laundering definition quoted above (p. 27), peer-to-peer NFT transfer without intermediaries, royalty-driven incentives for rapid repeat trading, and the Q1 2021 $1.5B / +2,627% market figures (p. 26).
- KuCoin notice — Support for APENFT Rebranding to AINFT — exchange confirmation that the ticker remains NFT through the rename; the rename itself is visible on-chain in the token record above and in the apenft.org → ainft.com redirect observed July 2026.
- smart_contract.proto — tronprotocol/protocol — the protocol definition of
TriggerSmartContract(owner_address,contract_address,call_value,data,call_token_value,token_id) — the message type this chapter names. Protocol-authoritative: a contract type is either declared incore/contract/or it does not exist.