A beginner-friendly interface for joining the Close Call challenge, creating signed NVDA predictions, accepting calls, and following referee results.
Important
This is an independent community tool, not an official FLOP Labs product. The official challenge repository remains the canonical source for all rules.
Close Call is a Technocore prediction challenge based on the price of NVIDIA (xyz:NVDA).
- Choose LONG if you expect the price to rise.
- Choose SHORT if you expect the price to fall.
- Every registered DID starts with 10,000 POLF in contest balance.
- POLF is internal contest accounting, not the FLOP reward token.
- A prediction needs signatures from two different registered DIDs to become an official trade.
- If you create a LONG call, another participant accepts the SHORT side, and vice versa.
- The referee checks and settles trades in five-minute sweeps.
The three highest final scores share the 1,000,000 FLOP challenge reward under the official claim rules.
- Imports an existing Technocore Ed25519
did:keyJSON file locally in your browser. - Registers your DID for the challenge.
- Displays the live referee price and allowed price range.
- Creates and signs LONG or SHORT calls.
- Lets another registered DID countersign a compatible call.
- Tracks sweeps, positions, scores, offers, and official trade status.
- Verifies referee room ownership, signed seed data, and the pinned package hash before enabling actions.
Your private key is never sent to this server or stored in localStorage. It remains in the open browser tab as a non-extractable Web Crypto key.
| Requirement | Details |
|---|---|
| Node.js | Version 20 or newer |
| npm | Included with Node.js |
| Technocore DID | Ed25519 private-key JSON file |
| Internet access | Required to read and post to Technocore rooms |
This is the easiest option if you do not want to install anything locally.
- Open this repository and click Code.
- Select the Codespaces tab.
- Click Create codespace on main.
- Run these commands in the terminal:
npm install
npm startWhen the terminal prints Close Call Desk running at ..., use the Open in Browser button shown by Codespaces.
Note
Codespaces forwards the application port automatically. You do not need to open 127.0.0.1 manually.
git clone https://github.com/UfukNode/technocore-close-call-desk.git
cd technocore-close-call-desk
npm install
npm startOpen:
http://127.0.0.1:5192
If port 5192 is already in use, the server automatically tries the next free port through 5210. Use the exact URL printed in the terminal. Press Ctrl + C to stop the tool.
- Click Import DID in the sidebar.
- Select your Technocore Ed25519 private-key JSON file.
- Confirm that the full DID appears in the sidebar and at the top of the Make a call screen.
- Check the status badge next to the DID: not registered, waiting for a sweep, or ready.
Warning
Never share or commit your private-key JSON file. The tool deliberately forgets the key when you close or reload the page, so you will need to import it again.
- Open My desk.
- Click Register & mint 10,000 POLF.
- The tool signs the official owner record with your DID and posts it to the
close1room. - Wait for the next five-minute sweep.
- You can create calls when the status changes to Ready.
Each DID can register only once. The 10,000 POLF balance is not a transferable or withdrawable token.
If you already registered but the tool shows Registration history incomplete, do not register again. Open My desk and click I registered before. The referee currently truncates large public mint lists, so older registrations cannot always be checked individually. This local confirmation unlocks the interface; the referee remains authoritative when a trade is settled.
- Open Make a call.
- Verify the signing DID displayed above the form.
- Select LONG or SHORT.
- Enter a price inside the current official range.
- Enter at least
0.10 NVDA. - Choose how many sweeps the offer should remain open.
- Leave the counterparty as Any registered DID, or reserve it for one specific DID.
- Click Sign & publish call.
Publishing a call does not immediately create a position. Another registered DID must sign the opposite side first.
The tool publishes signed maker calls to the dedicated close1-offers room so they are not immediately buried by registration traffic. Before the first acceptance, it submits the official room registration through close1. Once the referee lists close1-offers, countersigned official trades are posted there. If the tool asks you to wait, refresh after the next sweep and accept again.
The Open calls list scans close1, close1-offers, and the retained public rooms registered by the referee. Compatible maker-signed offers created by other tools are normalized only after both the Technocore room signature and detached maker signature verify. The official protocol still has no global order book, so private negotiations and offers in unknown or evicted rooms cannot be discovered.
Caution
The official protocol does not define a cancellation message for a published open offer. Use a short expiry when appropriate.
- Open Market and choose an available call.
- Review the side you will take, maker DID, price, quantity, and expiry.
- Click Sign & accept.
- Ask the maker for the signed offer JSON.
- Open My desk.
- Paste it into Accept a shared call.
- Click Review offer.
- Verify the details, then sign and accept it.
You cannot accept your own offer with the same DID. An official trade requires two different registered DIDs.
| Status | Meaning |
|---|---|
| Posted | The signed message was posted to Technocore |
| Pending | Both signatures exist and the referee result is pending |
| Settled | The referee accepted the trade and updated the position |
| Void | The referee rejected the trade under the official rules |
| Outside public summary | The public flow message was shortened; the available public data cannot prove the exact outcome |
For settled trades, My trades shows your actual side, the settlement sweep, fee, current profit/loss state, and that trade's live score impact. These values continue moving with the referee's NVDA mark until the final price is published.
My desk uses the official referee score and position when your DID is present in the signed public top list. Available balance, collateral, and values marked with ≈ are replayed from retained verified trades with the official fee and clawback formula. They are clearly marked as retained-history calculations because the public referee summary may omit older IDs.
The interface refreshes live data automatically. You can also use the refresh icon in the top-right corner.
Check the status shown on the prediction screen:
- Register your DID first: Open My desk and register.
- Wait for the next sweep: Registration was posted but has not been processed yet.
- Registration history incomplete: If this DID was already accepted, open My desk and click I registered before. Do not send a duplicate registration.
- Ready: You can publish a call.
The price must remain inside the current official ±5% range. The Price guard panel shows the exact lower and upper limits.
Another registered DID must countersign your call. The referee must then settle the resulting trade in a later sweep.
The referee's full sweep record can be larger than Technocore's public message limit. The signed public flow message then reports how many results were omitted without listing every trade ID. The tool does not guess: it keeps the signed trade visible but marks its exact outcome as unavailable from the retained public summary.
Use the URL printed by the terminal. If 5192 was occupied, the tool may be running on 5193 or another nearby port. Keep the terminal process running.
The tool locks signing actions when room ownership, signed seed data, or the package hash cannot be verified. Check your connection, refresh the page, and review announcements in the official repository if the problem continues.
- Private JWK data is imported in the browser as a non-extractable Web Crypto key.
- The private key is not sent to this server, Technocore, or localStorage.
- The server receives only the public DID, message text, nonce, and signature.
- Referee room messages are signature-checked before use.
- Maker and taker signatures use the exact canonical strings defined by the official rules.
- Always verify the displayed DID and trade details before signing.
See SECURITY.md for the full security model.
npm test
npx playwright install chromium
npm run test:e2eThe test suite covers canonical signing, cross-tool offer normalization, official fee and score replay, retained history, live referee loading, maker and taker trade recovery, mobile layout, logo delivery, and displaying an imported DID on the prediction screen.





