On Solana

Official addresses

The Solana addresses that are Citycoin.dev's. Each one links to Solscan, so you can check it there.

Programs

Launchpad program

AkMP9qvAYmb8Vyu63Qhw8Z4ee1fgQbCRKkXWy5r5A1Ai

It creates every official city coin.

Solscan: Launchpad program (opens in a new tab)

Rewards program

EVwxp3V9YSvsyDEjp39B9wRDQxHR2xF2CNeR8AMRYrgG

Solscan: Rewards program (opens in a new tab)

Upgrade authority of both programs

AB5qB1iAukPB7p1dkukQ1qSke3yQBDeSd5o69dLFGs7X

A Squads multisig vault. Its multisig, linked here, needs 2 of its 3 signers to upgrade a program.

Solscan: Upgrade authority of both programs (opens in a new tab)Squads multisig: Upgrade authority of both programs (opens in a new tab)

Fees and price curve

Fee wallet

13qRam63xqqd8KNUoAmHWQu7ro71oHqEsYHYaG5MsRiN

Citycoin.dev's share of city-coin fees goes to this wallet. The launchpad program has this address built in.

Solscan: Fee wallet (opens in a new tab)

Price-curve setting (Meteora)

EZVHCgxKZhvXmUGMXJMEw8tZHiTmoHPyM9mNNQ5u1kSP

The Meteora settings the price curve of an official city coin runs on. Anyone can open a pool on these settings, so they alone do not make a coin official.

Solscan: Price-curve setting (Meteora) (opens in a new tab)

Official city coins

This list is read from the chain by this site; the time of the reading is shown below. Nobody types it in. The same list as a file, one mint address per line: official-coins.csv, and with the details: JSON.

Reading the list from the chain…

Paste any link, token address or @handle to check whether it is Citycoin.dev's.

How to check a city coin yourself

A city coin is official only if its mint address is on the list above (or in official-coins.csv). For each coin, the table and the JSON show its coin record, its mint and its pool as this site read them from the chain. To check them yourself, ask any Solana RPC node for the coin record (getAccountInfo; coinAccount in the JSON): its owner is the launchpad program listed above; its data starts with the 8 bytes d7c335eed9c4d533, which mark a coin record, followed by the city id (8 bytes, little-endian); its address is the one derived from the launchpad program and the seeds "coin" and that city id, so each city has one; and in its data the mint starts at byte 48, the price-curve setting at byte 112 and the pool at byte 144 (32 bytes each). Then ask for the pool: its owner is Meteora's bonding-curve program, and in its data the creator (byte 104) is the coin record, the price-curve setting (byte 72) is the record's and one listed above, and the mint (byte 136) is the coin's. Our programs' description (IDL) is not published yet, so Solscan shows the record's data as raw bytes; the byte offsets above are how to read it. Do not go by a pool's creator alone: anyone can open a pool on our public price-curve setting and then hand its creator role to one of our records, and anyone can make an empty account of their own show our program as its owner. The list above starts from our coin records and makes all of these checks.