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
| What | Stored in | Code |
|---|---|---|
| Your RPC endpoints | OS keystore (flutter_secure_storage), keys forge.rpc.devnet, forge.rpc.mainnet | CredentialStore, lib/core/config/config_store.dart |
| Settings document | App local storage (shared_preferences), key forge.config.v1 | ForgeAdminConfig, lib/core/config/forge_config.dart |
| Where each value came from | Local storage, forge.config.provenance.v1 | lib/core/config/config_provenance.dart |
| Published config URL | Local storage, forge.config.remote_url | ConfigStore |
| Venue-check register | Local storage, forge.venue_checks.v1 | lib/core/token2022/venue_checks.dart |
| Audit trail | Local storage, forge.audit.v1 | lib/core/ops/audit_trail.dart |
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.
| Name | Purpose | Where to get it |
|---|---|---|
FORGE_DEVNET_RPC_URL Optional | Devnet endpoint used when none is saved in Settings. | Your RPC provider's dashboard. |
FORGE_MAINNET_RPC_URL Optional | Mainnet 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).
| Field | Default | What it does |
|---|---|---|
default_cluster | devnet | devnet or mainnet. Mainnet is used only if mainnet_enabled is true. |
mainnet_enabled | false | While false, mainnet cannot be selected anywhere. |
micro_lamports_per_compute_unit | 0 | Priority fee on every transaction the forge builds. Whole number, 0 to 1,000,000. |
compute_unit_limit | 200000 | Compute 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_name | MIKODES Token Forge | Shown in the header. Required, under 60 characters. |
support_email, website, documentation_url, terms_url | empty | Your contact and legal links. Checked for format; in this version they are shown in Settings only. |
maintenance_mode | false | Replaces the whole app with a message. Read the warning first. |
maintenance_message | empty | Required when maintenance mode is on. |
devnet_rpc_url, mainnet_rpc_url | empty | Not 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": ""
}
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.
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.