<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Kryll³ Blog |  Your Web3 AI Sidekick]]></title><description><![CDATA[Kryll³ AI tool suite provide clear and actionable web3 insights. We make the intricate world of cryptocurrencies accessible to everyone. ]]></description><link>https://blog.kryll.io/</link><image><url>https://blog.kryll.io/favicon.png</url><title>Kryll³ Blog |  Your Web3 AI Sidekick</title><link>https://blog.kryll.io/</link></image><generator>Ghost 3.6</generator><lastBuildDate>Tue, 21 Jul 2026 14:04:56 GMT</lastBuildDate><atom:link href="https://blog.kryll.io/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[KryllOS 0.5.32 Update: Parallel Backtests and RAM Management]]></title><description><![CDATA[The KryllOS 0.5.32 update lets you run your backtests in parallel and puts you back in control of your RAM.]]></description><link>https://blog.kryll.io/kryllos-0-5-32-update-parallel-backtests-memory/</link><guid isPermaLink="false">6a5f77fcd9e60f88cb3b8547</guid><category><![CDATA[announcements]]></category><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Tue, 21 Jul 2026 14:03:56 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/07/concurrent-backtests-thumbnail-1.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/Frame-1000001793.png" class="kg-image" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management"></figure><img src="https://blog.kryll.io/content/images/2026/07/concurrent-backtests-thumbnail-1.png" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management"><p>Until now, a backtest on KryllOS ran on a single core, and only one at a time. No matter how many cores were available on your machine, it was impossible to launch a second one while the first was running. 0.5.32 changes that in a fundamental way: backtests can now run across multiple cores in parallel, so you can launch several at once. This release also brings better tracking and better RAM management.</p><hr><h2 id="parallel-backtests">Parallel backtests</h2><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/0.5.32-concurrent-backtest.png" class="kg-image" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management"></figure><p>With 0.5.32, you can finally run several backtests at the same time, each on its own core. Where you used to have to wait for one backtest to finish before starting the next, you can now open several tabs and run them simultaneously, a real time-saver when you're testing multiple versions of a strategy or several pairs in parallel.</p><h3 id="configuring-allocated-power">Configuring allocated power</h3><p>How many backtests you can actually run at once depends on the power of your machine, and more specifically on the number of cores available on your VPS. To make the most of it, head to <code>Settings &gt; Performance</code>, under "Parallel backtests," where two sliders give you control over this allocation.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/0.5.32-performances.png" class="kg-image" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management"></figure><ul><li><strong>Backtest engines</strong>: the number of active engines running in parallel, each on its own core. This is the real speed lever, more engines means more backtests moving at full speed at the same time. KryllOS automatically detects your available cores and recommends a value suited to your machine (it always keeps some in reserve for your live trading).</li><li><strong>Multiplexed slots</strong>: several backtests sharing a single engine, each taking its turn. They all progress "at the same time," but none of them runs any faster than if it were running alone, the total time for the batch stays the same, it's just split between them. The point isn't speed but convenience, launching a whole batch of backtests at once, without waiting for each one to finish before moving to the next.</li></ul><p>The total number of backtests you can launch follows the formula shown at the top of the panel: <strong>engines × slots</strong>. The panel also displays an estimate of the RAM required.</p><h3 id="how-to-set-up-your-parallel-backtests">How to set up your parallel backtests</h3><ul><li>Open <code>Settings</code>,then <code>Performance</code></li><li>Increase <code>Backtest engines</code> for real speed, within the recommended limit for your machine</li><li>Increase <code>Multiplexed slots</code> to move several backtests forward per engine, with no speed gain</li><li>Click <code>Apply</code></li></ul><p><em>*Reducing the number of engines never interrupts a backtest that's already running.</em></p><hr><h2 id="ram-under-control">RAM under control</h2><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/0.5.32-memory.png" class="kg-image" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management"></figure><p>The second panel, <code>Settings &gt; Memory</code>, gives you visibility into what KryllOS is actually consuming. You can see memory usage, engine by engine, and an alert warns you in real time when RAM or disk usage climbs too high.</p><p>KryllOS keeps candles and indicators in memory from one backtest to the next to stay fast, instead of reloading everything each time. That's a good trade-off, but over a long session, this memory builds up. KryllOS already cleans it up automatically past a certain threshold. And to take back control immediately, a "Clear RAM" button frees up memory on demand.</p><p>This cleanup never touches a backtest that's currently running. It only clears stopped engines. If two backtests are running, Clear RAM leaves them alone. If you stop one and then clean up, only that one gets cleared. If you restart it afterward, the data reloads and memory goes back up, that's normal, it's the cache doing its job again.</p><hr><h2 id="strategy-logs-on-demand">Strategy logs, on demand</h2><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/0.5.32-emit-logs.png" class="kg-image" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management"></figure><p>Still in the <code>Performance</code> panel, a useful setting: "Emit strategy logs." When enabled, KryllOS produces server-side logs. This is useful when an indicator isn't doing what you expect and you want to see, step by step, exactly when it's waiting and when it triggers.</p><p>When disabled, no lines are produced, not in memory, not in the stream, not on disk, and your backtest runs a bit lighter without that writing overhead. Turn it on when you're debugging, turn it off when you want to optimize for speed.</p><hr><h2 id="a-backtest-engine-that-cleans-up-after-itself">A backtest engine that cleans up after itself</h2><p>These settings hold up thanks to background work on the engine's memory consumption.</p><p>First, a new way of reading market data, organized in columns, which lowers a backtest's peak memory usage by about 36%. Each backtest leaves more room for the others, which means more of them can run before the machine gets saturated.</p><p>Next, engines no longer hold onto RAM when they're not in use. An idle engine frees its memory and shuts down automatically, then powers back up on demand as soon as a backtest is restarted. Memory is only consumed by what's actually working.</p><p>Finally, a backtest's results are no longer kept in memory once the run is finished. They're released, and to export them, KryllOS reads them back from disk.</p><hr><p>0.5.32 brings two things: real backtest parallelism, and visibility into RAM. Update to 0.5.32, take a look through Performance and Memory, then launch two backtests at once to see the difference.</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS 0.5.32 Update: Parallel Backtests and RAM Management" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[KryllOS 0.5.29 Update: Backtests Up to 4× Faster]]></title><description><![CDATA[The KryllOS 0.5.29 update makes your backtests up to 4× faster. Test, tweak, retest, without ever losing your train of thought.]]></description><link>https://blog.kryll.io/kryllos-0-5-29-update-faster-backtests/</link><guid isPermaLink="false">6a54caf9d9e60f88cb3b8445</guid><category><![CDATA[announcements]]></category><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Mon, 13 Jul 2026 11:28:30 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/07/backtest-2.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/backtest.png" class="kg-image" alt="KryllOS 0.5.29 Update: Backtests Up to 4× Faster"></figure><img src="https://blog.kryll.io/content/images/2026/07/backtest-2.png" alt="KryllOS 0.5.29 Update: Backtests Up to 4× Faster"><p>Building a strategy is often a loop: you set a block, adjust a level, move a condition, and after every change the same question comes back, does it hold up? So you run a backtest, to ask the market's past what it thinks.</p><p>The problem is that every backtest has a cost in time. When waiting for a result takes several minutes, you become frugal: you only test the ideas you're already fairly sure about, and all the "what if I tried this" thoughts stay in a corner of your mind, never checked. Every one of those untested variants is a path you'll never actually know.</p><p>0.5.29 shifts that balance. As of this KryllOS version, backtests run much faster, fast enough that testing one more idea costs almost nothing, so there's no real reason to hold back anymore.</p><hr><h2 id="the-waiting-wall-comes-down">The waiting wall comes down</h2><p>KryllOS's backtesting engine was already fast: it ran 2 to 10 times faster than the old engine. 0.5.29 adds up to another 4x on top of that. Long periods that used to take several minutes now run in seconds, and you can chain tests together without losing track of what you set out to check.</p><hr><h2 id="the-cache-that-makes-technical-analysis-free">The cache that makes technical analysis free</h2><p>Where does this speed come from? Largely from a cache, a memory the engine builds up across runs so it never has to redo the same work twice.</p><p>Specifically, two things now persist from one backtest to the next. Candles, first: the engine no longer has to fetch them from disk on every run, it keeps them on hand. Your indicators, second: your RSI, your moving averages, your Supertrend are no longer recalculated every time, they're computed once and reused.</p><p>The result: after the first pass, your technical analysis costs your machine almost nothing. The engine no longer spends its time rebuilding your indicators; it spends it replaying prices and measuring how your strategy behaves.</p><p>That's also why the very first run is a bit slower than the ones that follow: it's the one filling the cache. If your first backtest isn't instant, that's normal. Run it again, and you'll feel the difference.</p><hr><h2 id="dead-time-compressed">Dead time, compressed</h2><p>Speed doesn't only come from the cache. The way the engine replays the market has changed too.</p><p>A market doesn't move at a steady pace: there are moments when everything moves, and long stretches where nothing happens. Before, the engine still advanced step by step through those quiet stretches. Now, it crosses them in one go: uneventful ticks are compressed, candles that don't change anything for your strategy are skipped, and the engine jumps straight to the next event that actually matters to you.</p><p>It's a bit like fast-forwarding through the boring parts, with a return to normal speed only where something is really happening.</p><hr><h2 id="precision-your-cursor-between-speed-and-detail">Precision: your cursor between speed and detail</h2><p>You can dial in this speed yourself with a setting in the top bar of the editor, just to the left of the Run button: Precision.</p><p>Precision defines the number of ticks the engine generates inside the candles, in other words, how finely it emulates price movement inside each candle. The lower you set it, the fewer points to simulate, the faster it runs; at 0, you're at maximum speed. The higher you set it, the more detail the engine works out inside each trade.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/precision.png" class="kg-image" alt="KryllOS 0.5.29 Update: Backtests Up to 4× Faster"></figure><p>This mainly affects your stop losses and your trailing orders: the exact point where the price passes inside the candle decides the moment your order triggers. On a simple strategy, though, your P&amp;L barely moves between a precision of 0 and 4.</p><p>In practice: lower the precision to prototype and chain through tests quickly, raise it back up when you want an accurate read on your stops and trailing orders before going live.</p><hr><h2 id="kryllos-onboarding-a-warm-welcome-to-get-you-started">KryllOS Onboarding: A Warm Welcome to Get You Started</h2><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/onboarding-1-1.png" class="kg-image" alt="KryllOS 0.5.29 Update: Backtests Up to 4× Faster"></figure><p>KryllOS now takes care of your very first minutes. The first time you launch the app, a quick welcome tour walks you through the essentials in five screens: what KryllOS is and what it gives you, your VPS profiles, the toolbar you summon with F10, and where to drop us a bug or an idea. No more being thrown in at the deep end, you know where to put your hands from the very first launch.</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS 0.5.29 Update: Backtests Up to 4× Faster" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart]]></title><description><![CDATA[The KryllOS 0.5.26 update now puts your technical indicators right on the editor's chart. Your technical analysis now lives where you build.]]></description><link>https://blog.kryll.io/kryllos-0-5-26-update-technical-indicators-chart/</link><guid isPermaLink="false">6a4cf831d9e60f88cb3b83c2</guid><category><![CDATA[announcements]]></category><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Tue, 07 Jul 2026 14:08:43 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/07/thumbnail.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/KryllOS-0.5.26-update_-technical-indicators-arrive-on-the-editor-s-chart.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><img src="https://blog.kryll.io/content/images/2026/07/thumbnail.png" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"><p>In front of a chart, your eye never rests on price alone. It hunts for the moving average carrying the trend, the RSI starting to lose steam, or any other indicator traders swear by. Laid over the candles, they're what turn a column of numbers into a market you can actually read.</p><p>Except that, until now, the KryllOS editor's chart showed price, candles and volume, nothing more. Your indicators, meanwhile, ran inside your blocks without ever showing up on the candles.</p><p>That's over now. As of KryllOS 0.5.26, technical indicators appear directly on your editor's chart, right there among the candles, while your strategy takes shape.</p><hr><h2 id="the-resizable-chart">The resizable chart</h2><p>You could already open and collapse the chart above your strategy. What's new is that it now comes in two sizes. First a compact one, which leaves you enough room to keep wiring your blocks while keeping price in view. And a large one, which unfolds the chart and gives it more space for a real analysis session.</p><ul><li>Compact mode: you edit your blocks, the chart stays visible</li><li>Expanded mode: a bigger chart, room for analysis</li><li>Switch modes in one click</li></ul><h3 id="how-to-do-it">How to do it</h3><ol><li>Find the double chevron ⩔ in the center, right at the bottom of the chart</li><li>One click to expand it, another to go back to compact</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/chart-extend.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><hr><h2 id="adding-indicators">Adding indicators</h2><p>To add one, right-click on the chart and the list opens. You browse what's available or type its name to find it right away, you click, and it settles onto your candles. Nothing stops you from stacking several: a short moving average and a long one to watch for a cross, an RSI just below, a Supertrend over the price. The more you add, the more the chart's expanded mode becomes your friend.</p><ul><li>Search by name to go straight to it</li><li>As many indicators as you want, stacked on the price</li><li>Available indicators: Moving Average, RSI, MACD, Bollinger, Stochastic RSI, Supertrend, Ichimoku, Volume</li></ul><h3 id="how-to-do-it-1">How to do it</h3><ol><li>Right-click anywhere on the chart</li><li>In the list that opens, pick an indicator or type its name in the search</li><li>Click it, and it drops onto the price</li><li>Repeat to stack more</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/add-indicator-1.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><hr><h2 id="managing-and-cleaning-up-your-indicators">Managing and cleaning up your indicators</h2><p>A busy chart needs a bit of tidying. You can hide an indicator to get it out of view without losing it, then bring it back the moment you need it again. You can also delete just one, the one you no longer need. And the day you want to start from a blank canvas, there's no need to remove them one by one: right-click the chart, choose to remove them all, and every indicator disappears at once. Two clicks, and you're starting fresh.</p><ul><li>Hide / show an indicator without losing it</li><li>Delete a specific indicator</li><li>Remove them all at once: right-click, then "remove all indicators"</li></ul><h3 id="how-to-hide-an-indicator">How to hide an indicator</h3><ol><li>Hover over its name, at the top left of the chart</li><li>Click the ◉ icon to hide it. Click again to bring it back</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/hide-indicator-2.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><h3 id="how-to-remove-all-indicators">How to remove all indicators</h3><ol><li>Right-click on the chart</li><li>Click "remove all indicators". They all disappear at once</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/remove-indicators-3.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><hr><h2 id="customizing-each-indicator">Customizing each indicator</h2><p>Each indicator opens onto its own settings panel, and you really can tweak all of it. You lengthen or shorten its period to set it anywhere from short term to very long term, you switch its calculation method when it offers several, you adjust the line thickness and its color, and you even choose the price source it works from, whether it starts from the close, the open, or one of the classic combinations traders are used to. Nothing is set in stone. You set up each indicator exactly the way you read it in your head, with your own reference points and your own way of trading.</p><h3 id="how-to-do-it-2">How to do it</h3><ol><li>Hover over the indicator and click the gear ⚙</li><li>Adjust whatever you want in the panel (period, style, color, source...)</li><li>Changes apply directly on the chart</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/indicator-settings-1.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><hr><h2 id="reading-values-on-hover">Reading values on hover</h2><p>Move your mouse over the chart and your indicators hand you their numbers. A dot snaps onto the curve, and its exact value appears off to the side, at the precise moment you care about. Enough to read the value of your moving average or your Supertrend down to the exact candle, without ever drowning the chart in numbers.</p><h3 id="how-to-do-it-3">How to do it</h3><ol><li>Move your cursor over the chart</li><li>Each indicator's value appears at the point you're hovering over</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/data-survol-1.png" class="kg-image" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart"></figure><hr><p>In the end, all these settings and shortcuts come down to one simple idea: your technical analysis and your strategy now live in the same space. And that's the whole point: you no longer build your strategy by imagining what your indicators are doing, you build it from what you see. The rest is yours to write. Update to 0.5.26, open your editor, and drop your first indicator onto the price ;)</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS 0.5.26 Update: Technical Indicators Arrive On The Editor's Chart" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[KryllOS VPS Installation Guide: Free Self-Hosted Trading Bot]]></title><description><![CDATA[Your complete KryllOS install guide: download the app, connect your VPS, and get your trading bots running 24/7. Beginner-friendly, no code.]]></description><link>https://blog.kryll.io/kryllos-installation-guide/</link><guid isPermaLink="false">6a3eac37d9e60f88cb3b8128</guid><category><![CDATA[tutorials]]></category><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 26 Jun 2026 18:30:23 GMT</pubDate><content:encoded><![CDATA[<p>If you're here, it's because you want to install KryllOS, and you've come to the right place. Even if words like "VPS," "Linux," or "SSH" barely mean anything to you, this guide will help you install KryllOS the easy way, step by step.</p><p>KryllOS is your self-hosted trading station: the app runs on your PC/Mac, the engine on your server, and you alone are in control.</p><p>Good news to kick things off: the installer does two things at once. It installs the KryllOS app on your computer (Windows or Mac), your interface, the place where you click; and it deploys the engine on your VPS, the server that runs your strategies 24/7, even when your computer is off.</p><hr><h2 id="what-you-ll-need">What you'll need</h2><p>Two machines, two roles:</p><ul><li><strong>A Windows or Mac computer</strong> to install the KryllOS app, your user interface, where you'll build and launch your trading strategies.</li><li><strong>A Linux VPS</strong> running <strong>Ubuntu 22.04+</strong> or <strong>Debian 12+</strong> to host the KryllOS engine, which runs around the clock.</li></ul><p>No VPS yet? <a href="https://blog.kryll.io/get-netcup-vps-for-kryllos/">We'll show you how to get one from Netcup right here.</a></p><hr><h2 id="download-the-app">Download the app</h2><p>Grab the latest version of KryllOS for your computer's system:</p><ul><li><strong>macOS</strong> → <code>.dmg</code> (Apple Silicon or Intel, depending on your Mac)</li><li><strong>Windows</strong> → <code>.exe</code></li></ul><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/image-148.png" class="kg-image"></figure><hr><h2 id="step-0-new-installation">Step 0: New installation</h2><p>Launch the app, then click <strong>"New installation."</strong></p><p>The other option, "Import an existing configuration," is for restoring a profile from an archive. For a first install, it doesn't concern you.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/0-EN.png" class="kg-image"></figure><hr><h2 id="step-1-choose-your-server">Step 1: Choose your server</h2><p>If you already have your VPS, click <strong>"I have a server."</strong></p><p>If you don't, KryllOS offers partner deals here (Budget or Recommended) so you can order one in two clicks. No VPS yet? <a href="https://blog.kryll.io/get-netcup-vps-for-kryllos/">We'll show you how to get one from Netcup right here.</a></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/1-EN-1.png" class="kg-image"></figure><hr><h2 id="step-2-connect-to-your-server">Step 2: Connect to your server</h2><p>Three pieces of info to fill in:</p><ol><li><strong>The IP address</strong> of your VPS</li><li><strong>The root password</strong> (one-time use)</li><li><strong>The username for your VPS</strong> (leave it as <code>kryll</code> by default)</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/2-EN.png" class="kg-image"></figure><h3 id="where-do-i-find-my-ip-and-root-password"><strong>Where do I find my IP and root password?</strong></h3><p>It all happens in your VPS provider's interface:</p><ul><li><strong>The IP address</strong> is shown on your server's page, in your dashboard (look for "IPv4" or "IP address"). It's your machine's public identity.</li><li><strong>The root password</strong> is in the VPS's security / login settings. Most providers ask you to generate (or reset) it yourself.</li></ul><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/image-156.png" class="kg-image"></figure><hr><h2 id="step-3-security-options">Step 3: Security options</h2><p>Just one option here: Port Knocking.</p><p>What's it for? Your server keeps its front door (SSH) closed and invisible. It only opens if you "knock" a secret sequence in the right order. The result: from the outside, your server looks like it has no door at all, so there's nothing to attack.</p><p>We recommend turning it on if you trade with real funds.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/3-EN-2.png" class="kg-image"></figure><hr><h2 id="step-4-check-before-deployment">Step 4: Check before deployment</h2><p>Last screen: the summary (IP, username, password, SSH key, port knocking). Click <strong>"Deploy"</strong> once you've reviewed the info.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/4-EN.png" class="kg-image"></figure><hr><h2 id="installation-kicks-off">Installation kicks off</h2><p>From here, KryllOS takes over and handles everything on its own: SSH connection, server validation, detection of existing services, configuration, installation, then final checks. Expect a few minutes depending on your VPS.</p><p>Good time to go grab yourself a coffee. (Or go check the charts, no judgment.)</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/5-EN.png" class="kg-image"></figure><hr><h2 id="welcome-to-kryllos-">Welcome to KryllOS!</h2><p>Once the installation is done, your app and your VPS are ready. You officially own your self-hosted trading station, all to yourself. Now have fun: open the editor, grab some blocks, and put together your first strategy!</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/kryllos-welcome.png" class="kg-image"></figure><hr><h2 id="got-a-question-stuck">Got a question? Stuck?</h2><p>Don't worry, you're not alone. Join our official Telegram group, where the KryllOS team and community answer your questions: <strong><a href="https://t.me/kryll_io">Join the Telegram →</a></strong></p><hr><h2 id="frequently-asked-questions">Frequently Asked Questions</h2><p>Before you dive in, or if you get stuck along the way, take a look here: we've rounded up the questions that come up most often.</p><h3 id="what-exactly-is-kryllos">What exactly is KryllOS?<br></h3><p>KryllOS is an automated trading solution that lets you create trading bots from a visual no-code editor, or launch community bots available on the marketplace. Self-hosted and open-source.</p><h3 id="is-kryllos-free">Is KryllOS free?</h3><p>KryllOS is 100% free. No subscription, no fees on your trades. The only possible costs: your VPS (a few €/month) and whatever you choose to buy on the marketplace.</p><h3 id="do-you-need-to-know-how-to-code-to-use-kryllos">Do you need to know how to code to use KryllOS?</h3><p>No. The installation is automated, and strategies are built with drag-and-drop by connecting blocks together. Zero lines of code.</p><h3 id="which-computers-does-the-kryllos-app-run-on">Which computers does the KryllOS app run on?</h3><p>Windows and macOS (Apple Silicon and Intel). You download the .exe or the .dmg depending on your machine.</p><h3 id="do-i-have-to-leave-my-computer-on-for-my-strategies-to-run">Do I have to leave my computer on for my strategies to run?</h3><p>No, and that's the whole point. Your strategies run on the VPS, 24/7. Your computer is only there to steer them. Turn it off, and the bots keep trading.</p><h3 id="what-s-a-vps-and-why-do-i-need-one">What's a VPS and why do I need one?</h3><p>A VPS (Virtual Private Server) is a server that runs nonstop in a datacenter, rented for a few euros a month. It's what executes your strategies while you sleep, without relying on your personal PC/Mac.</p><h3 id="how-much-does-a-vps-cost">How much does a VPS cost?</h3><p>A few euros a month. For reference, the deals offered in the installer start around €6/month (budget) and €10/month (recommended).</p><h3 id="what-are-the-minimum-specs-for-the-vps">What are the minimum specs for the VPS?</h3><p>A 2 vCore / 4 GB RAM / 40 GB disk config is enough to get started. To run several strategies comfortably, aim for 4 vCore / 8 GB RAM / 100 GB disk.</p><h3 id="where-do-i-find-my-vps-s-ip-and-root-password">Where do I find my VPS's IP and root password?</h3><p>In your provider's interface: the IP is on your server's page ("IPv4"), the root password in the security/login settings (often for you to generate yourself). The labels vary a bit from one provider to the next.</p><h3 id="my-vps-runs-a-different-os-what-do-i-do">My VPS runs a different OS, what do I do?</h3><p>Reinstall it with Ubuntu 22.04+ or Debian 12+ from your provider's panel (look for "Reinstall" / "Reinstall OS").</p><h3 id="does-kryll-have-access-to-my-funds-or-my-api-keys">Does Kryll have access to my funds or my API keys?</h3><p>No. KryllOS is self-hosted: your API keys stay local and Kryll never touches your funds. No custody, no middleman.</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS — Join the Waitlist" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Get a Netcup VPS for KryllOS: Beginner's Step-by-Step Guide]]></title><description><![CDATA[This beginner guide shows you how to get a Netcup VPS, then find your IP and root password, ready to run KryllOS 24/7.]]></description><link>https://blog.kryll.io/get-netcup-vps-for-kryllos/</link><guid isPermaLink="false">6a3eac4ad9e60f88cb3b812e</guid><category><![CDATA[tutorials]]></category><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 26 Jun 2026 18:30:07 GMT</pubDate><content:encoded><![CDATA[<p>If you're here, it's because you want to run KryllOS 24/7, which means you need a VPS. Good news: you're in the right place, and you don't need any technical skills to follow this guide.</p><p>We'll cover the whole journey, from A to Z:</p><ul><li><strong>Ordering</strong> your VPS on Netcup</li><li><strong>Paying</strong> for your order from your customer account</li><li><strong>Accessing</strong> your server's admin panel</li><li><strong>Grabbing</strong> your IP address and root password to launch the KryllOS install</li></ul><hr><h2 id="what-is-a-vps">What is a VPS?</h2><p>A VPS (Virtual Private Server) is a small computer that runs around the clock in a datacenter, which you rent for a few euros a month. It's what runs your strategies while you sleep. For this guide, we picked Netcup: a European host known for its excellent price-to-performance ratio, perfect for KryllOS.</p><hr><h2 id="which-netcup-vps-plan-should-you-choose-and-what-it-really-costs-">Which Netcup VPS plan should you choose? (and what it really costs)</h2><p>Netcup offers several tiers. For KryllOS, we recommend <strong>at least 2 vCPU and 4 GB of RAM</strong>. The smallest plan is plenty to get started; if you're planning to run lots of strategies in parallel or do a ton of backtests, aim for the next plan up.</p><p>Our advice: start with the VPS 500 G12. It's the ideal plan to get going on KryllOS: cheap, and more than enough. You can always move up to a bigger plan later if you need to.</p><hr><h2 id="part-1-ordering-your-vps">Part 1: Ordering your VPS</h2><h3 id="step-1-choose-your-plan">Step 1: Choose your plan</h3><p>To get started, head over to <a href="https://www.netcup.com/en/server/vps?ref=372611">Netcup's website</a> to browse their VPS plans. You'll see the three plans shown just above. Under the <strong>VPS 500 G12</strong>, click the <strong>"Order now"</strong> button.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/1-1.png" class="kg-image"></figure><hr><h3 id="step-2-configure-your-vps">Step 2: Configure your VPS</h3><p>You'll land on the configuration screen. Two settings matter here.</p><p>The commitment length :</p><ul><li><strong>"0 months"</strong> (no commitment): you pay monthly and can cancel whenever you want. Perfect for testing KryllOS at your own pace.</li><li><strong>"12 months, Save 14%"</strong>: like most hosts, committing for a year lowers your monthly cost. The right call if you already know you're staying. (Small bonus: if you go with an annual plan, we may be able to give you a promo code. Feel free to join our <a href="https://t.me/kryll_io">Telegram group</a> to ask for one.)</li></ul><p>The location : we recommend leaving "No preference Europe," shown at +€0.00. The other cities (Amsterdam, Vienna, Nuremberg, and so on) add a small surcharge, and Singapore is noticeably pricier. With "No preference Europe," your server will be placed in Europe with no extra charge.</p><p>Once your config is set, click <strong>"Add to shopping cart."</strong></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/2-1.png" class="kg-image"></figure><hr><h3 id="step-3-skip-the-add-ons">Step 3: Skip the add-ons</h3><p>A window confirms your VPS was added, and Netcup takes the chance to offer you extra options (vLAN, an additional IPv4, a domain name, and so on). You don't need any of them for KryllOS.</p><p>Just click <strong>"Go to shopping cart."</strong></p><p></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/3.png" class="kg-image"></figure><hr><h3 id="step-4-check-your-cart">Step 4: Check your cart</h3><p>Your cart shows your VPS 500 G12 with its price. You can see the breakdown: one-time setup fees and the monthly price.</p><p>Click <strong>"Continue to the order."</strong></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/4.png" class="kg-image"></figure><hr><h3 id="step-5-enter-your-billing-address">Step 5: Enter your billing address</h3><p>This is the most important step to fill in correctly. Netcup verifies addresses (that's actually why a phone number is required). So give your real, complete address, exactly as it appears on an official document: a made-up address can block or delay your order.</p><p><em>Important: if you don't have a street number, just add a <code>0</code> at the start (e.g., <code>0 Your Addresse</code>). Without a number, your order may not be accepted.</em></p><p>Once everything is filled in, click <strong>"Save address."</strong></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/5-4.png" class="kg-image"></figure><hr><h3 id="step-6-confirm-the-save">Step 6: Confirm the save</h3><p>A window confirms your address was saved. Click <strong>"Go to order."</strong></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/6-1.png" class="kg-image"></figure><hr><h3 id="step-7-review-the-summary">Step 7: Review the summary</h3><p>You'll arrive at the order summary. Take 30 seconds to double-check your info: identity, address, and the product ordered (your VPS 500 G12).</p><p>You'll notice a "First receipt" line that's a bit higher than the monthly price: that's normal, it includes the one-time setup fees on top of the first month.</p><p>Before confirming, tick the two boxes at the bottom, then click <strong>"Order at charge."</strong></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/7.png" class="kg-image"></figure><hr><h3 id="step-8-order-confirmed">Step 8: Order confirmed</h3><p>A "Thank you for your order!" message appears: your order is registered.</p><p><em>Important point: with Netcup, you don't pay right at checkout. Here's how it works: Netcup will email you your customer account credentials, and it's from that account that you'll pay your invoice. Once the payment goes through, you'll get access to your VPS.</em></p><p>So let's move on to Part 2: payment.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/8.png" class="kg-image"></figure><hr><h2 id="part-2-paying-for-your-order-from-your-customer-account">Part 2: Paying for your order from your customer account</h2><h3 id="step-1-get-your-username-and-password">Step 1: Get your username and password</h3><p>Keep an eye on your inbox. You'll get <strong>two emails</strong>:</p><ul><li><strong>A first email</strong> about payment that <strong>you can ignore</strong>.</li><li>Right after, an email titled <strong>"Your login credentials for the netcup CCP"</strong> <strong>→ that's the one that matters</strong>. Keep it handy: it holds your access to the customer account (the Customer Control Panel, or CCP).</li></ul><p>Inside, you'll find:</p><ul><li><strong>Customer number</strong> → your customer number (your login ID)</li><li><strong>Password</strong> → your password</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.kryll.io/content/images/2026/06/9.png" class="kg-image"><figcaption>E-mail Netcup contenant les identifiants de connexion au Customer Control Panel (CCP)</figcaption></figure><hr><h3 id="step-2-log-in-to-your-customer-account">Step 2: Log in to your customer account</h3><p>Go to Netcup's official customer account site: <strong><a href="https://customercontrolpanel.de">customercontrolpanel.de</a></strong></p><p>Log in by copy-pasting the customer number and password you received by email, then click <strong>"Log in."</strong></p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/10.png" class="kg-image"></figure><hr><h3 id="step-3-confirm-the-security-code-2fa-">Step 3: Confirm the security code (2FA)</h3><p>Netcup will ask for a code (token) sent to your email address: it's their two-factor authentication (2FA) system, enabled by default, an extra layer of security to protect your account.</p><p>Grab the code from your inbox, paste it, then click <strong>"Confirm token."</strong> Need a new code? Click "Send token again."</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/12.png" class="kg-image"></figure><hr><h3 id="step-4-pay-your-invoice">Step 4: Pay your invoice</h3><p>You're now logged into your customer account. In the top right, under "Outstanding invoices," you'll see your order awaiting payment (in our example, €11.90).</p><p>Click the credit card or PayPal logo next to the invoice, then follow the prompts to complete the payment.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/13-2.png" class="kg-image"></figure><hr><h2 id="part-3-accessing-your-vps-admin-panel">Part 3: Accessing your VPS admin panel</h2><p>Once your invoice is paid, you can finally access your server.</p><p>Still on the same page of your customer account, find the "Log in to other panels" box and click the <strong>"SCP Auto-Login"</strong> button.</p><p>What's the SCP? The Server Control Panel (SCP) is the panel that lets you manage your VPS. The "SCP Auto-Login" button is the fastest way to connect, with no credentials to re-enter. Note that you can also log in manually with dedicated login/password credentials, sent in a separate email (these are different from your customer account credentials).</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/14-1.png" class="kg-image"></figure><p>You'll then land on the Server Control Panel, a separate platform dedicated to managing your VPS. To open your server's settings, click its name in the list, a long identifier that starts with <code>v22…</code> (e.g., <code>v2202506184293817445</code>).</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/15-2.png" class="kg-image"></figure><hr><h2 id="part-4-grabbing-your-ip-and-root-password">Part 4: Grabbing your IP and root password</h2><p>This is the home stretch: these two pieces of info are all KryllOS needs to install.</p><h3 id="step-1-finding-your-ip-address">Step 1: Finding your IP address</h3><p>After clicking your server's name (previous step), open the "General" tab. Scroll down to the "Network" section: your IP address is shown in the "IPv4" column (e.g., <code>159.195.193.127</code>).</p><p>This is your machine's public identity. Write it down somewhere safe, you'll need it during the KryllOS install.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/16-7.png" class="kg-image"></figure><hr><h3 id="step-2-setting-and-grabbing-your-root-password">Step 2: Setting and grabbing your root password</h3><p>Now go to the "Access" tab.</p><p>Netcup has already pre-generated a password for you (so the field isn't empty). Here's what to do:</p><ul><li>First, copy the displayed password (the <strong>"Copy"</strong> button) and paste it somewhere safe.</li><li>Then click <strong>"Set Password"</strong> to actually apply it to your server.</li></ul><p>This is the access key to your machine. Write it down somewhere safe, you'll need it during the KryllOS install.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/06/17-1.png" class="kg-image"></figure><hr><h2 id="and-there-you-go-you-re-ready-">And there you go, you're ready!</h2><p>You now have in hand:</p><ul><li><strong>Your VPS IP address</strong></li><li><strong>Your root password</strong></li></ul><p>All that's left is to launch the KryllOS install. We walk you through everything, step by step, in our dedicated guide: <strong><a href="https://blog.kryll.io/kryllos-installation-guide/">KryllOS Installation Guide →</a></strong></p><hr><h2 id="a-question-stuck">A question? Stuck?</h2><p>No worries, you're not alone. Join our official Telegram group, where the KryllOS team and community answer your questions: <strong><a href="https://t.me/kryll_io">Join the Telegram →</a></strong></p><hr><h2 id="frequently-asked-questions">Frequently Asked Questions</h2><h3 id="what-s-a-vps-and-why-do-i-need-one-for-kryllos">What's a VPS, and why do I need one for KryllOS?</h3><p>A VPS (Virtual Private Server) is a server that runs around the clock in a datacenter, rented for a few euros a month. KryllOS hosts its engine on it, which lets your strategies trade 24/7, even when your computer is off.</p><h3 id="why-netcup">Why Netcup?</h3><p>Netcup is a European host with a great price-to-performance ratio, fast NVMe VPS plans, and some of the lowest prices on the market. It's a solid, budget-friendly choice for running KryllOS.</p><h3 id="which-netcup-plan-should-i-choose-for-kryllos">Which Netcup plan should I choose for KryllOS?</h3><p>The VPS 500 G12 (2 vCore, 4 GB RAM, 128 GB NVMe) is plenty to get started. If you're planning to run lots of strategies in parallel or do many backtests, step up to the VPS 1000 G12 (4 vCore, 8 GB RAM). You can always upgrade later.</p><h3 id="what-does-it-really-cost">What does it really cost?</h3><p>From around €6/month for the VPS 500 G12. Heads up: the first invoice is a bit higher, because it includes one-time setup fees on top of the first month (in our example: €5.04 in fees + €6.86 = €11.90 total).</p><h3 id="0-month-or-12-month-commitment-which-do-i-pick">0-month or 12-month commitment, which do I pick?</h3><p>The "0 months" option (no commitment) lets you pay monthly and cancel whenever you want: ideal for testing. The "12 months" option saves you ~14% per month but locks you in for a year. To get started with peace of mind, no commitment is perfect.</p><h3 id="which-location-should-i-choose">Which location should I choose?</h3><p>Leave "No preference Europe": your server will be in Europe, with no surcharge. The other cities add a few euros per month for no real reason.</p><h3 id="where-do-i-find-my-netcup-vps-s-ip-and-root-password">Where do I find my Netcup VPS's IP and root password?</h3><p>In the Server Control Panel, after clicking your server's name: the IP is in the "General" tab (Network section → IPv4), and the root password in the "Access" tab (be sure to click "Set Password" to apply it).</p><h3 id="which-operating-system-for-kryllos">Which operating system for KryllOS?</h3><p>Ubuntu 22.04+ or Debian 12+. If your VPS runs a different OS, reinstall it from the Netcup panel before launching the KryllOS install.</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS — Join the Waitlist" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[KryllOS Security: The Zero Trust Model Applied to Trading Bots]]></title><description><![CDATA[Why KryllOS chooses invisibility over fortress walls: Zero Trust, port knocking, cryptographic signatures. The complete security model, explained.]]></description><link>https://blog.kryll.io/kryllos-security-zero-trust/</link><guid isPermaLink="false">6a140522d9e60f88cb3b7cea</guid><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Mon, 25 May 2026 14:14:00 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/07/f0148de1-028f-4528-8529-d53742e64d1e-1.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/07/f0148de1-028f-4528-8529-d53742e64d1e.png" class="kg-image" alt="KryllOS Security: The Zero Trust Model Applied to Trading Bots"></figure><img src="https://blog.kryll.io/content/images/2026/07/f0148de1-028f-4528-8529-d53742e64d1e-1.png" alt="KryllOS Security: The Zero Trust Model Applied to Trading Bots"><p>KryllOS is a self-hosted product: you install it on your own server, and you are its sole user. No Kryll cloud holding your keys, no account to create, no password to manage.</p><p>This reality fundamentally changes the nature of the security model. The question is no longer <em>"how to protect a multi-tenant service,"</em> but <em>"how to protect a personal server that has no reason to be accessible from the outside."</em> KryllOS's model responds with a simple principle: robust where it matters, lean where it's enough.</p><hr><h2 id="a-solid-security-boundary">A solid security boundary</h2><p>KryllOS is only accessible by you, via an SSH tunnel whose port remains permanently closed. It only opens after a port knocking sequence known to you alone. To an attacker scanning the Internet, your server doesn't exist: no open ports, no response, no visible attack surface.</p><p>This invisible-before-authentication approach applies a model designed in 2007 by the Defense Information Systems Agency (DISA) of the U.S. Department of Defense. Known as Software Defined Perimeter, or <em>"Black Cloud,"</em> it was originally conceived to protect classified networks. It is today the foundation of Zero Trust architectures powering Cloudflare Access, Zscaler Private Access, and most modern ZTNA solutions.</p><hr><h2 id="no-unnecessary-friction-between-you-and-yourself">No unnecessary friction between you and yourself</h2><p>With a solid perimeter in place, the protections typically layered on the inside — HTTP authentication, sessions, rate limiting, local encryption of secrets — lose their purpose. If someone has crossed the SSH tunnel, it means they have your keys or a shell on your machine: from the system's perspective, they <em>are</em> you. Encrypting an API key with a decryption key stored right next to it doesn't change the cost of an attack.</p><p>KryllOS therefore chooses to be honest about what it actually protects, and to focus cryptography where it truly matters.</p><hr><h2 id="cryptographic-guarantees-where-they-count">Cryptographic guarantees where they count</h2><ul><li><strong>Signed plugins:</strong> cryptographic signature verified before each execution, with auditing for the official marketplace.</li><li><strong>Sandboxed filesystem:</strong> all file operations pass through a validation layer that prevents a plugin or API call from escaping its dedicated folder.</li><li><strong>Hash-pinned dependencies:</strong> KryllOS and its components are distributed with a cryptographic manifest that allows verification that downloaded third-party libraries are exactly those tested by the team. A compromise of PyPI or an upstream repository cannot silently slip into an update.</li><li><strong>Isolated exchange credentials:</strong> your API keys are stored in a local SQLite database, accessible only by the KryllOS process itself.</li></ul><hr><h2 id="best-practices-on-the-user-side">Best practices on the user side</h2><p>KryllOS handles what it can handle. The rest comes down to a few classic administration best practices:</p><ul><li>A strong SSH key (Ed25519, never passwordless) with a local passphrase.</li><li>A port knocking sequence you don't share, and that you change if it has leaked.</li><li>Exchange API keys created with minimal permissions (trading only, no fund withdrawal, IP restriction where the exchange allows it).</li><li>Extra vigilance with plugins installed outside the marketplace: a third-party plugin is code that runs with your server's privileges. The official marketplace exists precisely so you don't have to do that analysis yourself.</li></ul><hr><h2 id="a-model-suited-to-its-audience">A model suited to its audience</h2><p>This isn't Binance or Coinbase. KryllOS doesn't hold the funds of millions of users, isn't publicly exposed on the Internet, has no attack surface to defend against continuously scanning bots. It's a personal trading station that, from the Internet, simply doesn't exist.</p><p>At this scale, the challenge isn't to build a defensive fortress. It's to shrink the attack surface until it becomes invisible, and to focus cryptography on the points that remain.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS Security: The Zero Trust Model Applied to Trading Bots" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[$KRL in KryllOS: Utility and Tokenomics]]></title><description><![CDATA[A fixed supply token, no new issuance, that distributes real yield and funds a completely free platform. How is that possible? We explain everything.]]></description><link>https://blog.kryll.io/krl-kryllos-utility-tokenomics/</link><guid isPermaLink="false">69fd8fc0d9e60f88cb3b7c16</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 08 May 2026 14:58:12 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/05/KryllOS-KRL-flywheel-16-9-2.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/05/KryllOS-KRL-flywheel-16-9.png" class="kg-image" alt="$KRL in KryllOS: Utility and Tokenomics"></figure><img src="https://blog.kryll.io/content/images/2026/05/KryllOS-KRL-flywheel-16-9-2.png" alt="$KRL in KryllOS: Utility and Tokenomics"><p>KryllOS is more than an automated trading platform. It's an ecosystem: a visual no-code editor, a marketplace for bots and custom blocks, an AI layer for vibe-coding your strategies, and at the heart of it all, a token that serves as the economic backbone. KRL isn't a gimmick, it's the economic fuel that aligns users, creators, and the platform.</p><hr><h2 id="token-basics">Token Basics</h2><p>KRL is the native utility token of the Kryll ecosystem. Launched via ICO in early 2018, it raised $2.2M and laid the project's foundations. Eight years later, it's back at the center of the action with KryllOS.</p><p>A few fundamentals to keep in mind:</p><ul><li>Standard: ERC-20</li><li>Max supply: 49,417,348 KRL</li><li>Multi-chain: natively deployed on Ethereum, Base, Arbitrum, and Optimism</li><li>Availability: traded on Coinbase, KuCoin, Gate.io, Crypto.com, MEXC, CoinEx, and accessible on DEX via Uniswap V3</li></ul><p>One important point: all KRL currently in circulation is fully unlocked. There is no active vesting, no upcoming unlock schedule. The supply is fixed and non-mintable, a clean, predictable foundation for everything that follows.</p><hr><h2 id="the-marketplace-s-single-currency">The Marketplace's Single Currency</h2><p>Every transaction on the KryllOS marketplace is designed to go through KRL. Whether you're buying a ready-to-use trading strategy, a custom block, an app, or a skill for your AI agent, you pay in KRL. The publisher receives KRL.</p><p>No fiat, no stablecoins, no alternatives. A single rail, simple and predictable. This unification has a direct consequence: every transaction feeds the same economy. The more volume the marketplace generates, the more sustained demand builds around KRL.</p><hr><h2 id="how-a-single-purchase-powers-an-entire-ecosystem">How a Single Purchase Powers an Entire Ecosystem</h2><p>With every marketplace purchase, the KRL spent is distributed among three beneficiaries:</p><ul><li><strong>The Publisher</strong><br>The creator of the bot, block, or application receives their share. This is the foundation of a real creator economy: the more useful content you publish and the more it gets used, the more you earn. The original Kryll marketplace already proved this model works, top creators generated genuine passive income from it. KryllOS takes that further, adding custom blocks and an AI layer that dramatically lowers the barrier to publishing.</li><li><strong>Kryll</strong><br>A share goes to the team to fund development, infrastructure, and operations. This is what keeps the product free: no subscriptions, no trading fees, no custody. The marketplace funds the platform instead of billing the end user.</li><li><strong>Stakers</strong><br>A share is redistributed to holders who have actively staked their KRL, in the form of real yield paid out by actual marketplace activity. This is an intentional, participatory mechanism: simply holding KRL in a wallet doesn't earn you anything. It's the deliberate act of staking that opts you into the revenue-sharing engine.</li></ul><hr><h2 id="real-yield-not-disguised-inflation">Real Yield, Not Disguised Inflation</h2><p>The word "yield" is overused in crypto. Most projects that promise it operate through inflationary emission: new tokens are minted to pay stakers. The result is that non-staking holders get diluted, and the displayed APY reflects no real value creation.</p><p>KRL works in the opposite direction. The supply is fixed: 49,417,348 tokens, full stop, no minting possible. The yield distributed to stakers doesn't come from emission, it comes from real purchases made on the marketplace by real users. It's closer to a corporate dividend than a synthetic APY.</p><p>In practice: the yield is sustainable because it's backed by actual economic activity. And staking holders capture their share without diluting those who don't stake.</p><p><em>A path worth considering: Burn &amp; Buyback</em><br><em>A portion of the KRL collected through the marketplace could be burned, mechanically reducing the circulating supply. Additionally, in cases where the platform generates revenue in fiat or currencies other than KRL, a buyback mechanism could be considered, repurchasing KRL on the open market to redistribute or burn it, creating structural buying pressure on the token.</em></p><hr><h2 id="publication-collateral">Publication Collateral</h2><p>For a marketplace to stay healthy, publishers need a direct incentive to be serious. One option being strongly considered: requiring a KRL deposit as collateral in order to publish on the marketplace.</p><p>This collateral would serve as an integrity guarantee, a publisher who releases defective or fraudulent content loses all or part of their deposit. Conversely, an active and honest publisher sees their collateral grow over time, with a portion of their earnings automatically reinvested into it.</p><p>When a publisher decides to leave the ecosystem, they recover their full accumulated collateral. It's a mechanic that creates genuine long-term stakes without imposing excessive friction at the point of entry.</p><hr><h2 id="the-self-reinforcing-loop">The Self-Reinforcing Loop</h2><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/05/KryllOS-KRL-flywheel-no-bg-3.png" class="kg-image" alt="$KRL in KryllOS: Utility and Tokenomics"></figure><p>Put together, these mechanics create a virtuous cycle, a flywheel, that strengthens itself over time.</p><p>More users on KryllOS → More marketplace volume → More buying pressure on KRL → Greater attractiveness and visibility → Repeat</p><p>Every participant benefits from everyone else's success. Users want a rich marketplace. Creators want a large user base. Stakers want both sides of the market to grow. And Kryll, as the platform, lives off the same flow. Nobody is playing against anyone else, the exact opposite of classic SaaS models where the platform extracts rent at users' expense.</p><hr><h2 id="what-krl-makes-possible-that-nothing-else-could-fund">What KRL Makes Possible That Nothing Else Could Fund</h2><p>Kryll makes strong product choices that set it apart: open source, self-hostable, free, non-custodial. Kryll never touches user funds and takes nothing from their trades. No subscriptions, no paywalls, no friction.</p><p>In that context, one might wonder why have a token at all. The answer comes down to one word: alignment.</p><p>With KRL, the ecosystem finances its own growth. The platform stays free because the marketplace funds development. Creators earn a living because users buy their work. And holders who believe in the project capture a direct share through real yield.</p><p>KRL isn't a financial layer bolted onto the product. It's what makes the product possible in its current form: open, free, sovereign, and viable for the long term.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="$KRL in KryllOS: Utility and Tokenomics" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes]]></title><description><![CDATA[KryllOS installs in 5 minutes: the installer guides every step, automatically secures your VPS and gives you full sovereignty over your trading data.]]></description><link>https://blog.kryll.io/install-kryllos-wizard-self-hosting/</link><guid isPermaLink="false">69f3689fd9e60f88cb3b7b1a</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 01 May 2026 07:55:27 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/kryllos-wizard-thumbnail-2.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-wizard-thumbnail.png" class="kg-image" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"></figure><img src="https://blog.kryll.io/content/images/2026/04/kryllos-wizard-thumbnail-2.png" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"><p>Self-hosting has a beautiful promise: your keys, your data, your rules. And it comes with a very real price. You need to configure a VPS, properly set up an SSH tunnel, navigate Linux command lines, and make a series of configuration decisions without making mistakes, all while carrying the nagging anxiety of breaking something along the way. This is often where the promise meets reality.</p><p>When preparing the reboot of Kryll, we asked the community directly. 58% said they were ready to self-host their instance, provided they had guidance. In other words, for nearly six out of ten people, the installation process was not just a technical step.</p><p>The KryllOS installer was designed exactly for these people. Three steps. Five minutes. A fully operational instance, already secured.</p><hr><h2 id="why-an-installation-wizard-for-a-self-hosted-trading-bot">Why an installation wizard for a self-hosted trading bot?</h2><p>KryllOS is deliberately self-hosted. Your API keys stay on your machine, your trading data never leaves to any third-party cloud, and nobody holds custody of your funds. It's a choice of total sovereignty, but it's also a choice that traditionally requires users to have some technical knowledge.</p><p>We refuse that compromise. The idea behind KryllOS is the power of a professional tool with the simplicity of a consumer app. The installation wizard embodies exactly this philosophy: it automates what an experienced sysadmin would do by hand, and it does it better than a copy-pasted tutorial, because it bakes in security best practices by default.</p><p>Concretely, the KryllOS installer handles three tasks for you:</p><ul><li><strong>SSH connection</strong> to your VPS (no more juggling your terminal and private key)</li><li><strong>Security hardening</strong>, with the creation of a dedicated Linux user, firewall configuration, and remote connection rules, plus, optionally, port-knocking</li><li><strong>Deployment of KryllOS</strong> on your VPS and configuration of the KryllOS app on your computer</li></ul><p>You click three times, wait five minutes, and you trade.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-installer-full-done-watermark.png" class="kg-image" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"></figure><hr><h2 id="the-3-steps-of-the-kryllos-wizard">The 3 steps of the KryllOS wizard</h2><h3 id="step-1-connect-your-vps-to-kryllos">Step 1: Connect your VPS to KryllOS</h3><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-installer-close-1-watermark.png" class="kg-image" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"></figure><p>On the first screen, the wizard asks for three pieces of information:</p><ul><li>Your VPS IP address</li><li>The root password for that VPS</li><li>A username to create for KryllOS</li></ul><p>The choice to create a dedicated user, rather than running KryllOS with root privileges, is not a minor detail. It's the principle of least privilege: even in the unlikely scenario where a vulnerability were to affect the application, the attacker would find themselves confined to an account with limited rights, far from the absolute power that root provides.</p><hr><h3 id="step-2-choose-your-installation-mode-native-or-docker">Step 2: Choose your installation mode: Native or Docker</h3><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-installer-close-2-watermark.png" class="kg-image" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"></figure><p>The KryllOS installer offers two installation options:</p><ul><li><strong>Native installation:</strong> if your VPS is dedicated to KryllOS, this is the simplest and most direct choice. KryllOS installs directly on the system, without any additional layer.</li><li><strong>Dockerized installation:</strong> this is the option for advanced users who already have an active VPS running other services. Think of Docker as a sealed box sitting on your server. KryllOS runs inside it, completely isolated from the rest of the system. No conflicts with your other software, no interference in either direction.</li></ul><hr><p>On this same screen, you'll find a checkbox that may look minor but is worth its weight in gold: <strong>port-knocking</strong>.</p><h3 id="port-knocking-or-the-art-of-making-your-server-invisible">Port-knocking, or the art of making your server invisible</h3><p>Port-knocking is a somewhat forgotten but diabolically effective security mechanism. It makes your server completely invisible, no ports are open. To an automated scanner looking for vulnerable VPS machines, your server simply doesn't exist.</p><p><strong>But how does it actually work?</strong><br>Picture a secret door in a wall that, on the surface, has no visible entrance. For the door to open, you must knock in a precise sequence: three times, then twice, then five times. Anyone who doesn't know the code sees nothing but a smooth wall.</p><p>Port-knocking works on exactly this principle. A server has thousands of "doors" called ports, and connections pass through these ports. Normally, certain ports remain permanently open, like the SSH port, which enables remote connections. These open ports are precisely what hackers and their bots scan relentlessly, looking for a vulnerability.</p><p>With port-knocking, no port is open by default. Instead, the server quietly listens for connection attempts on a specific sequence of ports, say, 1200, then 3456, then 7890, in the right order and within a limited timeframe. This sequence is the "secret knock." If you know it and send it correctly, the server dynamically opens the SSH port, just long enough for your connection, then closes it immediately. To everyone else, the door never existed.</p><p>How can a hacker compromise a machine that doesn't even appear to exist from their perspective? That's exactly the point. KryllOS already stacks several security layers, dedicated user, Docker isolation, hardened SSH, and port-knocking adds the final touch: an invisibility layer. One checkbox, and your VPS disappears from the map.</p><hr><h3 id="step-3-summary-and-deployment">Step 3: Summary and deployment</h3><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-installer-close-3-watermark.png" class="kg-image" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"></figure><p>The final screen summarizes all the choices you've made. You review them, click deploy, and the installer takes over.</p><p>Behind the scenes, it runs through a precise sequence:</p><ol><li>Secure connection to the VPS</li><li>System compatibility check</li><li>Environment configuration</li><li>KryllOS installation</li><li>Final checks to ensure everything is running correctly</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-installer-full-watermark.png" class="kg-image" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes"></figure><p>In under five minutes, KryllOS is up and running. The application is directly accessible on your local machine, already connected to your VPS.</p><hr><h2 id="what-remains-in-your-hands-after-installation">What remains in your hands after installation</h2><p>The installation ends, and you find yourself with far more than a simple configured instance. Behind the scenes, the wizard has been running two parallel workstreams.</p><p>On one side, on your VPS: KryllOS is deployed, the server is hardened, the environment is isolated, and your API keys will never leave that machine.</p><p>On the other side, on your computer: the KryllOS application has been configured locally. This becomes your control station. It establishes a secure SSH tunnel to your VPS and gives you access to the full KryllOS interface from a native app, without ever going through a browser or a third-party service. The VPS runs the engine. The application on your machine holds the wheel.</p><p>The old crypto adage "not your keys, not your coins" extends here to automated trading. Your strategies run on your machine, for you. And your only point of contact with all of this is an interface built to be used, not feared.</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="Installing KryllOS: the installer that turns 2 hours of configuration into 5 minutes" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[The KryllOS Marketplace: your unified store for automated trading]]></title><description><![CDATA[The KryllOS Marketplace brings together strategies, blocks, apps and AI skills to power your automated trading. One store, one currency, one ecosystem.]]></description><link>https://blog.kryll.io/kryllos-marketplace-automated-trading/</link><guid isPermaLink="false">69f2151dd9e60f88cb3b7ac9</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Wed, 29 Apr 2026 14:31:15 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/marketplace-2.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/marketplace.png" class="kg-image" alt="The KryllOS Marketplace: your unified store for automated trading"></figure><img src="https://blog.kryll.io/content/images/2026/04/marketplace-2.png" alt="The KryllOS Marketplace: your unified store for automated trading"><p>KryllOS without its Marketplace would be like a Mac without the App Store: powerful, but limited to what was originally designed and shipped. An OS that can't expand after launch is an OS that stagnates. The Marketplace is what turns KryllOS into a living platform, an ecosystem that grows continuously through community contributions, not just the decisions of a central product team.</p><hr><h2 id="why-a-marketplace-in-an-os">Why a marketplace in an OS</h2><p>Kryll isn't a website with menus and pages. It's a multi-window, modular, self-hosted OS running on your VPS. Instead of being stuck with features hard-coded by a distant product team, you compose your own automated trading environment yourself.</p><p>And where there's an OS, there's a store. The Marketplace is the nerve center where everything converges: one place, one currency, one unified experience, whether you're looking for a complete strategy, a custom editor block, an app, or a skill for your AI agent.</p><p>One number that says it all: in the community survey run before launch, <strong>58% of respondents</strong> said they prefer downloading ready-to-use strategies rather than building them from scratch. The Marketplace isn't a nice-to-have, it's a core need.</p><hr><h2 id="what-you-can-download">What you can download</h2><p>Four content categories, from the most plug-and-play to the most advanced.</p><p><strong>Complete trading strategies:</strong> download a bot, connect your exchange, hit go. No need to touch the editor. Perfect if you don't have time to build from scratch, or if you want to learn from someone better than you. And since Kryll is open source, these strategies aren't black boxes, you can open them, dissect them, fork them. The Marketplace becomes a learning ground too.</p><p><strong>Custom editor blocks:</strong> building your own strategies but want superpowers? An exotic indicator, advanced logic, a connector to a third-party API. Install it, and the block appears in your library just like a native block.</p><p><strong>KryllOS apps:</strong> one level up, these aren't editor building blocks, they're OS extensions. Custom dashboards, market scanners, trading journals, external integrations. Each app opens in its own window, right alongside your editor or performance tracker. This is what takes Kryll beyond "bot factory" and into a full trading suite.</p><p><strong>Agent skills:</strong> the augmented AI layer to extend your agent's action capabilities. Every installed skill becomes a permanent capability of your agent, activatable on demand.</p><hr><h2 id="for-creators-a-wider-playing-field-an-audience-already-there">For creators: a wider playing field, an audience already there</h2><p>Everything above was about what you can download. The other side of the Marketplace is what you can sell.</p><p>If you can design a strategy that holds up, build a block others would kill to have, or imagine an app that changes a trader's daily workflow, your expertise becomes a monetizable asset, paid in KRL with every sale.</p><p>Three reasons to go for it now:</p><ul><li><strong>Four surfaces instead of one:</strong> Strategies, custom blocks, apps, agent skills. Whatever your profile, trader, dev, crypto ops, there's a category where what you already know how to do has real value, without switching careers.</li><li><strong>The audience is already there:</strong> The majority of KryllOS users arrive with the explicit intent to consume community content. No need to build an audience before you sell, just be good and visible in the store.</li><li><strong>Publishing is more accessible than anywhere else:</strong> KryllOS is open source and self-hosted: no proprietary stack to master, no app review, no gatekeeper. You build with the same tools as your future customers, and you publish.</li></ul><hr><h2 id="the-economic-engine-triple-split-and-flywheel">The economic engine: triple split and flywheel</h2><p>The Marketplace runs on a single currency: KRL, Kryll's native ecosystem token. Complete strategy, editor block, KryllOS app, or agent skill, everything bought in the store is settled in KRL. This unifies the buying experience for users, and directly connects the Marketplace to the rest of the tokenomics.</p><p>When a purchase is made, the KRL is split three ways.</p><ul><li><strong>The publisher gets their cut</strong>, making quality content creation economically viable and keeping the best creators motivated to keep producing.</li><li><strong>Kryll takes a commission</strong> that funds product development, infrastructure, and operations.</li><li><strong>KRL stakers receive a redistribution:</strong> this is the real yield mechanism. Staking KRL earns you a share of Marketplace volume, generated by real economic activity, not token inflation.</li></ul><hr><p>The Marketplace isn't a module sitting beside the Kryll product. It's the engine that turns an automated trading OS into a complete ecosystem, one that grows every day from what its community brings to it.</p><p>Whether you're here to download and run your bots without reinventing the wheel, or to publish your work and build a passive income stream in KRL, the Marketplace is probably your first entry point into KryllOS. And it might just be the reflex worth building: before opening the editor to a blank page, go see what the community has already put on the table.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="The KryllOS Marketplace: your unified store for automated trading" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[How KryllOS Revolutionizes Trading Bot Backtesting]]></title><description><![CDATA[KryllOS new backtest engine: 16-tick precision, MultiBT parallel runs, self-hosted & open source. Faster, sharper, fully private.]]></description><link>https://blog.kryll.io/how-kryllos-revolutionizes-trading-bot-backtesting-2/</link><guid isPermaLink="false">69e62305d9e60f88cb3b7845</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 24 Apr 2026 13:49:11 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/backtest-7.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/backtest-6.png" class="kg-image" alt="How KryllOS Revolutionizes Trading Bot Backtesting"></figure><img src="https://blog.kryll.io/content/images/2026/04/backtest-7.png" alt="How KryllOS Revolutionizes Trading Bot Backtesting"><p>Before risking capital on a strategy, you test it on historical data. That's the principle behind backtesting. Simple in concept, but the quality of the results depends entirely on the tool you use.</p><p>In KryllOS, we rebuilt the engine from the ground up. Here's what that means.</p><h2 id="more-accurate-and-much-faster-">More accurate. And much faster.</h2><p>The new backtest engine uses a 16-tick-per-candle interpolation system that produces results significantly closer to what would happen in live trading.</p><p>But accuracy is only half the story. The other half is speed. The new engine is radically faster than the old one. That speed gain genuinely changes the way you work: you iterate more, test more, validate faster.</p><h2 id="run-multiple-backtests-at-the-same-time">Run multiple backtests at the same time</h2><p>With MultiBT, you no longer run backtests one after another. You run them all at once.</p><p>This opens up concrete possibilities: testing a strategy across multiple time periods to verify it holds up over time, validating it on several pairs or assets simultaneously, or comparing multiple configurations of the same system in a single run.</p><p>What used to take an hour of sequential testing now runs in parallel. More comparisons, in less time, with a far more complete picture of what your strategy is actually worth.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-backtest-2.png" class="kg-image" alt="How KryllOS Revolutionizes Trading Bot Backtesting"></figure><h2 id="your-backtests-stay-with-you">Your backtests stay with you</h2><p>KryllOS is self-hosted. Backtests run entirely on your machine, and no data leaves it, not your strategies, not your results, not the pairs you're testing. On a cloud platform, you're entrusting your ideas to a third party. With KryllOS, they truly belong to you.</p><h2 id="an-engine-you-can-read">An engine you can read</h2><p>KryllOS is open source. The backtest engine is too. You can read exactly how the calculations are made, verify the interpolation logic, and make sure there are no hidden biases in the results.</p><p>In a field where trust in the tool matters as much as the tool itself, that's far from a minor detail.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="How KryllOS Revolutionizes Trading Bot Backtesting" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[When AI & Vibe Coding Meet Algorithmic Trading]]></title><description><![CDATA[Découvrez comment KryllOS combine IA et vibe coding pour créer, auditer et déployer vos stratégies de trading. Sans coder, juste avec vos idées.]]></description><link>https://blog.kryll.io/ai-vibe-coding-algorithmic-trading-bot/</link><guid isPermaLink="false">69e61d5ad9e60f88cb3b7830</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Wed, 22 Apr 2026 13:53:16 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/ai-assistant.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/ai-assistant-1.png" class="kg-image" alt="When AI & Vibe Coding Meet Algorithmic Trading"></figure><img src="https://blog.kryll.io/content/images/2026/04/ai-assistant.png" alt="When AI & Vibe Coding Meet Algorithmic Trading"><p>In recent years, one concept has completely changed the way we create with AI: vibe coding. You describe what you want, and the AI builds it. You don't write code, you express an intention. In most tools, this generates code. In KryllOS, it lets you create trading strategies, editor blocks, and entire applications.</p><hr><h2 id="creating-and-modifying-a-trading-strategy">Creating and modifying a trading strategy</h2><p>In KryllOS, AI isn't integrated separately into each application. It's a standalone app at the system level, capable of interacting with everything you're working on.</p><p>Open the strategy editor, and the AI can act on it directly. Describe the logic of the trading bot you want to create, and the AI places the blocks and connects them.</p><p> Want to modify an existing strategy? It touches what needs to be touched, nothing more. Feel like exploring an idea before building? It brainstorms with you, then waits for your approval before creating anything.</p><p>Anyone who's spent hours wiring blocks by hand knows exactly what this changes.</p><hr><h2 id="auditing-before-deploying">Auditing before deploying</h2><p>Building fast is easy. Building right is another matter.</p><p>KryllOS's AI can read a strategy and surface issues that a classic backtest might miss. A backtest only detects a design flaw if the conditions to trigger it occur during the tested period. The AI reads the logic directly: it identifies flow freezes, dead branches, conditions that are never met, loops with no exit, without waiting for the market to trigger them.</p><p>It also simulates scenarios nobody thinks to test: flash crashes, zero volume, flat markets lasting weeks. And it verifies that the strategy actually does what you think it does. That's usually where the surprises come in.</p><hr><h2 id="creating-your-own-blocks">Creating your own blocks</h2><p>KryllOS lets you create your own editor blocks and add them to your library as if they were native. You can download them from the marketplace, or create them via AI. A few examples of what this enables:</p><ul><li>Adding natively absent indicators: VWAP, CVD, Pivot Points, Futures Funding Rate.</li><li>Encapsulated logic: a "market regime" block that detects trend/range/volatility and outputs a binary signal. A "trading session" block aligned with London or New York opening hours.</li><li>External data: a TradingView signal via webhook, a sentiment API, an on-chain condition before each entry.</li></ul><p>Once created, the block behaves exactly like a native block in KryllOS. And it can be shared or sold on the marketplace.</p><hr><h2 id="creating-kryllos-applications">Creating KryllOS applications</h2><p>KryllOS is a true OS: it supports third-party applications with a signing system, just like a classic operating system. If a native app doesn't do what you want, you build another one. With vibe coding, this promise becomes concrete. Here's what you can build:</p><ul><li>Alerts and notifications: an app that sends a Telegram message when a bot hits a profit threshold or when a trade closes.</li><li>Market data: a real-time screener, an on-chain/DeFi aggregator, a multi-exchange funding rate tracker.</li><li>Orchestration: an app that dynamically allocates capital across your bots based on their performance, or that activates/deactivates strategies based on market conditions.</li><li>Reporting: an automated trading journal, an export to your own tools, a weekly report generated without lifting a finger.</li></ul><p>We pushed the concept so far that our developers had fun building a Doom app. Perfect for unwinding between two backtests 😎</p><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/o1WlohegQmc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Traders by Day, Doom Slayers by Night"></iframe></figure><hr><h2 id="kryllos-in-your-pocket-via-telegram">KryllOS in your pocket, via Telegram</h2><p>KryllOS runs on your VPS, but that doesn't mean you need to be at your desk to control it. Thanks to the Telegram integration, you stay in control of everything, wherever you are.</p><p>From a simple conversation, you can remotely start or stop a strategy, check your bots' performance in real time, and receive instant alerts when a trade triggers or a profit threshold is reached.</p><p>One message is all it takes to activate a strategy, pause another, or check the status of your portfolio. It's your dashboard in your pocket.</p><hr><h2 id="your-os-your-playground-">Your OS. Your playground.</h2><p>KryllOS belongs to you, in the most concrete sense of the word. It runs on your VPS, your data never leaves your environment, and you can truly make it whatever you want.</p><p>Everything you create, whether a strategy, a custom block, or an application, can stay private or join the marketplace for others to benefit from. That's how the ecosystem is built.</p><p>The possibilities are endless. The only limit is your imagination, and we can't wait to see what you'll create!</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="When AI & Vibe Coding Meet Algorithmic Trading" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[KryllOS is free. Genuinely free.]]></title><description><![CDATA[Kryll is free and no one can decide to change that. Open source, runs locally, zero access to your funds. What "free" actually means here.]]></description><link>https://blog.kryll.io/kryllos-truly-free/</link><guid isPermaLink="false">69da3621d9e60f88cb3b76bf</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Mon, 20 Apr 2026 13:45:00 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/free-2.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/free-1.png" class="kg-image" alt="KryllOS is free. Genuinely free."></figure><img src="https://blog.kryll.io/content/images/2026/04/free-2.png" alt="KryllOS is free. Genuinely free."><p>The word "free" has been so badly abused in the trading industry that it has almost lost all meaning. Behind the label, you'll typically find a fourteen-day trial, a version stripped of its useful features, a percentage taken from each transaction, or a subscription that appears at the exact moment the tool starts being useful to you.</p><p>Kryll follows none of these patterns. What you download is the complete version of the product, with no deferred strings attached.</p><hr><h2 id="what-the-product-doesn-t-include">What the product doesn't include</h2><p>Kryll has no subscription screen. It also has no pricing grid, no trial period, and no feature locked behind an "upgrade to a higher plan" button. The number of bots you can run is subject to no cap, nor is the complexity of your strategies, and no commission is taken on your transactions. Your bank card will never come into play.</p><hr><h2 id="the-practical-consequences">The practical consequences</h2><p>A tool that costs nothing radically changes the way you use it. The small mental profitability calculations you run before every decision disappear, and several uses become possible that weren't really viable with a monthly subscription in mind.</p><p>Testing a strategy idea on a small amount of capital, for example, stops being pointless. Running eight bots in parallel to compare their behavior costs no more than running just one. And nothing stops you from setting the tool aside for six months, long enough for a market cycle to feel readable again, then picking up exactly where you left off. No invoice will have arrived in the meantime.</p><hr><h2 id="a-matter-of-structure-not-commercial-policy">A matter of structure, not commercial policy</h2><p>This point is worth clarifying, because it is often misunderstood: the absence of fees on your trades is not a marketing promise. It stems from the way Kryll is built.</p><p>The software runs on your machine. Your API keys stay there. Your capital never passes through our servers at any point, and we have no access to your funds. Charging a commission on your transactions would be technically impossible for us. The profits generated by a strategy therefore come back to you in full, and this doesn't depend on any decision on our part, it is the product's architecture that guarantees it.</p><hr><h2 id="open-source-as-a-safety-net">Open source as a safety net</h2><p>If Kryll is entirely free, the explanation also lies in its open-source nature. A public, auditable, and freely modifiable codebase does not give its authors the option of deciding, one morning, that access to the software will become paid. The switch would be theoretically possible, but it would immediately give way to a community-maintained fork. That prospect alone is enough to make the idea unattractive.</p><p>Kryll is therefore not merely a product made available to you. It is, to a certain extent, a product that belongs to you.</p><hr><h2 id="frequently-asked-questions">Frequently asked questions</h2><p>A few questions come up regularly enough to be worth addressing.</p><ul><li><em>"Is a subscription planned down the line?"</em>No. Neither the project's business model nor its architecture provide for one, and the open-source nature makes the scenario unconvincing.</li><li><em>"Is the free version limited?"</em>No. All features are present from the very first launch.</li><li><em>"Where's the catch?"</em>There isn't one ;)</li></ul><p>Zero at installation, zero per month, zero on your trades. Kryll, in all of this, is simply the engine that keeps everything running.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS is free. Genuinely free." loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[The trading strategy editor is back in KryllOS. Better than ever]]></title><description><![CDATA[KryllOS's visual strategy editor is back, fully rebuilt. AI assistance, custom blocks, precise backtesting: build your trading strategies without limits.]]></description><link>https://blog.kryll.io/kryllos-strategy-editor-trading/</link><guid isPermaLink="false">69e0de44d9e60f88cb3b77d1</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 17 Apr 2026 13:35:11 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/editor-1.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/editor.png" class="kg-image" alt="The trading strategy editor is back in KryllOS. Better than ever"></figure><img src="https://blog.kryll.io/content/images/2026/04/editor-1.png" alt="The trading strategy editor is back in KryllOS. Better than ever"><p>If you've used Kryll, you probably remember the visual editor. That workspace where a strategy took shape block by block, connected by links that drew a logical flow, without a single line of code. For many of you, that's where it all began. It's what made automated trading accessible, concrete, something you could actually get your hands on.</p><hr><h2 id="the-return-of-the-drag-and-drop-block-editor-better-than-ever">The return of the drag-and-drop block editor, better than ever</h2><p>That editor is coming back in KryllOS. Not touched up, but completely rebuilt. The experience has been rethought from the ground up: blocks are easier to handle, navigating a complex strategy no longer turns into a headache, and the workspace has room to breathe. The core principle hasn't changed: you think in flows, not syntax.</p><p>What has changed is the ceiling. The one many of you had eventually hit, that idea you just couldn't quite express with the available blocks. We've removed it.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-editor-odayakawa-2.png" class="kg-image" alt="The trading strategy editor is back in KryllOS. Better than ever"></figure><hr><h2 id="build-your-strategies-in-natural-language-with-ai">Build your strategies in natural language with AI</h2><p>One of the most notable new features: you can describe your strategy in plain language, and the AI translates it directly into blocks on the workspace.</p><p><em>"Buy when the RSI drops below 30 on the 4H, sell once the price has recovered 5%, cut if the loss exceeds 3%."</em></p><p>One sentence, and you get a real strategy with real blocks you can inspect, adjust, and build on. You start from an intention, not a blank page.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-AI-1.png" class="kg-image" alt="The trading strategy editor is back in KryllOS. Better than ever"></figure><p>The same tool works on your existing strategies. Hand yours over to the AI, and it will analyze it and flag what's off: a loop that might freeze, a condition almost never met in real market conditions, a branch that leads nowhere. It can suggest fixes, reorganize sequences, propose alternatives.</p><hr><h2 id="build-what-didn-t-exist-before-your-own-blocks-your-own-rules-">Build what didn't exist before. Your own blocks, your own rules.</h2><p>The second major new feature, and probably the most anticipated one: you can now create your own blocks. An indicator you developed, a condition specific to your approach, a position management logic that no one else uses. Once created (by hand or by describing it to the AI), the block integrates into your library and behaves exactly like a native block. Same interface, same connectors, no visible difference.</p><p>And if that block could be useful to others, you can share it. That's what the marketplace is for. Other users install it in one click and build with it.</p><p>KryllOS doesn't simply bring back what you loved. It addresses the limitations you reported to us, and lays the foundation for a block ecosystem built by users themselves.</p><hr><h2 id="a-reimagined-backtesting-engine">A reimagined backtesting engine</h2><p>The backtesting engine has been completely rewritten. It's faster (long tests are no longer a patience-testing ordeal), but it's the precision that truly changes the game. Results are sharper, more faithful, and better reflect what a strategy would have actually produced under real market conditions.</p><p>Testing before deploying has always been a given. It's even more so when you can trust what you're reading.</p><figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/kryllos-backtest-1.png" class="kg-image" alt="The trading strategy editor is back in KryllOS. Better than ever"></figure><hr><p>What comes next happens on the waitlist. That's where the first access slots will come from ;)</p><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="The trading strategy editor is back in KryllOS. Better than ever" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[KryllOS: Open-Source Because Trust Isn't a Security Model]]></title><description><![CDATA[Your trading platform's code is closed. You can't read it. You can't audit it. You just trust it. KryllOS is open-source. Now you can finally verify.]]></description><link>https://blog.kryll.io/kryllos-open-source-trust-isnt-security-model/</link><guid isPermaLink="false">69d8fd59d9e60f88cb3b7626</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Fri, 10 Apr 2026 14:17:39 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/open-source-1.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/open-source.png" class="kg-image" alt="KryllOS: Open-Source Because Trust Isn't a Security Model"></figure><img src="https://blog.kryll.io/content/images/2026/04/open-source-1.png" alt="KryllOS: Open-Source Because Trust Isn't a Security Model"><p>In crypto, you've heard the same thing since day one: don't trust, verify. Then one fine morning, you plug your API keys into an automated trading platform, and without realizing it, you sign the most important contract of your crypto journey. The one you never read a single clause of.</p><p>This is precisely the paradox that KryllOS tackles head-on. Not through a marketing promise of openness, but because you shouldn't have to trust us.</p><hr><h2 id="when-verification-becomes-impossible">When verification becomes impossible</h2><p>When a trading platform's code is closed, certain questions become impossible to settle:</p><ul><li>Is the strategy running in the execution engine truly the one you configured in the editor?</li><li>Does the backtesting engine apply the same rules as the one running in production?</li><li>Are your orders being executed at the best available price?</li></ul><p>These questions aren't rhetorical. When the code is closed, there's nothing to verify.</p><hr><h2 id="what-open-source-actually-guarantees">What open source actually guarantees</h2><p>Open source is a simple idea: the code is readable, auditable, comparable with what's documented. Trust is no longer asked for, it's earned, line by line.</p><p>What matters most isn't that you read every line of the execution engine yourself. It's that you <em>can</em>, and that others <em>do</em>. You carry yourself differently when you know you're being watched.</p><p>On KryllOS, your API keys never leave your machine. The execution engine, the strategy editor, the backtesting system, everything is public, verifiable, forkable if needed. This isn't a feature. It's an architecture.</p><p>And there's another guarantee that open source provides, one less often mentioned: continuity. A closed-source vendor can shut down, pivot, get acquired, or decide overnight that their product is no longer maintained. When the code is open, it outlives its team. The community can pick it up, keep it alive. That's the difference between renting your tools and truly owning them.</p><hr><h2 id="this-matters-even-if-you-don-t-read-code">This matters even if you don't read code</h2><p>You may have never felt the need for your trading platform's code to be open. That's normal, when everything works, you don't look under the hood.</p><p>But open source doesn't only benefit those who read code. It benefits everyone, by extension. Because someone else can read it on your behalf. Because outside eyes catch what inside eyes normalize. Because a project whose code is public holds itself to a different standard than one whose inner workings are hidden.</p><p>Don't trust, verify. With KryllOS, that's finally possible.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="KryllOS: Open-Source Because Trust Isn't a Security Model" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Why Self-Hosting Your Trading Bots on KryllOS Changes Everything]]></title><description><![CDATA[Your API keys stored on third-party servers are a real risk. Discover why self-hosting your trading bots truly protects your funds and your data.]]></description><link>https://blog.kryll.io/self-hosted-trading-bot-api-key-security/</link><guid isPermaLink="false">69d65eb2d9e60f88cb3b74d7</guid><category><![CDATA[en]]></category><dc:creator><![CDATA[Svein]]></dc:creator><pubDate>Wed, 08 Apr 2026 14:28:29 GMT</pubDate><media:content url="https://blog.kryll.io/content/images/2026/04/self-hosted-EN-1.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.kryll.io/content/images/2026/04/self-hosted-EN.png" class="kg-image" alt="Why Self-Hosting Your Trading Bots on KryllOS Changes Everything"></figure><img src="https://blog.kryll.io/content/images/2026/04/self-hosted-EN-1.png" alt="Why Self-Hosting Your Trading Bots on KryllOS Changes Everything"><p>When you use an online trading bot, here's what happens behind the scenes: you hand over your exchange API keys to a third-party server. Those keys grant access to your account. They can place orders, check your balances, and sometimes even withdraw funds. And they're stored somewhere, on infrastructure you don't control, can't audit, and whose security depends entirely on a team you don't know.</p><p>Most of the time, it works. Until the day it doesn't.</p><hr><h2 id="what-happens-when-a-third-party-stores-your-keys">What happens when a third party stores your keys</h2><p>In December 2022, trading bot platform <a href="https://3commas.io/blog/notice-on-api-data-disclosure-incident">3Commas confirmed the leak of 100,000 API keys</a> from its users on Binance and KuCoin. Millions of dollars were stolen through fraudulent trades placed using the stolen keys. The co-founder initially denied any breach before eventually admitting the facts. The FBI opened an investigation.</p><p>In November 2023, trading firm Kronos Research lost $26 million in ETH following unauthorized access to its API keys.</p><p>These are not isolated incidents. This is a structural risk. The moment your API keys pass through a third-party server, they become a target. And the attack technique is devastatingly effective: attackers don't even need to withdraw your funds directly. With your keys, they place loss-making sell orders against their own bots, draining your account through unfavorable trades.</p><hr><h2 id="self-hosting-the-concept-in-30-seconds">Self-hosting: the concept in 30 seconds</h2><p>Self-hosting is simple: the software runs on your machine. On your own computer, or on a VPS (a private server) to keep your bots running around the clock.</p><p>Think of the difference between storing your photos on Google Photos versus keeping them on a hard drive at home. In one case, you're trusting a third party. In the other, you stay in control. Self-hosting a trading bot is exactly the same principle, applied to something far more sensitive: access to your trading accounts.</p><h2 id="what-it-changes-in-practice">What it changes in practice</h2><p><strong>Your API keys never leave your machine</strong><br>This is the fundamental point. They are stored locally, on your own infrastructure. No one else has access. No third-party server, no centralized database that can leak.</p><p><strong>A 3Commas-style scenario is structurally impossible</strong><br>When a SaaS platform gets compromised, potentially every key from every user is exposed. With a self-hosted bot, there simply is no centralized key database to steal. Every user is an island. To access your keys, an attacker would need to compromise your specific machine.</p><p><strong>Your trading data stays private</strong><br>Your strategies, your performance, your trade history, everything stays local. No data is sent to an external service.</p><p><strong>No single point of failure</strong><br>If a SaaS platform goes down (maintenance, outage, bankruptcy), all its users are offline at the same time. Your self-hosted instance depends only on you.</p><p><strong>The code is verifiable</strong><br>When the bot is open source, youm, or the community, can inspect exactly what the software does with your keys. No black box.</p><hr><h2 id="self-hosting-and-responsibility">Self-hosting and responsibility</h2><p>To be transparent: self-hosting gives you power, and that power comes with responsibility.</p><p>When you host your own bot, the security of your instance falls within your own perimeter. A poorly configured VPS, inadequately protected access, and you reintroduce the very risks you were trying to avoid.</p><p>This is something we care deeply about at Kryll. Cybersecurity is not an afterthought bolted on at the end of a project. It is a core pillar of KryllOS development, and we approach it with the utmost seriousness. We're also preparing a dedicated security article for those who want to understand in depth how we tackle these challenges.</p><hr><h2 id="how-kryllos-is-built-for-self-hosting">How KryllOS is built for self-hosting</h2><p>KryllOS is not a SaaS product retrofitted into downloadable software. It was designed from day one to run on your machine.</p><p>Your API keys are stored locally on your machine and are never transmitted to a third party. The code is open source and auditable by anyone. KryllOS does not hold your funds, does not have access to your keys, and takes no fees on your trades. It is software you own and control, not a service you depend on.</p><p>Installation will be accessible to all profiles: a guided installer for beginners, and a command-line installation for those who prefer the terminal. Use your personal PC to experiment, or a VPS for continuous trading.</p><hr><!--kg-card-begin: html--><div id="kryll-wl-banner-2026">
<style>
  @property --kwl-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  #kryll-wl-banner-2026,
  #kryll-wl-banner-2026 *,
  #kryll-wl-banner-2026 *::before,
  #kryll-wl-banner-2026 *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
  }

  #kryll-wl-banner-2026 .kwl-o {
    position: relative !important;
    width: 100% !important;
    max-width: 780px !important;
    margin: 2rem auto !important;
    padding: 3px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    box-shadow: none !important;
  }

  #kryll-wl-banner-2026 .kwl-o::before {
    content: '' !important;
    position: absolute !important;
    inset: -150% !important;
    background: conic-gradient(
      from var(--kwl-a),
      transparent 0%,
      #6a45e7 10%,
      #926efc 20%,
      #b68dff 30%,
      #926efc 40%,
      transparent 50%,
      transparent 100%
    ) !important;
    animation: kwl-s 3s linear infinite !important;
    z-index: -1 !important;
  }

  #kryll-wl-banner-2026 .kwl-i {
    position: relative !important;
    display: block !important;
    border-radius: 21px !important;
    overflow: hidden !important;
    background: #0d0b1a !important;
    line-height: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-i img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c {
    position: absolute !important;
    right: 7% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a {
    display: inline-block !important;
    padding: 14px 36px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    color: #fff !important;
    text-decoration: none !important;
    background: linear-gradient(135deg, #6a45e7, #926efc) !important;
    border: none !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease !important;
    box-shadow: 0 4px 20px rgba(106, 69, 231, .45) !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 70%) !important;
    background-size: 200% 100% !important;
    animation: kwl-sh 3s ease-in-out infinite !important;
  }

  #kryll-wl-banner-2026 .kwl-c a::after {
    content: '' !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 16px !important;
    border: 2px solid rgba(146, 110, 252, .4) !important;
    animation: kwl-p 2.5s ease-in-out infinite !important;
    pointer-events: none !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:hover {
    transform: scale(1.07) !important;
    color: #fff !important;
    box-shadow: 0 6px 32px rgba(106, 69, 231, .6), 0 0 24px rgba(146, 110, 252, .35) !important;
  }

  #kryll-wl-banner-2026 .kwl-c a:active {
    transform: scale(.97) !important;
    box-shadow: 0 2px 12px rgba(106, 69, 231, .5) !important;
  }

  @keyframes kwl-s {
    to { --kwl-a: 360deg; }
  }

@keyframes kwl-sh { 0% { background-position: 200% 0 } to { background-position: -200% 0 } }
  @keyframes kwl-p  { 0%, 100% { opacity: .3; transform: scale(1) } 50% { opacity: .8; transform: scale(1.04) } }

  @media (max-width: 600px) {
    #kryll-wl-banner-2026 .kwl-c { right: 4% !important }
    #kryll-wl-banner-2026 .kwl-c a { padding: 10px 22px !important; font-size: 13px !important; border-radius: 10px !important }
  }
</style>

<div class="kwl-o">
  <div class="kwl-i">
    <img src="https://blog.kryll.io/content/images/2026/04/kryllOS-join-waitlist-banner-2.png" alt="Why Self-Hosting Your Trading Bots on KryllOS Changes Everything" loading="lazy" decoding="async">
    <div class="kwl-c">
      <a href="https://os.kryll.io/#waitlist" target="_blank" rel="noopener noreferrer">Join the Waitlist</a>
    </div>
  </div>
</div>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><style>
ul li::marker {
    color: #7774FF;
    font-size: 1.2em;
}

ol li::marker {
    color: #7774FF;
    font-size: 1em;
    font-weight: bold;
}

.single-post .post-content a {
    color: #7774FF !important;
}

code {
    color: #7774FF;
    background-color: #EDEDFF;
    padding: 2px 4px;
    border-radius: 4px;
    font-family: monospace;
}
</style>
<!--kg-card-end: html-->]]></content:encoded></item></channel></rss>