v0.3.0
Token rename + naming cleanup. The native token symbol moves from $LGT to bare AVOW (drops the leading $ from the prose ticker per the cleaner convention), and the misnamed devnet/ directory (actually the localnet config) becomes localnet/. Both are state-breaking on the wire and require a fresh devnet boot (ligate-devnet-2) to consume them. Mainnet is not yet live; this is the moment to do these renames cleanly. Cross-repo coordination tracked under #457.
Changed
- Network directory restructure:
devnet/→localnet/. The olddevnet/directory was actually the localnet config (MockDa,chain_id = "ligate-localnet"), confusingly named because it predated thedevnet-N/numbered ladder. Rename adopts the role-based stable-path convention every mature chain uses (Solana, Sui, Aptos, Cosmos): the path describes what it is, thechain_idinside the TOML carries the network identity. Future network rollovers (devnet-2, testnet-1, mainnet-1) drop into siblings with stable paths; dead networks move toarchive/. Test source filescrates/stf/tests/devnet_addresses.rsandcrates/rollup/tests/devnet_config.rsrenamed tolocalnet_*to match.devnet-1/is unchanged (real public devnet, distinct concept). Touches 47 files; operators who scriptedcargo run ... --rollup-config-path devnet/rollup.tomlnow uselocalnet/rollup.toml. - Token symbol renamed
$LGT→AVOWeverywhere. New ticker semantically matches what the chain actually does (every attestation is an avowal). 4-char ticker, unclaimed across CoinGecko/CoinMarketCap/ETH/BSC/Solana. Substitutions cover both user-facing surface AND internal identifiers:$LGTprose →AVOW; on-chainbank.gas_token_config.token_nameflips"LGT"→"AVOW"; base-unitulgt→uavow;nano-LGT→nano-AVOW; genesis JSON fieldlgt_token_id→avow_token_idin bothlocalnet/genesis/attestation.json+devnet-1/genesis/attestation.json; Rust types/fieldsAttestationConfig::lgt_token_id→avow_token_id,AttestationModule::lgt_token_id→avow_token_id, error variantGenesisError::LgtTokenIdMismatch→AvowTokenIdMismatch; REST endpointGET /v1/modules/attestation/state/lgt-token-id→/avow-token-id. The chain stays Ligate Chain; the company stays Ligate Labs; bech32 address HRP stayslig1.... Brand identity does not change. Touches 36 files acrossconstants.toml,crates/,devnet*/,docs/,ops/grafana/,README.md,SECURITY.md. Breaking forchain_hashAND breaking on the wire: genesis JSON shape changes (lgt_token_idfield renamed), REST endpoint path changes, error variant name changes. Existingligate-devnet-1runtime state cannot deserialize against this binary; a new devnet id (likelyligate-devnet-2) launches from clean genesis withuavowas the base denom. Mainnet is not yet live, so no migration concern there. Clients hitting/lgt-token-idneed to update to/avow-token-id. Cross-repo follow-ups:ligate-marketing#205,ligate-io/docs#23,ligate-research#100,ligate-api#68,ligate-js#41,ligate-cli#39,ligate-explorer#54,themisra-dashboard#33. Closes #457.