

# Orbit — local coin discovery demo A clean-room, independent simulation inspired by public Pump.fun pages and documentation. It is not affiliated with Pump.fun. This is **not a real trading or token-launch application**: there is no Solana connection, live market data, wallet, actual authentication, asset issuance, or financial transaction. All names, coins, balances, social posts, and charts are fictional. ## Run No build step or package installation is needed. From this directory run: ```sh python3 -m http.server 8000 ``` Open <http://localhost:8000/> in a modern browser. You can also open `index.html` directly in most browsers. Google Fonts are optional; system fonts are used if unavailable. Browser local storage must be enabled for persistence. ## Try it 1. Confirm the demo's 18+ gate. Use the search field, filters, navigation and trending time selector to explore sample coins. The time selector is visual only; the change and holder figures are seeded samples. 2. Open a coin, choose Buy or Sell, enter an amount, and use the demo sign-in. The local account starts with 10 fictional SOL. Trades update balances, virtual reserves, quotes and local activity. The chart is illustrative, not a price history. 3. Create a demo coin with a name, ticker, optional description, image and links. The creation form requires demo sign-in; images are limited to 500 KB. The pair, rewards and Mayhem options are retained as metadata only; all demo trades use demo SOL. No actual launch takes place. 4. Visit Portfolio for local holdings, or use Reset demo in the desktop sidebar to clear the stored state. Data is stored only in this browser under `orbit-demo-v1`; clearing site storage also resets it. ## Model Each fictional market has virtual SOL reserve `x` and virtual token reserve `y`, with invariant `k = x*y`. On a buy, `0.9875 * input SOL` enters the virtual reserve, and the output is `y - k/(x + 0.9875 * input)`. On a sell, all input tokens enter the reserve, and the output is `0.9875 * (x - k/(y + input))`. The 1.25% fee is removed from the input on buys and from the output on sells; it is not credited to a fee account. Trades update reserves using the same equations as the quotes. Floating-point values are used; this is not suitable for real financial accounting. Displayed price is `x/y` converted using a fixed fictional $150/SOL; market cap multiplies that price by an assumed billion-token supply. Bonding progress is a demo-only linear estimate from 30 to 85 SOL, clamped to 0–100%. There is no graduation, liquidity migration, slippage protection, transaction execution, or historical price chart. Seeded holders, percentage changes and trending windows do not recalculate. Creation options and links do not affect the model. ## Research and limitations Publicly accessible pages described a discovery feed, trending filters, coin creation fields, and a bonding-curve launch model. The documentation describes virtual reserves and a 1.25% bonding-curve trading fee. The public homepage's DevTools capture presented a Cloudflare challenge, so the original application bundle, network API shapes, deployed curve parameters and implementation could not be verified. This project does not bypass that challenge and does not copy shipped code, assets or branding. It reconstructs a small representative experience, not the complete production service. Sources: [homepage](https://pump.fun/), [create page](https://pump.fun/create), [coin creation documentation](https://pump.fun/docs/create-coin), [bonding-curve documentation](https://pump.fun/docs/bonding-curve). ## Files - `model.js`: seeded state, persistence helpers, curve and formatting functions. - `views.js`, `views-extra.js`: independently written view templates. - `app.js`: navigation, forms, input handling and simulated trade execution. - `style.css`: responsive presentation.