Phantasma Network

Changelog

Page10 / 10
March 28, 2026TOOLING

TOMB 2.1.0 and pha-deploy 0.5.0 released

Token attach is now supported end to end: TOMB recognizes onAttach triggers, and pha-deploy can attach a compiled contract to an existing token.

  • TOMB 2.1.0 adds support for the token onAttach trigger, with compiler tests for both simple and stateful cases.
  • pha-deploy 0.5.0 adds contract attach, so a compiled VM contract can be attached to an existing token without creating a new one.
  • The CLI can now pin an exact pha-tomb binary through --compiler or PHA_TOMB_PATH, which matters on machines with multiple compiler builds.
  • pha-deploy --version now reports both the CLI version and the pha-tomb binary that is actually being used.

pha-tomb | pha-deploy

dotnet tool install --global pha-tomb
dotnet tool update --global pha-tomb
npm i -g pha-deploy
March 27, 2026DEVNETVALIDATORS

Contract lifecycle support

Deterministic NFT ids, restored contract and token lifecycle hooks, public RPC fixes, and more reliable validator sync.

Important

Devnet network has been rolled back to the March 16 state at block #6502683.

  • Added deterministic Phantasma-compatible NFT minting for the standard VM mint path: the chain now generates stable 256-bit _i ids from the public NFT payload and rejects duplicate deterministic replays.
  • Disabled the old caller-provided explicit NFT id mint path: after the applied resolution, new NFT mints must use the deterministic chain-generated id flow.
  • Restored VM contract lifecycle support for custom and token-backed contracts: Runtime.DeployContract, Runtime.UpgradeContract, and onUpgrade now work again, including contract-owned NFT flows.
  • Restored VM token lifecycle hooks: onMint, onBurn, onSend, onReceive, onInfuse, and onSeries now run in the correct order and roll back cleanly on failure.
  • Implemented Runtime.MintTokens for supported custom fungible tokens, including contract-context minting and contract-owned destinations, while keeping native/dangerous symbols such as SOUL and KCAL blocked from the VM mint path.
  • Added Runtime.GetTokenOwner for reading persisted token ownership.
  • Fixed VM table/list {count} tracking for imported contracts and newly created state, so VM reads now return correct counts for restored tables and fresh fields.
  • Fixed inconsistent public RPC reads for accounts, balances, owned tokens, and NFTs: the affected queries now work reliably across supported clients and address formats.
  • Fixed public InvokeRawScript multi-result responses, so RPC now returns the full VM result list instead of collapsing it into one item.
  • Hardened public PHANTASMAVM execution: token-creation entrypoints are stricter, the minimal-PoW public ExecuteScript bypass is closed, and old partial-burn gas configs no longer crash validators on InvokeRawScript.
  • Improved fresh validator and audit-node sync reliability: nodes now recover and continue replay correctly from partially downloaded state instead of getting stuck during startup.
March 22, 2026TOOLINGSDK

Deterministic NFT mint helpers added across Carbon tooling

Carbon deployment tooling now targets the chain-derived Phantasma NFT id flow instead of caller-supplied ids, keeping mint behavior aligned across C++, C#, and deployment tools.

  • carbon-token-deployment-tool-cs now mints NFTs through the deterministic Phantasma path and requires phantasma_series_id for mint operations.
  • NFT metadata passed by the caller is now treated as public payload only. Reserved fields such as _i and nested rom are created by the chain and should not be supplied in config.
  • Phantasma-CPP now includes helper code for building deterministic NFT mint payloads and reading both the Phantasma NFT id and the Carbon instance id from the result.
  • PhantasmaPhoenix.Protocol.Carbon received the same deterministic mint support on the C# side, so the C++, C#, and deployment tools now follow the same mint rules.

PhantasmaPhoenix.Protocol.Carbon

carbon-token-deployment-tool-cs | Phantasma-CPP

dotnet package update PhantasmaPhoenix.Protocol.Carbon
March 17, 2026DEVNETVALIDATORS

Restored Gen2 VM parity and interops

Gen2 VM parity fixes, restored storage/state interops, NFT lifecycle recovery, and imported-state repair work.

  • Restored Gen2 VM parity for BigInteger, VMObject, and ScriptContext, with deterministic faults for invalid shifts and enum ops.
  • Restored VM storage and state interops, including Data., Map., List.*, runtime getters, and legacy address resolution.
  • Restored VM NFT interop flows: Runtime.MintToken, Runtime.BurnToken, Runtime.TransferToken, Runtime.ReadToken, Runtime.ReadTokenROM, Runtime.ReadInfusions, and Nexus.CreateTokenSeries.
  • Restored exact gen1/2-compatible Phantasma NFT and series ID handling (_i) across mint, burn, transfer, and read paths, including 256-bit IDs.
  • Restored guarded contract-context support for SATRN-style VM flows where a contract creates or mints NFT series under its own token context.
  • Improved imported-state restoration: contract imports now restore globals, maps/lists, token-contract indexes, missing script/ABI, and persisted imported series contract bytes.
  • Added governance repair resolutions for missing series and mint counts, imported token-contract fungible balances, imported market NFTs, and imported NFT infusions.
  • Restored Market royalty execution for imported series, added governance-controlled early cancellation, and fixed Token.GetBalances plus system-address transfer semantics.
  • Remaining gap: full trigger/runtime parity is still incomplete, and Runtime.MintTokens is still unsupported.