Which SmartMetal series exist?

SmartMetal series: 2024 and the Limited Edition Azure Dragon

The Veri SmartMetal contract has two series, the 2024 series of 6,566 tokens (ids 1 to 6566, created on chain on 22 May 2025) and Veri SmartMetal Limited Edition Azure Dragon, 16 tokens created on 28 May 2026; each series is one metadata folder on IPFS, and its id is the keccak256 hash of that folder's CID.

Standard#
ERC-1155
Transactions#
All transactions
Last verified#
13 Oct 2026

A series is a group of SmartMetal tokens that share one metadata folder on IPFS. The token contract, 0x4516a5D613C30A36D157d3b579813734cbb929a4, had two on 13 Oct 2026 (seriesCount() returns 2), and totalSupply() returns 6,582, the two series added together. Every token in both is non-fungible: totalSupply(id) is 1 for each id.

Series Series id Metadata folder (CID) Token ids Created on chain
2024 0x2ee2…939a QmU8oEWK3KNrJqHGtWgpZzjcUBukmSLutFY6ZxGGkcEdLf 1 to 6566 (6,566 tokens) 22 May 2025, block 30,569,486
Veri SmartMetal Limited Edition Azure Dragon 0x2d3e…b9d6 QmSijK1oR1TAGhGeeZrrVrjEoQAyGYGB1Vph3qvSSzT3Ht 16 ids, 7777 to 88888888888 (listed below) 28 May 2026, block 46,583,469

The same table is in /facts.json under series, with the full series ids.

How a series id is made#

createSeries(cid, isFungible) sets the series id to keccak256 of the CID string, exactly as written, so anyone can compute it offline:

# keccak256("QmSijK1oR1TAGhGeeZrrVrjEoQAyGYGB1Vph3qvSSzT3Ht") = 0x2d3e0395c9e91e036ad74f6010443210c6a13260c88e93fc7c2fecc2d577b9d6
node -e 'const {keccak_256}=require("@noble/hashes/sha3.js");const {bytesToHex,utf8ToBytes}=require("@noble/hashes/utils.js");console.log("0x"+bytesToHex(keccak_256(utf8ToBytes("QmSijK1oR1TAGhGeeZrrVrjEoQAyGYGB1Vph3qvSSzT3Ht"))))'

# or, with Foundry's cast
cast keccak QmSijK1oR1TAGhGeeZrrVrjEoQAyGYGB1Vph3qvSSzT3Ht

The hash equals the seriesId topic of the series’ SeriesCreated log, and listSeries returns the same pairs of id and CID. Because the id is the hash of the CID, the same metadata folder gets the same series id on any chain, and createSeries refuses a CID that was already registered.

The 2024 series#

“2024” is the label the tokens carry: each one is named Veri SmartMetal Silver Round #<id> and its metadata has year: 2024. It is not a date. On chain, the series was created on 22 May 2025 at 15:38:39 UTC in block 30,569,486 (transaction), 53 blocks after the token contract itself, and its 6,566 tokens were minted over the following quarter of an hour:

seriesTokenCount returns 6,566 and seriesTokens lists the ids 1, 2, 3 … 6566 with no gaps. Id 6567 does not exist (exists(6567) is false).

Every 2024 token shares one image, ipfs://QmYsiGSYWx6mn3TgLZfoZVRqqNjuyvTLziWscfjme3tmAK, and the same attributes apart from its serial number: metal Silver, purity 0.999, weight 1 oz, year 2024, mint Veritaseum, serial number equal to the token id. Look up a SmartMetal token shows the full metadata file.

Veri SmartMetal Limited Edition Azure Dragon#

The second series was created on 28 May 2026 at 08:18:05 UTC in block 46,583,469 (transaction). Its 16 holders were registered three blocks later (transaction) and the 16 tokens were minted to SeriesActivation in block 46,583,475 (transaction), twelve seconds after the series was created.

The token ids are the repdigits of 7 and 8 from four to eleven digits long:

Length Ids
4 7777, 8888
5 77777, 88888
6 777777, 888888
7 7777777, 8888888
8 77777777, 88888888
9 777777777, 888888888
10 7777777777, 8888888888
11 77777777777, 88888888888

Each token is named Veri SmartMetal Limited Edition Azure Dragon #<id>, described as “The Azure Dragon of Ancient Chinese Mythology”, with its own image (token 7777’s is ipfs://QmR2coRJYva1ACFU3gMzZRX2LaZztWTFcPrDKvG3FimH6S) and the attributes metal Silver, purity 0.999, weight 1 oz, year 2026, mint Veritaseum, serial number equal to the token id.

Check it yourself#

Each command is an eth_call to a public Base endpoint; swap in https://base-rpc.publicnode.com if the first one is busy.

# seriesCount(): 0x…02
curl -s https://mainnet.base.org -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x4516a5d613c30a36d157d3b579813734cbb929a4","data":"0xd7f2c0ef"},"latest"]}'

# listSeries(0, 10): both series ids, then both CIDs as ABI-encoded strings
curl -s https://mainnet.base.org -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x4516a5d613c30a36d157d3b579813734cbb929a4","data":"0x71ab8b690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"latest"]}'

# seriesTokenCount(2024 series): 0x…19a6, which is 6566
curl -s https://mainnet.base.org -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x4516a5d613c30a36d157d3b579813734cbb929a4","data":"0xe3c3d74a2ee24f76bf0ebc754064e8c31709a2241c2c2969694a5f3ba3dd956833de939a"},"latest"]}'

# seriesTokens(Azure Dragon series, 0, 16): the 16 ids, 7777 (0x1e61) first
curl -s https://mainnet.base.org -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x4516a5d613c30a36d157d3b579813734cbb929a4","data":"0xee47a9272d3e0395c9e91e036ad74f6010443210c6a13260c88e93fc7c2fecc2d577b9d600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010"},"latest"]}'

# totalSupply(): 0x…19b6, which is 6582
curl -s https://mainnet.base.org -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x4516a5d613c30a36d157d3b579813734cbb929a4","data":"0x18160ddd"},"latest"]}'

With Foundry installed, its cast command runs the same calls and decodes the answers:

export ETH_RPC_URL=https://mainnet.base.org

# 2
cast call 0x4516a5d613c30a36d157d3b579813734cbb929a4 'seriesCount()(uint256)'

# Both series ids, then both CIDs
cast call 0x4516a5d613c30a36d157d3b579813734cbb929a4 'listSeries(uint256,uint256)(bytes32[],string[])' 0 10

# 6566
cast call 0x4516a5d613c30a36d157d3b579813734cbb929a4 'seriesTokenCount(uint256)(uint256)' 0x2ee24f76bf0ebc754064e8c31709a2241c2c2969694a5f3ba3dd956833de939a

# [7777, 8888, 77777, …, 88888888888]
cast call 0x4516a5d613c30a36d157d3b579813734cbb929a4 'seriesTokens(uint256,uint256,uint256)(uint256[])' 0x2d3e0395c9e91e036ad74f6010443210c6a13260c88e93fc7c2fecc2d577b9d6 0 16

# 6582
cast call 0x4516a5d613c30a36d157d3b579813734cbb929a4 'totalSupply()(uint256)'

To read the series without curl, open the contract’s Read as Proxy view on BaseScan and call listSeries with offset 0 and limit 10.

Sources#

  1. SeriesCreated transaction of the 2024 series, BaseScan
  2. SeriesCreated transaction of the Azure Dragon series, BaseScan
  3. Azure Dragon mint transaction, BaseScan
  4. Metadata of token 1, IPFS
  5. Metadata of token 7777, IPFS
  6. QRToken contract reference, Series1155V1