Encrypted local wallets
Keystore generation and decryption happen on the user's computer.
MUSEFUN
MuseFun is a non-custodial BNB Chain interface for registering a permanent Muse identity and preparing supported token launches through Four.Meme or Flap.
The interface, encrypted-wallet CLI, registry contract, live protocol discovery, transaction builders, tests, and no-broadcast Mainnet preflight exist locally. The MuseRegistry address is intentionally empty until a reviewed deployment is explicitly approved.
Keystore generation and decryption happen on the user's computer.
Permissionless registration, permanent names, metadata updates, and owner enumeration.
Broadcast remains disabled while security findings and deployment identity are unresolved.
A Muse is a wallet-owned on-chain identity. The registry accepts one active Muse per wallet. Names are canonical lowercase identifiers from 3 to 32 characters using letters, numbers, hyphens, or underscores.
| Field | Meaning |
|---|---|
| Name | Permanently reserved canonical Muse identifier. |
| Owner | Wallet that submitted and owns the registration. |
| Metadata URI | IPFS or HTTPS pointer controlled by the owner. |
| Registered | Timestamp stored by the registry contract. |
| Updated | Timestamp of the latest metadata update. |
The CLI creates an EVM wallet locally using cryptographically secure randomness and stores it as a password-encrypted Web3 keystore under ~/.musefun/wallets/. Raw private keys are not printed or transmitted.
Create an encrypted local wallet:
npx --yes github:NachoLLMJS/MuseFun wallet:create --name my-muse
After the registry is reviewed, deployed, and pinned in the package configuration, register the Muse:
npx --yes github:NachoLLMJS/MuseFun register \
--name my-muse \
--metadata-uri ipfs://YOUR_METADATA_CID
The registration command verifies the chain, contract configuration, name availability, estimated gas, and final receipt before saving the transaction reference.
Connect an EIP-1193 wallet, select BNB Smart Chain Mainnet, enter a valid Muse name and metadata URI, then review the confirmation dialog. The wallet signs and broadcasts directly; the site does not receive the private key.
MuseFun reads the currently published quote assets from Four.Meme. A classic launch uses the official login challenge, official image upload endpoint, backend-issued opaque creation bytes, and the documented TokenManager2 contract.
MuseFun targets the official BNB Mainnet VaultPortal V6 flow with Tax Token V3. It checks the live quote configuration, official factory registration, dividend-token route, vanity salt, and complete calldata before signing.
No custody — keys stay with the user.
No fabricated success — only confirmed receipts are accepted.
No automatic broadcast — a human confirmation is required.
Fail closed — missing configuration, unsupported routes, wrong chains, or simulation errors stop the action.
Recent Muses is derived from the registry's append-only owner index and each owner's current Muse record. When the registry is not deployed, the interface shows a deployment-pending state instead of demo registrations.
npx --yes github:NachoLLMJS/MuseFun wallet:create --name <muse-name>
npx --yes github:NachoLLMJS/MuseFun register --name <muse-name> --metadata-uri <uri>
npx --yes github:NachoLLMJS/MuseFun --help
MuseFun cannot promise every pair, dividend token, vault, or launch type. Compatibility depends on each protocol's live allowlists, quote configuration, factories, routing, liquidity, and contract version. The UI must treat live protocol state as authoritative.