Token Forge docs
v0.1.0
Live demo Get help
● Set up · Every setting

Configuration
every value, and where it lives.

Token Forge has no .env file and no server. It has two build-time values, one local settings document you edit in Settings, and an optional published copy of that document at a URL you host. This page lists every one of them.

01Where settings live

WhatStored inCode
Your RPC endpointsOS keystore (flutter_secure_storage), keys forge.rpc.devnet, forge.rpc.mainnetCredentialStore, lib/core/config/config_store.dart
Settings documentApp local storage (shared_preferences), key forge.config.v1ForgeAdminConfig, lib/core/config/forge_config.dart
Where each value came fromLocal storage, forge.config.provenance.v1lib/core/config/config_provenance.dart
Published config URLLocal storage, forge.config.remote_urlConfigStore
Venue-check registerLocal storage, forge.venue_checks.v1lib/core/token2022/venue_checks.dart
Audit trailLocal storage, forge.audit.v1lib/core/ops/audit_trail.dart
Local means per device

Settings, the audit trail and the venue checks are stored on the device or in the browser where the forge runs. Two team members on two machines have two separate audit trails. To share settings, use a published config. To keep the audit trail, export it as CSV from the console.

02Build-time values

These are the only compile-time settings. Both are empty by default, and a value saved in Settings overrides them.

NamePurposeWhere to get it
FORGE_DEVNET_RPC_URL OptionalDevnet endpoint used when none is saved in Settings.Your RPC provider's dashboard.
FORGE_MAINNET_RPC_URL OptionalMainnet endpoint used when none is saved in Settings.Your RPC provider's dashboard.
flutter run -d chrome --dart-define=FORGE_DEVNET_RPC_URL=<YOUR_DEVNET_URL>

03The settings document

Everything you set under Settings is one JSON document. These are its fields, their defaults and the rules the app checks (lib/core/config/config_validation.dart).

FieldDefaultWhat it does
default_clusterdevnetdevnet or mainnet. Mainnet is used only if mainnet_enabled is true.
mainnet_enabledfalseWhile false, mainnet cannot be selected anywhere.
micro_lamports_per_compute_unit0Priority fee on every transaction the forge builds. Whole number, 0 to 1,000,000.
compute_unit_limit200000Compute units requested. Whole number, 1 to 1,400,000.
enabled_presets[] (all)Which job cards step 1 offers. IDs: membership, licence, loyalty-points, api-credits, pass-ticket, reward-token, whitelist-token.
vocabulary{"preset": "plain"}Label set. Presets: plain, points, credits, licences, memberships, passes. With "custom": true you can also set unit_singular, unit_plural, holder_singular, holder_plural, issue_verb, issue_noun, revoke_verb, revoke_noun, supply_noun, expiry_noun, programme_noun, label.
brand_nameMIKODES Token ForgeShown in the header. Required, under 60 characters.
support_email, website, documentation_url, terms_urlemptyYour contact and legal links. Checked for format; in this version they are shown in Settings only.
maintenance_modefalseReplaces the whole app with a message. Read the warning first.
maintenance_messageemptyRequired when maintenance mode is on.
devnet_rpc_url, mainnet_rpc_urlemptyNot active in this version Read from the document but not used for any call: endpoints come only from the keystore or the build-time values. Leave them empty.

There is no fee, fee wallet or revenue field. That is deliberate; see Earnings.

04Published config (optional)

To give several installs the same settings, host the document as a JSON file at an https:// URL you control, then in Settings → Published configuration enter the URL and press Pull it now. The file is fetched with no credential and no identifier attached.

{
  "default_cluster": "devnet",
  "mainnet_enabled": false,
  "micro_lamports_per_compute_unit": 0,
  "compute_unit_limit": 200000,
  "enabled_presets": ["membership", "licence", "pass-ticket"],
  "vocabulary": { "preset": "memberships" },
  "brand_name": "Your Brand Tokens",
  "support_email": "support@your-domain.example",
  "website": "https://your-domain.example",
  "documentation_url": "https://your-domain.example/docs",
  "terms_url": "https://your-domain.example/terms",
  "maintenance_mode": false,
  "maintenance_message": ""
}
A pull replaces everything

Pulling applies the whole document. Any field missing from the file goes back to its default, and edits made in Settings are replaced. Put every field you care about in the file. Pulling is manual: the app does not re-fetch on start.

Never publish a key

The file is public. Do not put an RPC URL in it (and the *_rpc_url fields are not used anyway).

Settings → Effective configuration shows every value, where it came from (default, set here or published config) and any problems, including two settings that disagree, such as a default cluster of mainnet while mainnet is off.