Pangu docs

Contracts and addresses

Where Pangu lives on chain, every sale on devnet, what it depends on, and how to check the demo is still live.

The Pangu program, on Solana devnet

FactValue
Program address4Nd46mDiaTSkqXPAXKqT4jkahcz1TxVSdoirbBCAr5qG
Running since24 September 2026, 04:09:17 UTC, slot 503286300, the seventh deploy
Explorerhttps://explorer.solana.com/address/4Nd46mDiaTSkqXPAXKqT4jkahcz1TxVSdoirbBCAr5qG?cluster=devnet
Upgrade authorityFwi8ejZ8kqF8PwcxssHFqJQZmVrkmBfoaXV5CTjqp5L, the project's own devnet wallet, held by the team and stated openly
sha256 of the deployed build7082897943e68901f85c8c93e2581a8a3571af41491ac9f242286592f4b388f8, 339,848 bytes, SBPF v3
Program data account58UAoZWuoMpnV4HzydaVUai9U7DFzapFtN5KtAzkzDpY

The program was deployed once and upgraded six times on devnet, always at this same address, each build checked byte for byte against the code that was tested before it went live.

DeploySlotWhen (UTC)What went on chain
150233804222 September 2026, 08:30:39The first deploy
250237349622 September 2026, 10:08:31The program and SDK review fixes
350243667822 September 2026, 13:02:53The price ceiling moved to Pyth
450247673022 September 2026, 14:53:26The rules layout version, so a reader refuses rules written by another layout
550289953823 September 2026, 10:21:01Rules v2, an upgrade in place: the paying token is stored and checked, a banded sale must be priced in dollars, the cap stays below what the curve sells, every sale carries an offering period, and every event names its sale's mint. Signature 4GQ2J5s1QmypeiDfeRwCGpZN13TpmMTQoXNnWnQq3jtxFW88cudEr5fjyxA9c8qbBitT5JuC7AHRgtSCGaUpokZ4
650298197223 September 2026, 14:08:42A price ceiling only when buyers pay in a dollar the program lists for its network: devnet USDC and the demo dollar on this build, USDC alone on the mainnet build. Signature 4ep1rYGmZJXns7Efu22HmR1fHfKZQrnhznoMj3vjA7ZYxQi27yqkPPvix6fqv72ZHyrSVmFNiU6Kf4a4btauEPZ6
750328630024 September 2026, 04:09:17The same program moved to SBPF v3, the bytecode format the network keeps accepting for deploys and upgrades once the older formats are switched off, so no rule on the old format can block a later upgrade. Signature 5sDpVkMBka2UFMwdXtnKHPK498dFQsrcnjyzcxU7cNVE6z5KsM1aqVn7UkfWqHNc8byCSQj97gxfCmVcrmHcunq7

The full history, including what each upgrade cost, is in docs/deployments.md in the repository.

What Pangu depends on

ProgramAddressWhat it is
Meteora Dynamic Bonding Curvedbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqNFinds the price and creates the sale token. Same address on mainnet and devnet.
Solana Attestation Service22zoJMtdu4tQc2PzL74ZUT7FrwgB1Udec8DdW4yw4BdGOptional. The credential-based approval mode reads a buyer's attestation from here. Same address on mainnet and devnet.
Pyth price feed programpythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsTDerives the account address a banded sale reads the real stock price from.
Pyth receiver programrec5EKMGg6MxZYaMdyBfgwp4d5rB9T1VQH5pJv5LtFJThe only program allowed to write a price feed account, and only after checking the signatures behind it.

Every sale on devnet now

/sales in the app reads this list off the program itself, so it is always current. The front page leads with the banded demo sale that can take a buy right now: PBAND2 while Pyth is publishing Apple's exchange price, and PAAPLX, banded on AAPLx which trades all week, when it is not.

The demo sales, opened from the command line:

SaleMintWho may buyPaid inCeiling followsOffering endsHeadline transactions
PBAND2, Pangu Priced Share, second offering5VrNEfV1gQrBrMLSxyaK3AXRa2yj9Xp9i65MZzKHGZSoanyone, 10 percent capthe demo dollarApple's exchange price (Equity.US.AAPL/USD), 5 percent over7 October 2026, 10:38 UTCopened https://explorer.solana.com/tx/5Biy9QvCFgYNEPWFNzEA31aYF5c7vLFBu48jmSUkXa2ocb2akDLjmF6ARQQaZkTY21ZgARMVERpYWqLAocES1KYD?cluster=devnet; a buy refused at the ceiling with PriceOutsideBand https://explorer.solana.com/tx/4LXby4FwaytfNkRtj6TwyMWsm92iZFbyTEG6mvf8iwMxMdbwgKFaczDWMuexBgiqmK58UDFJ6iusQQt51vaEAYRc?cluster=devnet
PAAPLX, Pangu Priced Share, round the clock8FaBUEjMfkpYAzZLmLKwYHxd15BNC1ZBFkgTgN2WCQvKanyone, 10 percent capthe demo dollarAAPLx, the tokenized Apple that trades all week (Crypto.AAPLX/USD), 5 percent over7 October 2026, 13:05 UTCopened https://explorer.solana.com/tx/4HN35oFemvfijyrNMwiS6vSeNU4BEvTd56NBGdScK9wzCTQ1vcgHJ4Gpj9Ze9eTXRbMjUEHJkYgPuy8yCbpVkSjZ?cluster=devnet; a buy refused at the ceiling with PriceOutsideBand https://explorer.solana.com/tx/5TbBnGrVHCkEj2GkdpRR7cR5p5TMUFrwubhqub5GVYQrTK3QsSTmhoLGYTZ1fEQ5diUm4C6M6acVAu6aUNTUGm8v?cluster=devnet
PVRFD, Pangu Verified Share7ixMAMUmysN4qsCpthdznhq7aRbiCNB5Xeg3X9vBSLWnwallets the demo verifier attested, 10 percent capSOLno ceilingno end, holds until graduationopened https://explorer.solana.com/tx/3NGu6WxguinVc8VyQSqA79kL3jkCXWhC5kAoaK2kdesSyP8ZHgcCwM8BhZgvLfVoAuZ9okAUbuwB8hwL7PEyVw5D?cluster=devnet; a buy with no attestation refused with CredentialInvalid https://explorer.solana.com/tx/2dvaB2gcFvwmdmQbYHV2wuuGKtQfTdPUk6yZNWXTMyrFHE9XVkeWZM2N7tGiwysNDx8jHUTrGxMkBFWDK3G3iPGi?cluster=devnet
PBAND, Pangu Priced Share2dp5caL9PPVWafYkmNHBdHEX6zWfG42BmERcnLK75N4Yanyone, 10 percent capthe demo dollarApple's exchange price, 5 percent overnone: opened under version 1 rules, which the current build reads as never endinga buy refused at the ceiling with PriceOutsideBand https://explorer.solana.com/tx/3FMhcSoCkFCp3PBMBjaejwEiXVmdDAREJCDaP2bYw2u2hGxanesdx5vi2cEU2ZMK1obRZhcUgWFKQ1tqMUy8sXDU?cluster=devnet
PLIST, Pangu Listed Share2ARD1KwvxyjLPwe46rivjxPRyMzvxSEPGvwKTqcNXpFRthe issuer's approved list, 10 percent capSOLno ceilinggraduated into DAMM v2 pool 2cEAoE9zi53y736DsaPBzgfdrUqJnVgqwutZTGsmsSLcmigration https://explorer.solana.com/tx/5CpV8KReoYeRqXzeLDvfxuGM2yp99Mex6bTKRjutccd9HcmzZ2b1X36fVsPeuVHb7sQA3PuCkLRE8RJHbogiEPVT?cluster=devnet

Against PBAND2, 9 attacks were run in the sixth run, 8 refused and 1 allowed as expected, the cap and the ceiling both refused on the same sale. Against PAAPLX, in the seventh run, the same 9 with the same result, against a price that publishes all week. Against PVRFD, 10 attacks, 8 refused and 2 allowed as expected: the first time credential mode was attacked on the live program.

The sales opened from the launch page, each by a throwaway issuer wallet in a recorded run (packages/web/lab-evidence/launch-devnet.txt, metadata-devnet.txt and metadata-test-wallet.txt in the repository):

SaleMintWho may buyPaid inCeiling followsOffering ends
PLAUNCH, Pangu Launch Page Share4HFYeRrCmPER6T1LcKWaThF4MNejzzRfLFsRdv5GDt1danyone, 10 percent capthe demo dollarAAPLx, 5 percent over7 October 2026, 14:12 UTC
PLAUNCH, with a logoDKDhn1ZypcNtb1h4Y9kKmrzh9LthZcx5NCoeRPTREiPhanyone, 10 percent capthe demo dollarAAPLx, 5 percent over7 October 2026, 15:29 UTC
PLAUNCHL, Pangu Launch Page ListCbqVFjNMJndSfVy36DR9uPZBSTfNvVf5LSbNeqX9qpG1the issuer's approved list, 10 percent capSOLno ceilingno end
PLAUNCHL, second runGTVaKD5rS59enGmAGLe3JPNFLx6s5xKB6tcnAufdnYMxthe issuer's approved list, 10 percent capSOLno ceilingno end
PLOGO, Pangu Logo Proof ShareDHg1rV6WUNYahX31jvXioTMSDrkd2eKJtK7JBppBoucKanyone, 10 percent capSOLno ceiling30 September 2026, 7 days after launch
PLOGO, earlier run34d5bc9FeuE6wQK867W2zv9kiuoFzAvfLGAo8pZeBtN4anyone, 10 percent capSOLno ceiling30 September 2026, 7 days after launch

History, kept for the record. POPEN (CBckMjBpHHQtcqxbTu5dUd3nQjyV8oVA4nfBZiTwYXo7, opened at 400 dollars a share so every buy was refused at the ceiling) and a second list sale (4kzCbpEZxyzwXno1ZVnTJ9BAGSjD1HVgSBSwikEsxeaE) were retired on 23 September 2026; /sales hides them behind a switch. Four sales from the first three runs, among them the list sale FToBcoyaCZtLpbaGFV8wdomngjwuQp5XShj6fHdzLyGv that graduated into DAMM v2 pool DLK2xF5i18rgXui9RN6urpAYg3bJxKNtkxiMYS5KECv, were retired after the layout-version build, because its reader refuses rules another layout wrote. The eighth run opened no sale at all: its banded pool and rules, on a token that is not a listed dollar, were refused with BandNeedsDollarQuote in one transaction, https://explorer.solana.com/tx/M9GmvWbFTHCPBJnPbX1k2hmHUzqdBgAQnf7LevymftEjcjTbfM6wy3YXrUieCg2NWsfNdoP9qXESgQP4C9wcYCG?cluster=devnet, leaving only the token and its launch template behind.

Full transaction-by-transaction detail, including every attack and its signature, is in docs/measurements/devnet-run.md and docs/measurements/sdk-pyth.md in the repository.

Run the proof yourself

All Rust and TypeScript tests, no network needed:

MSYS_NO_PATHCONV=1 wsl -d Ubuntu -- bash /mnt/d/Projects/Meteora/scripts/wsl/test.sh

Prints rust: test result: ok. 31 passed and a mocha summary of 141 tests passing, then exits 0. The mocha suite runs on solana-bankrun, which cannot load SBPF v3, so it runs an SBPF v0 build of the same source that nothing deploys; the fork suites run the v3 build. The counts for every suite are in docs/measurements/test-counts.md.

The devnet prove command, against the live program:

cd packages/scripts && npm run prove

Prints a table of attacks, an exit code, and the largest holder's share against the cap. The sixth devnet run, against the banded dollar sale (PBAND2), ended:

proof    : the largest wallet holds 16.93 percent of the 6229218448 raw units sold, against a cap worth 17.66 percent of them
cost     : 0.011317 SOL, after 0.033344 SOL came back from the attacking wallets

9 attacks run, 8 refused as expected, 1 allowed as expected, 1 not applicable, 0 off the standard

On the credential sale, npm run prove -- --mint 7ixMAMUmysN4qsCpthdznhq7aRbiCNB5Xeg3X9vBSLWn, the same run ended 10 attacks run, 8 refused as expected, 2 allowed as expected, 1 not applicable, 0 off the standard. On the round-the-clock sale, npm run prove -- --mint 8FaBUEjMfkpYAzZLmLKwYHxd15BNC1ZBFkgTgN2WCQvK, the seventh run ended 9 attacks run, 8 refused as expected, 1 allowed as expected, 1 not applicable, 0 off the standard.

The four doors of the app have their own recorded runs on devnet, each a script that drives the real page with a throwaway wallet and checks every line against the chain: launch-devnet.txt, metadata-devnet.txt, sale-devnet.txt, verify-devnet.txt and portfolio-devnet.txt in packages/web/lab-evidence. The signatures from each are at the foot of the Launch a sale, Buy and sell, Verify buyers and Your portfolio pages.

The status command

npm run status, run daily through judging, checks that the deployed program still hashes to what docs/deployments.md records, that every demo sale's rules account is still on chain, that each running banded sale has a Pyth price account and shows how old the price in it is, that the Pyth key still answers, and that both project wallets can still pay. It prints one row per check and exits non-zero if anything says FAIL. A WARN is for something worth a look that does not stop the demo, most often a stock price that has aged out because the US market is closed, which the row states plainly when that is the reason.

Mainnet

Not deployed. Ready: the mainnet build, SBPF v3, is made reproducibly and verified, sha256 16a13b7f8e9eab5f407d9564f8826bdca8390e6a28dc411a954adad7d3d7852e, 337,856 bytes, recorded in docs/deployments.md; the deploy is one guarded command a person runs with their own key, and every step was rehearsed on a forked copy of mainnet on 23 September 2026. The program keypair fixes the address, so on mainnet it will sit at the same 4Nd46mDiaTSkqXPAXKqT4jkahcz1TxVSdoirbBCAr5qG. What changes on mainnet, the costs and the upgrade key plan are on the mainnet page; the runbook is docs/deploy/mainnet.md in the repository.