Skip to content

feat: configurable native token metadata (on-chain, API, CLI)#481

Merged
spreston8 merged 2 commits intorust/stagingfrom
feat/native-token-metadata
Apr 18, 2026
Merged

feat: configurable native token metadata (on-chain, API, CLI)#481
spreston8 merged 2 commits intorust/stagingfrom
feat/native-token-metadata

Conversation

@spreston8
Copy link
Copy Markdown
Collaborator

Summary

Adds configurable native token identity (name, symbol, decimals) that is baked into an on-chain Rholang contract at genesis and exposed via the node's API.

  • New TokenMetadata Rholang contract deployed at genesis, registered at rho:system:tokenMetadata with nonce i64::MAX (immutable)
  • Three new config fields in defaults.conf under casper.genesis-block-data: native-token-name (F1R3CAP), native-token-symbol (F1R3), native-token-decimals (8)
  • Three new CLI flags: --native-token-name, --native-token-symbol, --native-token-decimals (decimals capped at 18, empty/whitespace rejected)
  • /api/status and gRPC Status response include nativeTokenName, nativeTokenSymbol, nativeTokenDecimals
  • Joiner nodes verify config matches on-chain values at startup; mismatch causes clean exit with structured error event
  • All startup paths (ceremony master, genesis validator, joiner, observer) log the effective token metadata
  • Compose files parameterized with env var overrides per node

Closes #477

Files changed (41)

New:

  • casper/src/main/resources/TokenMetadata.rhox — Rholang contract with 4 methods (name, symbol, decimals, all)
  • casper/src/rust/util/token_metadata_check.rs — on-chain verification + structured logging
  • casper/src/test/resources/TokenMetadataTest.rho — contract test
  • casper/tests/genesis/contracts/token_metadata_spec.rs — Rust test wrapper

Modified: config structs, genesis pipeline, API layer, compose files, docs

Test plan

  • cargo check --workspace --tests passes (0 warnings)
  • cargo test --release -p node — 108 passed, 0 failed
  • Smoke test against local shard — 30/30 passed
  • Integration tests (test_token_metadata.py) — 18/18 passed in ~2 min (6 parallel workers)
  • CI on rust/staging

Co-Authored-By: Claude noreply@anthropic.com

spreston8 and others added 2 commits April 16, 2026 10:41
@spreston8 spreston8 merged commit 206a57e into rust/staging Apr 18, 2026
20 checks passed
@spreston8 spreston8 deleted the feat/native-token-metadata branch April 18, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant