-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocs.html
More file actions
260 lines (241 loc) Β· 17.8 KB
/
Copy pathdocs.html
File metadata and controls
260 lines (241 loc) Β· 17.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KRILL β Docs</title>
<meta name="description" content="How KRILL scores launches: the weighted signals, the 0β100 clarity score, safety verdicts, and the AI agent β all free, no wallet needed.">
<meta name="theme-color" content="#4ade80">
<link rel="canonical" href="https://krill.live/docs">
<meta property="og:title" content="KRILL β Docs">
<meta property="og:description" content="How KRILL scores launches: weighted on-chain signals, 0β100 clarity, safety verdicts, and $KRILL tiers.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://krill.live/docs">
<meta property="og:image" content="https://krill.live/assets/krill-scan-card.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@krillintel">
<link rel="icon" type="image/svg+xml" href="favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
--bg: #040604; --bg-2: #0a0f0a; --ink: #eef5ef; --mute: #8a948a; --dim: #5a645a;
--line: #1a211a; --green: #4ade80; --green-deep: #16a34a; --warn: #fbbf24; --red: #f87171;
--display: "Syne", system-ui, sans-serif; --body: "IBM Plex Sans", system-ui, sans-serif;
--mono: "IBM Plex Mono", ui-monospace, monospace;
--pad: clamp(18px, 5vw, 48px); --max: 860px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--body); background: var(--bg); color: var(--mute); line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: hidden; min-height: 100vh; }
a { color: var(--green); text-decoration: none; }
a:hover { text-decoration: underline; }
.fx { position: fixed; inset: 0; z-index: -1; pointer-events: none;
background: radial-gradient(ellipse 90% 55% at 50% -10%, rgba(34,197,94,0.13), transparent 55%); }
.fx-grid { position: absolute; inset: 0;
background-image: linear-gradient(rgba(74,222,128,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(74,222,128,0.03) 1px, transparent 1px);
background-size: 56px 56px; mask-image: radial-gradient(ellipse 70% 50% at 50% 10%, black, transparent); }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); }
/* nav */
.nav { display: flex; align-items: center; justify-content: space-between; height: 64px; border-bottom: 1px solid var(--line); }
.nav .brand { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-weight: 800; color: var(--ink); font-size: 20px; letter-spacing: -0.5px; }
.nav .brand img { width: 28px; height: 28px; }
.nav .links { display: flex; align-items: center; gap: 22px; font-size: 14px; }
.nav .links a { color: var(--mute); }
.nav .links a:hover { color: var(--green); text-decoration: none; }
.nav .links a.cta { color: #04220f; background: var(--green); border-radius: 999px; padding: 7px 16px; font-weight: 600; }
/* header */
header.top { padding: clamp(40px, 8vw, 80px) 0 20px; }
.eyebrow { font-family: var(--mono); font-size: 12px; letter-spacing: 5px; color: var(--green); text-transform: uppercase; }
header.top h1 { font-family: var(--display); font-weight: 800; color: var(--ink); font-size: clamp(32px, 6vw, 52px); letter-spacing: -1.5px; margin: 12px 0 10px; line-height: 1.05; }
header.top p { font-size: clamp(15px, 2vw, 18px); max-width: 620px; }
/* toc */
.toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 8px; }
.toc a { font-family: var(--mono); font-size: 12.5px; color: var(--mute); background: var(--bg-2); border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; }
.toc a:hover { color: var(--green); border-color: rgba(74,222,128,0.4); text-decoration: none; }
/* sections */
section.doc { padding: 34px 0; border-top: 1px solid var(--line); }
section.doc:first-of-type { border-top: none; }
h2 { font-family: var(--display); font-weight: 700; color: var(--ink); font-size: clamp(22px, 3.5vw, 30px); letter-spacing: -0.5px; margin-bottom: 8px; scroll-margin-top: 20px; }
h3 { font-family: var(--display); font-weight: 700; color: var(--ink); font-size: 18px; margin: 22px 0 6px; }
p { margin-bottom: 12px; }
p .ink { color: var(--ink); }
ul { margin: 8px 0 12px 0; padding-left: 4px; list-style: none; }
li { padding: 6px 0 6px 22px; position: relative; }
li::before { content: 'β'; position: absolute; left: 0; color: var(--green); }
/* score legend */
.legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 16px 0; }
.leg { background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; }
.leg .band { font-family: var(--mono); font-size: 12px; letter-spacing: 1px; color: var(--dim); }
.leg .name { font-family: var(--display); font-weight: 800; font-size: 20px; margin: 4px 0 6px; }
.leg.safe { border-color: rgba(74,222,128,0.42); } .leg.safe .name { color: var(--green); }
.leg.caution { border-color: rgba(251,191,36,0.38); } .leg.caution .name { color: var(--warn); }
.leg.notsafe { border-color: rgba(248,113,113,0.38); } .leg.notsafe .name { color: var(--red); }
.leg p { font-size: 13.5px; margin: 0; }
/* signal table */
.tbl { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 14px; }
.tbl th, .tbl td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.tbl th { font-family: var(--mono); font-size: 11px; letter-spacing: 1px; color: var(--dim); text-transform: uppercase; }
.tbl td { color: var(--ink); }
.tbl td .w { font-family: var(--mono); color: var(--green); }
.tbl td.desc { color: var(--mute); }
/* Data provenance, inline so the table stays 3 columns and fits narrow screens. */
.tbl td .src { display: block; margin-top: 4px; font-family: var(--mono); font-size: 11px; letter-spacing: .5px; color: var(--dim); text-transform: uppercase; }
/* Signal names are the literal API field names (holder_distribution, β¦) so they
can be cross-referenced against a /score response. They have no spaces, so
without this they set a min-width that overflows narrow screens. */
.tbl td:first-child { overflow-wrap: anywhere; }
/* tiers */
.tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 16px 0; }
.tier { background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px; padding: 18px; }
.tier .t { font-family: var(--display); font-weight: 800; color: var(--ink); font-size: 18px; }
.tier .min { font-family: var(--mono); font-size: 12px; color: var(--green); margin: 4px 0 10px; }
.tier ul { margin: 0; } .tier li { font-size: 13px; padding: 3px 0 3px 20px; color: var(--mute); }
.tier.hi { border-color: rgba(74,222,128,0.35); }
.note { background: rgba(74,222,128,0.05); border: 1px dashed rgba(74,222,128,0.3); border-radius: 12px; padding: 14px 18px; font-size: 14px; margin: 14px 0; }
.note b { color: var(--green); }
code { font-family: var(--mono); font-size: 13px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 6px; padding: 1px 6px; color: var(--ink); }
footer { border-top: 1px solid var(--line); margin-top: 40px; padding: 26px 0 40px; text-align: center; }
footer .mono { font-family: var(--mono); font-size: 12px; color: var(--dim); }
footer a { color: var(--dim); } footer a:hover { color: var(--green); }
.disc { max-width: 620px; margin: 10px auto 0; font-size: 12px; color: var(--dim); line-height: 1.5; }
</style>
</head>
<body>
<div class="fx" aria-hidden="true"><div class="fx-grid"></div></div>
<div class="wrap">
<nav class="nav">
<a class="brand" href="/"><img src="assets/krill-token.png" alt="KRILL">KRILL</a>
<div class="links">
<a href="/about">About</a>
<a href="https://app.virtuals.io/virtuals/112988" target="_blank" rel="noopener">Virtuals</a>
<a href="https://x.com/krillintel" target="_blank" rel="noopener">X</a>
<a class="cta" href="/">Open scanner</a>
</div>
</nav>
<header class="top">
<div class="eyebrow">Documentation</div>
<h1>How KRILL reads a launch.</h1>
<p>KRILL turns a messy new token launch into one clear number and a plain-English verdict. No hype, no charts to decode β just a readable signal. Here's exactly how it works.</p>
<div class="toc">
<a href="#score">The score</a>
<a href="#signals">The signals</a>
<a href="#safety">Safety verdicts</a>
<a href="#tiers">Access tiers</a>
<a href="#scan">How to scan</a>
<a href="#faq">FAQ</a>
</div>
</header>
<section class="doc" id="score">
<h2>The clarity score</h2>
<p>Every launch gets a single <span class="ink">clarity score from 0 to 100</span>. Higher means the launch is easier to read: healthy liquidity, sane holder distribution, and coherent signals. Lower means it's noisy, uneven, or hard to verify.</p>
<p>The score is a weighted blend of the signals below. It's <span class="ink">deterministic</span> β the same token always reads the same way, so you can compare launches fairly instead of chasing a number that jumps around.</p>
<div class="legend">
<div class="leg safe">
<div class="band">70 β 100</div>
<div class="name">β SAFE</div>
<p>Readable launch. Clean signals, low friction. Labeled <code>READABLE</code> Β· decision <code>SIGNAL</code>.</p>
</div>
<div class="leg caution">
<div class="band">50 β 69</div>
<div class="name">β CAUTION</div>
<p>Readable but uneven. One or more signals are weak. Labeled <code>MIXED</code> Β· decision <code>SCAN</code>.</p>
</div>
<div class="leg notsafe">
<div class="band">0 β 49</div>
<div class="name">β NOT SAFE</div>
<p>Hard to read or high risk. Labeled <code>NOISY</code> Β· decision <code>SKIP</code>.</p>
</div>
</div>
</section>
<section class="doc" id="signals">
<h2>The signals</h2>
<p>Five signals carry weight. Holder distribution and contract safety carry the most because they're the hardest to fake and the most likely to hide a rug.</p>
<table class="tbl">
<thead><tr><th>Signal</th><th>Weight</th><th>What it reads</th></tr></thead>
<tbody>
<tr><td>holder_distribution</td><td><span class="w">40</span></td><td class="desc">Holder count and top-holder concentration. A few whales holding a huge % = riskier. <span class="src">on-chain holder indexer</span></td></tr>
<tr><td>contract_safety</td><td><span class="w">40</span></td><td class="desc">Honeypot and danger-flag detection β can the token actually be sold. <span class="src">GoPlus</span></td></tr>
<tr><td>contract_integrity</td><td><span class="w">20</span></td><td class="desc">Ownership, renouncement, and whether the contract's behavior matches its claims. <span class="src">on-chain RPC</span></td></tr>
<tr><td>deployer_reputation</td><td><span class="w">20</span></td><td class="desc">Who launched this, and how many tokens they've spun up before. <span class="src">on-chain deployer history</span></td></tr>
<tr><td>tax_analysis</td><td><span class="w">15</span></td><td class="desc">Buy/sell tax, and whether the tax can be changed after launch. <span class="src">GoPlus</span></td></tr>
</tbody>
</table>
<p>Weights are relative, not percentages β the score normalizes across the signals that were actually measured. A signal with no data is reported as unmeasured rather than scored as zero, so a missing read can never quietly pass as a clean one.</p>
<p><span class="ink">Two hard overrides beat every weight.</span> A confirmed honeypot, or a drain vector like hidden ownership or a β₯50% sell tax, forces NOT SAFE no matter how the rest reads. And if holder distribution or the safety read is missing, the verdict is capped at CAUTION β contract integrity alone never green-lights a token.</p>
<table class="tbl">
<thead><tr><th>Display-only</th><th>Weight</th><th>Why</th></tr></thead>
<tbody>
<tr><td>liquidity_depth</td><td><span class="w">0</span></td><td class="desc">Read in your browser from DexScreener, which blocks server-side calls. Shown on the card, but never allowed to move a server-authoritative score.</td></tr>
<tr><td>social_velocity</td><td><span class="w">0</span></td><td class="desc">No data source connected. Listed so you can see it isn't secretly influencing the number.</td></tr>
<tr><td>narrative_fit</td><td><span class="w">0</span></td><td class="desc">No data source connected.</td></tr>
</tbody>
</table>
<div class="note">Everything core is <b>free for everyone</b> β the headline score, the full signal breakdown, and the AI-written verdict. No wallet, no signature, no $KRILL required.</div>
</section>
<section class="doc" id="safety">
<h2>Safety verdicts</h2>
<p>Every scan and every row in the public watchlist carries a safety badge, so you get the call at a glance without reading the number:</p>
<ul>
<li><span class="ink">β SAFE</span> β score 70+. The launch reads clean. Still your call, but nothing obvious is off.</li>
<li><span class="ink">β CAUTION</span> β score 50β69. Readable but uneven; the verdict names the specific weak signal to watch.</li>
<li><span class="ink">β NOT SAFE</span> β score under 50. Noisy or hard to verify. Handle with care.</li>
</ul>
<p>The verdict line is written from the strongest and weakest signals, e.g. <em>"Strong liquidity path; watch social velocity. Clean read."</em></p>
</section>
<section class="doc" id="tiers">
<h2>Access tiers</h2>
<p>The full launch intelligence β score, breakdown, verdict, and the AI agent β is <span class="ink">free for everyone</span>. Holding $KRILL only adds power-user extras. Tier checks are <span class="ink">read-only</span>: you paste an address, KRILL reads its balance on-chain. No wallet connection, no signature, nothing to approve.</p>
<div class="tiers">
<div class="tier hi">
<div class="t">PUBLIC</div>
<div class="min">Free Β· 0 $KRILL</div>
<ul><li>Headline score</li><li>Full signal breakdown</li><li>AI-written verdict</li><li>Ask KRILL agent</li><li>Public watchlist</li></ul>
</div>
<div class="tier">
<div class="t">PRO</div>
<div class="min">100,000 $KRILL</div>
<ul><li>Everything free, plus:</li><li>Priority scans</li><li>Custom watchlists</li></ul>
</div>
<div class="tier">
<div class="t">WHALE</div>
<div class="min">1,000,000 $KRILL</div>
<ul><li>Everything in Pro</li><li>Launch alerts</li></ul>
</div>
</div>
<div class="note">Even <b>$KRILL is scored honestly</b> by the same engine β no special treatment on the safety call.</div>
</section>
<section class="doc" id="scan">
<h2>How to scan</h2>
<ul>
<li>Open the <a href="/">scanner</a> and paste a contract address (<code>0xβ¦</code>), or tap an example chip to try one instantly.</li>
<li>Read the clarity score, the safety badge, the full signal breakdown, and the AI verdict β all free, no wallet needed.</li>
<li>Ask the <span class="ink">KRILL agent</span> anything about the launch β it reasons over the live signals in plain English.</li>
<li>Browse the <span class="ink">public watchlist</span> and filter by Safe / Caution / Not safe. It auto-refreshes live.</li>
</ul>
</section>
<section class="doc" id="faq">
<h2>FAQ</h2>
<h3>Is this financial advice?</h3>
<p>No. Scores are informational signals about how <em>readable</em> a launch is β not a recommendation to buy or sell. Always do your own research.</p>
<h3>Do I have to hold $KRILL to use it?</h3>
<p>No. The score, the full signal breakdown, the AI verdict, and the Ask KRILL agent are all free for everyone β no token, no wallet, no signature. Holding $KRILL only adds power-user extras like priority scans, custom watchlists, and launch alerts.</p>
<h3>Do I need to connect a wallet?</h3>
<p>Never. Tier checks are read-only balance lookups from a pasted address. KRILL never asks for a signature or transaction.</p>
<h3>Why does the same token always get the same score?</h3>
<p>The engine is deterministic by design. A score that flickers every refresh is noise; a stable score lets you compare launches fairly over time.</p>
<h3>What chain is this?</h3>
<p>KRILL runs via <a href="https://app.virtuals.io/virtuals/112988" target="_blank" rel="noopener">Virtuals</a> on Robinhood Chain. On-chain reads (holders, supply, top-holder %) come straight from the chain.</p>
<h3>Where's the token?</h3>
<p>$KRILL is live on Virtuals. Follow <a href="https://x.com/krillintel" target="_blank" rel="noopener">@krillintel</a> for launch updates.</p>
</section>
</div>
<footer>
<div class="wrap">
<div class="mono">$KRILL Β· <a href="https://krill.live">krill.live</a> Β· Live on Virtuals Β· Robinhood Chain</div>
<p class="disc">Scores are informational, not financial advice. Address-based tier checks are read-only β no wallet connection or signature required.</p>
</div>
</footer>
</body>
</html>