Every BTC market,
priced honestly

Every Polymarket BTC market, priced off the feed it actually settles on — then judged against what the market already knows.

Your keys, your machine Paper by defaultNo custody
BTC Up/Down · 5m
SPOT
64,471.28
chainlink btc/usd
PRICE TO BEAT
64,470.02
window open
DISTANCE
+0.20 bps
inside basis noise
SETTLES IN
01:12
tau = 72s
Order withheld — distance 0.20 bps sits inside the 0.94 bps feed-basis noise.
WindowSideStateP&L
13:35:00UPfilled+18.40
13:30:00skipped
13:25:00UPfilled+22.15
13:20:00DOWNfilled-31.00
13:15:00skipped

Same method. Different maths.

Each market priced off the feed it actually settles on. Asking the wrong question is how most tooling gets these wrong.

Windows

Up or down, every five minutes

Where the price finishes. Terminal-value maths on the Chainlink stream.

288 / day
resolutions
Chainlink
settlement feed
69.27%
model
69.31%
market
Levels

Will BTC reach $X by a date

Whether a level is ever touched. Barrier maths on Binance, back to 2018.

8.6 yrs
backtested
Binance 1m
settlement feed
1,372
observations
77.99%
accuracy

Neither has a proven edge. Windows loses to the market price. On Levels the two disagree by 2.78.5 points, but the sign of that gap flips with the volatility you feed it — an artefact, not a signal.

This is what we price.

Two question shapes, one settlement feed each. Everything else follows from which one you are looking at.

What price will Bitcoin hit in July?

Will Bitcoin reach $70,000 in July?

6%
market
Yes 6cNo 94c
barrier — one touch resolves it
BTC Up or Down

Up or down, 13:35–13:40 UTC?

66%
market
Yes 66cNo 34c
terminal — only the close counts
What price will Bitcoin hit before 2027?

Will Bitcoin dip to $50,000 by December 31?

19%
market
Yes 19cNo 81c
barrier — 157 days of path

Illustrative prices, not a live board.

Four steps. Three of them refuse.

A tool that fires on every window is a random number generator with fees.

011 Hz

Read the settling feed

Chainlink BTC/USD at 1 Hz — the stream these windows resolve against, not an exchange standing in for it.

02ν = 4.69

Price the window

GARCH-calibrated volatility, Student-t tails. Distance to strike, never a view on direction.

03~30% refused here alone

Pass the gate

Minimum edge after the tick. No first minute. Nothing inside feed-basis noise.

04

Place, or decline

Quarter-Kelly under your own cap, and the console names the rule that stopped it when it stops.

Your keys never reach our servers.

Polymarket credentials move funds. Holding them would make us a custodian, and a target.

Keys stay
on your box

The runner reads a mode-600 file on your machine. Never a CLI argument — ps shows those to every user.

Nothing
custodial

No key custody means no withdrawal path, no support desk that can move funds, and nothing worth breaching.

No key in
the browser

The console shows the signal and places nothing. There is no vault in it, because there is nothing for one to hold.

A token,
not an account

Unlocking the console posts your seat token once. It lives in an httpOnly cookie; the browser never keeps a copy it can read.

Auditable in
one sitting

The process that reads your key has two dependencies, both crypto, both pinned. Reading it beats trusting this paragraph.

Stated
limits

Trading is geoblocked in some regions, and the exchange says so before it looks at the order. Nothing here can change that.

What this does not protect

The console is a screen, not a trader. What it runs is paper, and it stops when the tab does — a browser cannot hold a position open overnight, and it is not the thing you would trust with a key. The runner below is.

Run it on your own box.

It asks the same API the console does, from a process you control. Keys stay in a file only you can read, and nothing stops when you close a tab.

~/ramalogy — runner paper by default
# 1. the seat token fetches the code — no registry, no deploy key
curl -fsSL -H "Authorization: Bearer $TOKEN" \
https://api.ramalogy.xyz/v1/runner/download | tar xz --strip-components=1
npm install && npm run build
 
# 2. keys stay in a file only you can read. it refuses to start otherwise
cp credentials.example.json ~/.ramalogy/credentials.json
chmod 600 ~/.ramalogy/credentials.json
 
# 3. paper is the default. nothing reaches the exchange
npm start -- --windows 50
 
# 4. live needs the flag AND the phrase, on every run
npm start -- --live --bankroll 500 --max-fraction 0.02 \
--confirm "I ACCEPT THE MEASURED EDGE IS NOT SIGNIFICANT"
Zero runtime dependencies

The process that reads your keys installs nothing to run.

Seat token from a file

Mode 600, never an argument — ps shows those to every user.

Its own history

One SQLite row per window, refusals included.

Nothing to log into.

No sign-up. Access is a token signed on our own machine and sent after payment — which also means we cannot mint one for anybody else, even if this server is taken over completely.