Not a protocol bug — the v0.14 asset encoding works as expected. The docs just don't define the canonical layout anywhere readable, so the Zoro team had to dig through Rust source to figure it out (context).
Add an "Asset encoding" section to docs/core-concepts/protocol/asset.md covering:
- The
ASSET_KEY / ASSET_VALUE layout for fungible and non-fungible assets.
- When
asset_id_* is zero (fungible) vs. taken from DATA_HASH[0..2] (non-fungible).
- The metadata low-byte on
faucet_id_suffix and how AssetCallbackFlag packs into it.
Source of truth: AssetVaultKey::to_word() in miden-protocol/src/asset/vault/vault_key.rs.
While in flight:
- Fix
docs/core-concepts/protocol/protocol_library.md:168 — create_non_fungible_asset stdlib helper is missing the enable_callbacks flag in its Inputs row. Should mirror the fungible helper one row above.
docs/builder/migration/05-asset-vault-faucet.md can keep its summary; just link out to the new asset.md section instead of redefining field semantics inline.
Mirror all changes in versioned_docs/version-0.14/.
Not a protocol bug — the v0.14 asset encoding works as expected. The docs just don't define the canonical layout anywhere readable, so the Zoro team had to dig through Rust source to figure it out (context).
Add an "Asset encoding" section to
docs/core-concepts/protocol/asset.mdcovering:ASSET_KEY/ASSET_VALUElayout for fungible and non-fungible assets.asset_id_*is zero (fungible) vs. taken fromDATA_HASH[0..2](non-fungible).faucet_id_suffixand howAssetCallbackFlagpacks into it.Source of truth:
AssetVaultKey::to_word()inmiden-protocol/src/asset/vault/vault_key.rs.While in flight:
docs/core-concepts/protocol/protocol_library.md:168—create_non_fungible_assetstdlib helper is missing theenable_callbacksflag in itsInputsrow. Should mirror the fungible helper one row above.docs/builder/migration/05-asset-vault-faucet.mdcan keep its summary; just link out to the newasset.mdsection instead of redefining field semantics inline.Mirror all changes in
versioned_docs/version-0.14/.