<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>CryptoFortochka</title>
        <link>https://paragraph.com/@sosew</link>
        <description>https://t.me/cryptoforto - гайды по активностям / новости / ноды / BLOG</description>
        <lastBuildDate>Tue, 12 May 2026 03:53:16 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>CryptoFortochka</title>
            <url>https://storage.googleapis.com/papyrus_images/49ee58639a1b811de74714f2d2dd2620336a13f05d70e34033a8c33bb1b9bfcf.gif</url>
            <link>https://paragraph.com/@sosew</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Base. Делаем важный деплой]]></title>
            <link>https://paragraph.com/@sosew/base</link>
            <guid>o2F9HH70s7TWBMOzBrKc</guid>
            <pubDate>Tue, 09 Jul 2024 15:10:55 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Base — это безопасный, доступный и удобный для разработчиков Ethereum L2, призванный привлечь следующий миллиард пользователей в web3. Созданный в рамках Coinbase и планирующий прогрессивную децентрализацию, Base стремится создать открытую, глобальную криптоэкономику, доступную всемИнвесторы: Coinbase VenturesАрендовать сервер: PqHosting, XorekCloud, AEZA , Hetzner, ContaboЧат с поддержкой: https://t.me/fortochatВчера наткнулся на активность в ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Base</strong> — это безопасный, доступный и удобный для разработчиков <strong>Ethereum L2</strong>, призванный привлечь следующий миллиард пользователей в <strong>web3</strong>. Созданный в рамках <strong>Coinbase</strong> и планирующий прогрессивную децентрализацию, Base стремится создать открытую, глобальную криптоэкономику, доступную всем</p><ul><li><p><strong>Инвесторы:</strong> Coinbase Ventures</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Вчера наткнулся на активность в тестовой сети <strong>Base</strong>, за который можно будет получить важную роль в дискорде, а ей владеют всего лишь <strong>25к+</strong> людей из <strong>400к</strong></p><p>Получить её достаточно просто, но, займёт немного времени для деплоев, зато всё бесплатно и понятно, особенно, когда есть гайд на русском языке. <strong>По этому я настоятельно рекомендую проделать эту активность, лишним точно не будет</strong></p><blockquote><p><em>Также повторюсь, знания в </em><strong><em>IT</em></strong><em> вам не потребуется, справиться каждый человек! Не пугайтесь вы этих цифр и букв)</em></p></blockquote><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Переходим по <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/deployment-to-testnet/deployment-to-testnet-exercise/"><strong>ссылке</strong></a> и коннектим <strong>EVM</strong> кошелек</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5db9047a3f391f8cfc3b27071a35c1397a6d9439ba9e9dae94f7c1bf68d54432.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Добавиться сеть <strong>Base Sepolia</strong> — добавляем</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/931e2f161872de46e0fb6d35d53ba8304f633a6cdbdfed3e71930b3ba6f6ee00.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее идём к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.alchemy.com/faucets/base-sepolia"><strong>крану</strong></a> и запрашиваем тестовые <strong>$ETH</strong> в сети <strong>Base Sepolia</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/de3995fd2a6b7bf21ed0436ea047a2ee350f3ecce2604fccbf60bef72872ce45.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://remix.ethereum.org/#lang=en&amp;optimize=false&amp;runs=200&amp;evmVersion=null"><strong>Remix</strong></a> и сбрасываем <strong>куки</strong></p></li><li><p>Слева тыкаем значок <strong>двух папок</strong> — далее снизу на папку <strong>contracts</strong> — теперь тыкаем на <strong>2_Owner.sol</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/be93fdef000316956a90f182907cf549dc9bc03bf48acefcbc479f5e548251bf.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее слева тыкаем на <strong>значок</strong> и прожимаем <strong>синюю кнопку</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/510cb68df75bedabde1e15bfb585964394283a5666aa9704037ff975cb8e77ea.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее тыкаем на значок <strong>Ethereum</strong> — сверху выбираем <strong>EVM</strong> кошелек (<strong>Metamask или Rabby</strong>) — Коннектим кошелек</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/969cb18d68e09c6596e17d39ba5fdf07cfcb472221030ab05bf71d7de8e3a629.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Прожимаем кнопку <strong>Deploy</strong></p></li><li><p>Но за ранее в <strong>EVM</strong> кошельке поставьте <strong>Base Sepolia</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d152864d924b235603d400ba67cacce78ef6fedaf30da4557fb3a420a64bbe2f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подтверждаем транзакцию в сети <strong>Base Sepolia</strong></p></li></ul><blockquote><p><strong><em>Отлично!</em></strong> Теперь давайте сделаем еще один контракт</p></blockquote><ul><li><p>Тыкаем по <strong>значку папок</strong> — далее создаем файл — называем его <strong>BasicMath</strong>— тыкаем на него</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7926eb94cd6701ece005246423025f204f9db1f502b0adf0d2dcb857c230f2a0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Справа откроется консолька, вписываем туда вот это:</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract BasicMath {
    uint256 constant MAX_INT = type(uint256).max;    function adder(uint256 _a, uint256 _b) external pure returns (uint256 sum, bool error) {
        if (_b &gt; MAX_INT - _a) {
            return (0, true); // Overflow occurred
        }
        return (_a + _b, false);
    }    function subtractor(uint256 _a, uint256 _b) external pure returns (uint256 difference, bool error) {
        if (_b &gt; _a) {
            return (0, true); // Underflow occurred
        }
        return (_a - _b, false);
    }
}//CHASE
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.0;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">BasicMath</span> </span>{
    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">constant</span> MAX_INT <span class="hljs-operator">=</span> <span class="hljs-keyword">type</span>(<span class="hljs-keyword">uint256</span>).<span class="hljs-built_in">max</span>;    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">adder</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _a, <span class="hljs-keyword">uint256</span> _b</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint256</span> sum, <span class="hljs-keyword">bool</span> <span class="hljs-keyword">error</span></span>) </span>{
        <span class="hljs-keyword">if</span> (_b <span class="hljs-operator">></span> MAX_INT <span class="hljs-operator">-</span> _a) {
            <span class="hljs-keyword">return</span> (<span class="hljs-number">0</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">// Overflow occurred</span>
        }
        <span class="hljs-keyword">return</span> (_a <span class="hljs-operator">+</span> _b, <span class="hljs-literal">false</span>);
    }    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">subtractor</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _a, <span class="hljs-keyword">uint256</span> _b</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint256</span> difference, <span class="hljs-keyword">bool</span> <span class="hljs-keyword">error</span></span>) </span>{
        <span class="hljs-keyword">if</span> (_b <span class="hljs-operator">></span> _a) {
            <span class="hljs-keyword">return</span> (<span class="hljs-number">0</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">// Underflow occurred</span>
        }
        <span class="hljs-keyword">return</span> (_a <span class="hljs-operator">-</span> _b, <span class="hljs-literal">false</span>);
    }
}<span class="hljs-comment">//CHASE</span>
</code></pre><ul><li><p>Далее тыкаем слева на значок и прожимаем синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4ada1f056b4334ab35054b4634cb004b4d57c7748996f8f835477aee94a5a80c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем <strong>Deploy</strong></p></li><li><p>Подтверждаем транзакцию в <strong>EVM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/13eac5244f6889d9029efaf073ac83c4e63a71ebd7041cbfe9a628d69684fc2d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>После успешного развертывания контракта перейдите на левую боковую панель и прокрутите вниз, чтобы просмотреть код контракта <strong>BaseToken</strong></p></li><li><p>Копируем адрес</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2e1d8d7a8d57dd8f0dc89975476cb3c405c755fee8df7af423959b03a6885975.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/deployment-to-testnet/deployment-to-testnet-exercise/"><strong>страничку разработчика</strong></a> и вставляем этот адрес — тыкаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c6e9a9da9a278c73acbb8820be880319e16e1ce2262618dc4fc6862bf58eb74.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отлично! Вот должно получиться что то тип такого (<strong>как скрине</strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/50a87d61815243bc33c85fdaa539992bcd8e0da7276a992ad3a1dd25d9625986.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Осталось осталось сделать 13 контрактов, и процесс будет аналогичным</em></p></blockquote><ul><li><p>Слева тыкаем значок <strong>двух папок</strong> — далее снизу на папку <strong>contracts</strong> — создаем файл <strong>ControlStructures — тыкаем на него</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6f7b29e03326a6bff561ec5a881ba2242553c82ef1329f07cc9dca87560776cc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Вставляем этот текст в пустую консольку справа</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

contract ControlStructures {
    // Define custom errors for use within the contract
    error AfterHours(uint256 time);
    error AtLunch();    // Function to determine the response based on the input number
    function fizzBuzz(uint256 _number) public pure returns (string memory response) {
        // Check if the number is divisible by both 3 and 5
        if (_number % 3 == 0 &amp;&amp; _number % 5 == 0) {
            return &quot;FizzBuzz&quot;; // Return &quot;FizzBuzz&quot; if divisible by both 3 and 5
        } 
        // Check if the number is divisible by 3
        else if (_number % 3 == 0) {
            return &quot;Fizz&quot;; // Return &quot;Fizz&quot; if divisible by 3
        } 
        // Check if the number is divisible by 5
        else if (_number % 5 == 0) {
            return &quot;Buzz&quot;; // Return &quot;Buzz&quot; if divisible by 5
        } 
        // If none of the above conditions are met
        else {
            return &quot;Splat&quot;; // Return &quot;Splat&quot; if none of the conditions are met
        }
    }    // Function to determine the response based on the input time
    function doNotDisturb(uint256 _time) public pure returns (string memory result) {
        // Ensure the input time is within valid bounds (less than 2400)
        assert(_time &lt; 2400);        // Check different time ranges and return appropriate responses or revert with errors
        if (_time &gt; 2200 || _time &lt; 800) {
            revert AfterHours(_time); // Revert with custom error if it&apos;s after 10:00 PM or before 8:00 AM
        } 
        else if (_time &gt;= 1200 &amp;&amp; _time &lt;= 1299) {
            revert AtLunch(); // Revert with custom error if it&apos;s between 12:00 PM and 1:00 PM
        } 
        else if (_time &gt;= 800 &amp;&amp; _time &lt;= 1199) {
            return &quot;Morning!&quot;; // Return &quot;Morning!&quot; if it&apos;s between 8:00 AM and 11:59 AM
        } 
        else if (_time &gt;= 1300 &amp;&amp; _time &lt;= 1799) {
            return &quot;Afternoon!&quot;; // Return &quot;Afternoon!&quot; if it&apos;s between 1:00 PM and 5:59 PM
        } 
        else if (_time &gt;= 1800 &amp;&amp; _time &lt;= 2200) {
            return &quot;Evening!&quot;; // Return &quot;Evening!&quot; if it&apos;s between 6:00 PM and 10:00 PM
        }
    }
}//CHASE
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> 0.8.17;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">ControlStructures</span> </span>{
    <span class="hljs-comment">// Define custom errors for use within the contract</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AfterHours</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> time</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AtLunch</span>(<span class="hljs-params"></span>)</span>;    <span class="hljs-comment">// Function to determine the response based on the input number</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fizzBuzz</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _number</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> response</span>) </span>{
        <span class="hljs-comment">// Check if the number is divisible by both 3 and 5</span>
        <span class="hljs-keyword">if</span> (_number <span class="hljs-operator">%</span> <span class="hljs-number">3</span> <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> _number <span class="hljs-operator">%</span> <span class="hljs-number">5</span> <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"FizzBuzz"</span>; <span class="hljs-comment">// Return "FizzBuzz" if divisible by both 3 and 5</span>
        } 
        <span class="hljs-comment">// Check if the number is divisible by 3</span>
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_number <span class="hljs-operator">%</span> <span class="hljs-number">3</span> <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"Fizz"</span>; <span class="hljs-comment">// Return "Fizz" if divisible by 3</span>
        } 
        <span class="hljs-comment">// Check if the number is divisible by 5</span>
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_number <span class="hljs-operator">%</span> <span class="hljs-number">5</span> <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"Buzz"</span>; <span class="hljs-comment">// Return "Buzz" if divisible by 5</span>
        } 
        <span class="hljs-comment">// If none of the above conditions are met</span>
        <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"Splat"</span>; <span class="hljs-comment">// Return "Splat" if none of the conditions are met</span>
        }
    }    <span class="hljs-comment">// Function to determine the response based on the input time</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">doNotDisturb</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _time</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> result</span>) </span>{
        <span class="hljs-comment">// Ensure the input time is within valid bounds (less than 2400)</span>
        <span class="hljs-built_in">assert</span>(_time <span class="hljs-operator">&#x3C;</span> <span class="hljs-number">2400</span>);        <span class="hljs-comment">// Check different time ranges and return appropriate responses or revert with errors</span>
        <span class="hljs-keyword">if</span> (_time <span class="hljs-operator">></span> <span class="hljs-number">2200</span> <span class="hljs-operator">|</span><span class="hljs-operator">|</span> _time <span class="hljs-operator">&#x3C;</span> <span class="hljs-number">800</span>) {
            <span class="hljs-keyword">revert</span> AfterHours(_time); <span class="hljs-comment">// Revert with custom error if it's after 10:00 PM or before 8:00 AM</span>
        } 
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_time <span class="hljs-operator">></span><span class="hljs-operator">=</span> <span class="hljs-number">1200</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> _time <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> <span class="hljs-number">1299</span>) {
            <span class="hljs-keyword">revert</span> AtLunch(); <span class="hljs-comment">// Revert with custom error if it's between 12:00 PM and 1:00 PM</span>
        } 
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_time <span class="hljs-operator">></span><span class="hljs-operator">=</span> <span class="hljs-number">800</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> _time <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> <span class="hljs-number">1199</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"Morning!"</span>; <span class="hljs-comment">// Return "Morning!" if it's between 8:00 AM and 11:59 AM</span>
        } 
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_time <span class="hljs-operator">></span><span class="hljs-operator">=</span> <span class="hljs-number">1300</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> _time <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> <span class="hljs-number">1799</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"Afternoon!"</span>; <span class="hljs-comment">// Return "Afternoon!" if it's between 1:00 PM and 5:59 PM</span>
        } 
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_time <span class="hljs-operator">></span><span class="hljs-operator">=</span> <span class="hljs-number">1800</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> _time <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> <span class="hljs-number">2200</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">"Evening!"</span>; <span class="hljs-comment">// Return "Evening!" if it's between 6:00 PM and 10:00 PM</span>
        }
    }
}<span class="hljs-comment">//CHASE</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9f57b36f89f3b98f076344cc78db4f3032f01d365024135e07aedb7d840d0f2d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем все тоже самое, что и делали ранее</p></li><li><p>Приложу скрины</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/61d282aa3e68f0eb177709196aea7b2ec5ea85f26e3be3fcba24d73cb0371585.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bc6c2150ce381e09a0b0d9fb97141c5a9c87617d86297c1c2654b90251fe0676.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем контракт</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/641f9779d2e2a6d01d19a38003c55cc8c25ce54f1771c0f12ebc7c8eee3797b4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/control-structures/control-structures-exercise"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li><li><p>Должно быть <strong>2 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c6189777b00a7ce014c9413f059d066eac3e50fd68ce2c1353302a4cbe751939.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Продолжаем! Создаем новый файл <strong>Storage</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f1b414ff462879ab2f6f8c4fead4ca87394cb16c92a369ac4d7bbd88454d4c51.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract EmployeeStorage {
    // Declare private state variables to store employee data
    uint16 private shares; // Number of shares owned by the employee (private to contract)
    uint32 private salary; // Monthly salary of the employee (private to contract)
    uint256 public idNumber; // Unique identification number of the employee (publicly accessible)
    string public name; // Name of the employee (publicly accessible)    // Constructor to initialize employee data when contract is deployed
    constructor(uint16 _shares, string memory _name, uint32 _salary, uint _idNumber) {
        shares = _shares; // Initialize shares
        name = _name; // Initialize name
        salary = _salary; // Initialize salary
        idNumber = _idNumber; // Initialize idNumber
    }    // View function to retrieve the number of shares owned by the employee
    function viewShares() public view returns (uint16) {
        return shares;
    }
    
    // View function to retrieve the monthly salary of the employee
    function viewSalary() public view returns (uint32) {
        return salary;
    }    // Custom error declaration
    error TooManyShares(uint16 _shares);
    
    // Function to grant additional shares to the employee
    function grantShares(uint16 _newShares) public {
        // Check if the requested shares exceed the limit
        if (_newShares &gt; 5000) {
            revert(&quot;Too many shares&quot;); // Revert with error message
        } else if (shares + _newShares &gt; 5000) {
            revert TooManyShares(shares + _newShares); // Revert with custom error message
        }
        shares += _newShares; // Grant the new shares
    }    // Function used for testing packing of storage variables (not relevant to main functionality)
    function checkForPacking(uint _slot) public view returns (uint r) {
        assembly {
            r := sload (_slot)
        }
    }    // Function to reset shares for debugging purposes (not relevant to main functionality)
    function debugResetShares() public {
        shares = 1000; // Reset shares to 1000
    }
}//CHASE
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">EmployeeStorage</span> </span>{
    <span class="hljs-comment">// Declare private state variables to store employee data</span>
    <span class="hljs-keyword">uint16</span> <span class="hljs-keyword">private</span> shares; <span class="hljs-comment">// Number of shares owned by the employee (private to contract)</span>
    <span class="hljs-keyword">uint32</span> <span class="hljs-keyword">private</span> salary; <span class="hljs-comment">// Monthly salary of the employee (private to contract)</span>
    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> idNumber; <span class="hljs-comment">// Unique identification number of the employee (publicly accessible)</span>
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">public</span> name; <span class="hljs-comment">// Name of the employee (publicly accessible)    // Constructor to initialize employee data when contract is deployed</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">uint16</span> _shares, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _name, <span class="hljs-keyword">uint32</span> _salary, <span class="hljs-keyword">uint</span> _idNumber</span>) </span>{
        shares <span class="hljs-operator">=</span> _shares; <span class="hljs-comment">// Initialize shares</span>
        name <span class="hljs-operator">=</span> _name; <span class="hljs-comment">// Initialize name</span>
        salary <span class="hljs-operator">=</span> _salary; <span class="hljs-comment">// Initialize salary</span>
        idNumber <span class="hljs-operator">=</span> _idNumber; <span class="hljs-comment">// Initialize idNumber</span>
    }    <span class="hljs-comment">// View function to retrieve the number of shares owned by the employee</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">viewShares</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint16</span></span>) </span>{
        <span class="hljs-keyword">return</span> shares;
    }
    
    <span class="hljs-comment">// View function to retrieve the monthly salary of the employee</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">viewSalary</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint32</span></span>) </span>{
        <span class="hljs-keyword">return</span> salary;
    }    <span class="hljs-comment">// Custom error declaration</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">TooManyShares</span>(<span class="hljs-params"><span class="hljs-keyword">uint16</span> _shares</span>)</span>;
    
    <span class="hljs-comment">// Function to grant additional shares to the employee</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">grantShares</span>(<span class="hljs-params"><span class="hljs-keyword">uint16</span> _newShares</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Check if the requested shares exceed the limit</span>
        <span class="hljs-keyword">if</span> (_newShares <span class="hljs-operator">></span> <span class="hljs-number">5000</span>) {
            <span class="hljs-keyword">revert</span>(<span class="hljs-string">"Too many shares"</span>); <span class="hljs-comment">// Revert with error message</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (shares <span class="hljs-operator">+</span> _newShares <span class="hljs-operator">></span> <span class="hljs-number">5000</span>) {
            <span class="hljs-keyword">revert</span> TooManyShares(shares <span class="hljs-operator">+</span> _newShares); <span class="hljs-comment">// Revert with custom error message</span>
        }
        shares <span class="hljs-operator">+</span><span class="hljs-operator">=</span> _newShares; <span class="hljs-comment">// Grant the new shares</span>
    }    <span class="hljs-comment">// Function used for testing packing of storage variables (not relevant to main functionality)</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">checkForPacking</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _slot</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> r</span>) </span>{
        <span class="hljs-keyword">assembly</span> {
            r <span class="hljs-operator">:=</span> <span class="hljs-built_in">sload</span> (_<span class="hljs-built_in">slot</span>)
        }
    }    <span class="hljs-comment">// Function to reset shares for debugging purposes (not relevant to main functionality)</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">debugResetShares</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        shares <span class="hljs-operator">=</span> <span class="hljs-number">1000</span>; <span class="hljs-comment">// Reset shares to 1000</span>
    }
}<span class="hljs-comment">//CHASE</span>
</code></pre><ul><li><p>Далее синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a2106bbf06cbde27cf87a21fb2267d95684ddfcefb7c51a571882f9d627dabc0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее выбираем <strong>EVM</strong> — и вписываем данные снизу</p></li><li><p><code>shares</code> - 1000</p></li><li><p><code>name</code> - Pat</p></li><li><p><code>salary</code> - 50000</p></li><li><p><code>idNumber</code> - 112358132134</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4b8cff2da6f8fcf7c4ee476f092a8f69ee6ac80f9fb86185c6962831197423e2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем деплой</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/988fd7c4ce4b1c3a215fdc1b1591f2c9251bc4b657dd573281b2c984fa8a3cca.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/storage/storage-exercise"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c0175d385509ab6c0fb4d3ccce0d64868f18fb4a087efe9f5a1d7acfdcfbaaeb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>4 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0de67587a14dc9e72279020917915d8754f87a43fcf4bdb86b1b13a1fe193483.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее создаем файл <strong>Arrays</strong></p></li><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract ArraysExercise {
    // Declare state variables to store arrays of numbers, timestamps, and senders
    uint[] numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Array of numbers initialized with values
    uint[] timestamps; // Dynamic array to store timestamps
    address[] senders; // Dynamic array to store sender addresses

    uint256 constant Y2K = 946702800; // Constant representing the Unix timestamp for the year 2000

    // Function to retrieve the array of numbers
    function getNumbers() external view returns (uint[] memory) {
        // Create a memory array to hold the numbers
        uint[] memory results = new uintUnsupported embed;

        // Copy the numbers from the state array to the memory array
        for(uint i=0; i&lt;numbers.length; i++) {
            results[i] = numbers[i];
        }

        // Return the memory array
        return results;
    }

    // Function to reset the numbers array to its initial values
    function resetNumbers() public {
        numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    }

    // Function to append new numbers to the numbers array
    function appendToNumbers(uint[] calldata _toAppend) public {
        // Iterate through the array to be appended
        for (uint i = 0; i &lt; _toAppend.length; i++) {
            // Push each element of the array to be appended to the numbers array
            numbers.push(_toAppend[i]);
        }
    }

    // Function to save a timestamp along with the sender&apos;s address
    function saveTimestamp(uint _unixTimestamp) public {
        // Push the timestamp and sender&apos;s address to their respective arrays
        timestamps.push(_unixTimestamp);
        senders.push(msg.sender);
    }

    // Function to retrieve timestamps and senders after the year 2000
    function afterY2K() public view returns (uint256[] memory, address[] memory) {
        // Initialize counter for timestamps after Y2K
        uint256 counter = 0;

        // Count the number of timestamps after Y2K
        for (uint i = 0; i &lt; timestamps.length; i++) {
            if (timestamps[i] &gt; Y2K) {
                counter++;
            }
        }

        // Initialize memory arrays to hold timestamps and senders after Y2K
        uint256[] memory timestampsAfterY2K = new uint256Unsupported embed;
        address[] memory sendersAfterY2K = new addressUnsupported embed;

        // Initialize index for inserting elements into memory arrays
        uint256 index = 0;

        // Iterate through timestamps and senders arrays to extract elements after Y2K
        for (uint i = 0; i &lt; timestamps.length; i++) {
            if (timestamps[i] &gt; Y2K) {
                timestampsAfterY2K[index] = timestamps[i];
                sendersAfterY2K[index] = senders[i];
                index++;
            }
        }

        // Return timestamps and senders after Y2K
        return (timestampsAfterY2K, sendersAfterY2K);
    }

    // Function to reset the senders array
    function resetSenders() public {
        delete senders;
    }

    // Function to reset the timestamps array
    function resetTimestamps() public {
        delete timestamps;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">ArraysExercise</span> </span>{
    <span class="hljs-comment">// Declare state variables to store arrays of numbers, timestamps, and senders</span>
    <span class="hljs-keyword">uint</span>[] numbers <span class="hljs-operator">=</span> [<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>, <span class="hljs-number">9</span>, <span class="hljs-number">10</span>]; <span class="hljs-comment">// Array of numbers initialized with values</span>
    <span class="hljs-keyword">uint</span>[] timestamps; <span class="hljs-comment">// Dynamic array to store timestamps</span>
    <span class="hljs-keyword">address</span>[] senders; <span class="hljs-comment">// Dynamic array to store sender addresses</span>

    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">constant</span> Y2K <span class="hljs-operator">=</span> <span class="hljs-number">946702800</span>; <span class="hljs-comment">// Constant representing the Unix timestamp for the year 2000</span>

    <span class="hljs-comment">// Function to retrieve the array of numbers</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getNumbers</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Create a memory array to hold the numbers</span>
        <span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">memory</span> results <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> uintUnsupported embed;

        <span class="hljs-comment">// Copy the numbers from the state array to the memory array</span>
        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">uint</span> i<span class="hljs-operator">=</span><span class="hljs-number">0</span>; i<span class="hljs-operator">&#x3C;</span>numbers.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            results[i] <span class="hljs-operator">=</span> numbers[i];
        }

        <span class="hljs-comment">// Return the memory array</span>
        <span class="hljs-keyword">return</span> results;
    }

    <span class="hljs-comment">// Function to reset the numbers array to its initial values</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetNumbers</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        numbers <span class="hljs-operator">=</span> [<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>, <span class="hljs-number">9</span>, <span class="hljs-number">10</span>];
    }

    <span class="hljs-comment">// Function to append new numbers to the numbers array</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">appendToNumbers</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">calldata</span> _toAppend</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Iterate through the array to be appended</span>
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> _toAppend.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-comment">// Push each element of the array to be appended to the numbers array</span>
            numbers.<span class="hljs-built_in">push</span>(_toAppend[i]);
        }
    }

    <span class="hljs-comment">// Function to save a timestamp along with the sender's address</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">saveTimestamp</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _unixTimestamp</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Push the timestamp and sender's address to their respective arrays</span>
        timestamps.<span class="hljs-built_in">push</span>(_unixTimestamp);
        senders.<span class="hljs-built_in">push</span>(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>);
    }

    <span class="hljs-comment">// Function to retrieve timestamps and senders after the year 2000</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">afterY2K</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint256</span>[] <span class="hljs-keyword">memory</span>, <span class="hljs-keyword">address</span>[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Initialize counter for timestamps after Y2K</span>
        <span class="hljs-keyword">uint256</span> counter <span class="hljs-operator">=</span> <span class="hljs-number">0</span>;

        <span class="hljs-comment">// Count the number of timestamps after Y2K</span>
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> timestamps.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-keyword">if</span> (timestamps[i] <span class="hljs-operator">></span> Y2K) {
                counter<span class="hljs-operator">+</span><span class="hljs-operator">+</span>;
            }
        }

        <span class="hljs-comment">// Initialize memory arrays to hold timestamps and senders after Y2K</span>
        <span class="hljs-keyword">uint256</span>[] <span class="hljs-keyword">memory</span> timestampsAfterY2K <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> uint256Unsupported embed;
        <span class="hljs-keyword">address</span>[] <span class="hljs-keyword">memory</span> sendersAfterY2K <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> addressUnsupported embed;

        <span class="hljs-comment">// Initialize index for inserting elements into memory arrays</span>
        <span class="hljs-keyword">uint256</span> index <span class="hljs-operator">=</span> <span class="hljs-number">0</span>;

        <span class="hljs-comment">// Iterate through timestamps and senders arrays to extract elements after Y2K</span>
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> timestamps.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-keyword">if</span> (timestamps[i] <span class="hljs-operator">></span> Y2K) {
                timestampsAfterY2K[index] <span class="hljs-operator">=</span> timestamps[i];
                sendersAfterY2K[index] <span class="hljs-operator">=</span> senders[i];
                index<span class="hljs-operator">+</span><span class="hljs-operator">+</span>;
            }
        }

        <span class="hljs-comment">// Return timestamps and senders after Y2K</span>
        <span class="hljs-keyword">return</span> (timestampsAfterY2K, sendersAfterY2K);
    }

    <span class="hljs-comment">// Function to reset the senders array</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetSenders</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-keyword">delete</span> senders;
    }

    <span class="hljs-comment">// Function to reset the timestamps array</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetTimestamps</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-keyword">delete</span> timestamps;
    }
}
</code></pre><ul><li><p>Тыкаем на синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b53705979f970e700b5a776076a01856ecf8e672e9449f49fc4c442cefefaa0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fd22ea0b31452e3074a8857c55979871f5ab70debeff6d59c8168264694f511c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем контракт</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/02a45a236ae91e8dbffd3cfd80f095f472ed4c2b39708a75c8db0ecbb95f0d98.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/storage/storage-exercise"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/813d77ad239cfd1698bfc204ea36b2240f95a3ad17ea6fe68b64dc1e61e46cc4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>2 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1de779af993a5310704ca052de27cc72ba8aeaa2b15b1c8f410c52dbf48a2b4a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>Mapping</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3a67a819d502081019cde0c2a555a5f3c1c666e72275c3901df7c42f9cdf1047.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/**
 * @title FavoriteRecords
 * @dev Contract to manage a list of approved music records and allow users to add them to their favorites
 */
contract FavoriteRecords {
    // Mapping to store whether a record is approved
    mapping(string =&gt; bool) private approvedRecords;
    // Array to store the index of approved records
    string[] private approvedRecordsIndex;

    // Mapping to store user&apos;s favorite records
    mapping(address =&gt; mapping(string =&gt; bool)) public userFavorites;
    // Mapping to store the index of user&apos;s favorite records
    mapping(address =&gt; string[]) private userFavoritesIndex;

    // Custom error to handle unapproved records
    error NotApproved(string albumName);

    /**
     * @dev Constructor that initializes the approved records list
     */
    constructor() {
        // Predefined list of approved records
        approvedRecordsIndex = [
            &quot;Thriller&quot;, 
            &quot;Back in Black&quot;, 
            &quot;The Bodyguard&quot;, 
            &quot;The Dark Side of the Moon&quot;, 
            &quot;Their Greatest Hits (1971-1975)&quot;, 
            &quot;Hotel California&quot;, 
            &quot;Come On Over&quot;, 
            &quot;Rumours&quot;, 
            &quot;Saturday Night Fever&quot;
        ];
        // Initialize the approved records mapping
        for (uint i = 0; i &lt; approvedRecordsIndex.length; i++) {
            approvedRecords[approvedRecordsIndex[i]] = true;
        }
    }

    /**
     * @dev Returns the list of approved records
     * @return An array of approved record names
     */
    function getApprovedRecords() public view returns (string[] memory) {
        return approvedRecordsIndex;
    }

    /**
     * @dev Adds an approved record to the user&apos;s favorites
     * @param _albumName The name of the album to be added
     */
    function addRecord(string memory _albumName) public {
        // Check if the record is approved
        if (!approvedRecords[_albumName]) {
            revert NotApproved({albumName: _albumName});
        }
        // Check if the record is not already in the user&apos;s favorites
        if (!userFavorites[msg.sender][_albumName]) {
            // Add the record to the user&apos;s favorites
            userFavorites[msg.sender][_albumName] = true;
            // Add the record to the user&apos;s favorites index
            userFavoritesIndex[msg.sender].push(_albumName);
        }
    }

    /**
     * @dev Returns the list of a user&apos;s favorite records
     * @param _address The address of the user
     * @return An array of user&apos;s favorite record names
     */
    function getUserFavorites(address _address) public view returns (string[] memory) {
        return userFavoritesIndex[_address];
    }

    /**
     * @dev Resets the caller&apos;s list of favorite records
     */
    function resetUserFavorites() public {
        // Iterate through the user&apos;s favorite records
        for (uint i = 0; i &lt; userFavoritesIndex[msg.sender].length; i++) {
            // Delete each record from the user&apos;s favorites mapping
            delete userFavorites[msg.sender][userFavoritesIndex[msg.sender][i]];
        }
        // Delete the user&apos;s favorites index
        delete userFavoritesIndex[msg.sender];
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-comment">/**
 * @title FavoriteRecords
 * @dev Contract to manage a list of approved music records and allow users to add them to their favorites
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">FavoriteRecords</span> </span>{
    <span class="hljs-comment">// Mapping to store whether a record is approved</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">string</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">bool</span>) <span class="hljs-keyword">private</span> approvedRecords;
    <span class="hljs-comment">// Array to store the index of approved records</span>
    <span class="hljs-keyword">string</span>[] <span class="hljs-keyword">private</span> approvedRecordsIndex;

    <span class="hljs-comment">// Mapping to store user's favorite records</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">string</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">bool</span>)) <span class="hljs-keyword">public</span> userFavorites;
    <span class="hljs-comment">// Mapping to store the index of user's favorite records</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">string</span>[]) <span class="hljs-keyword">private</span> userFavoritesIndex;

    <span class="hljs-comment">// Custom error to handle unapproved records</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">NotApproved</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> albumName</span>)</span>;

    <span class="hljs-comment">/**
     * @dev Constructor that initializes the approved records list
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"></span>) </span>{
        <span class="hljs-comment">// Predefined list of approved records</span>
        approvedRecordsIndex <span class="hljs-operator">=</span> [
            <span class="hljs-string">"Thriller"</span>, 
            <span class="hljs-string">"Back in Black"</span>, 
            <span class="hljs-string">"The Bodyguard"</span>, 
            <span class="hljs-string">"The Dark Side of the Moon"</span>, 
            <span class="hljs-string">"Their Greatest Hits (1971-1975)"</span>, 
            <span class="hljs-string">"Hotel California"</span>, 
            <span class="hljs-string">"Come On Over"</span>, 
            <span class="hljs-string">"Rumours"</span>, 
            <span class="hljs-string">"Saturday Night Fever"</span>
        ];
        <span class="hljs-comment">// Initialize the approved records mapping</span>
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> approvedRecordsIndex.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            approvedRecords[approvedRecordsIndex[i]] <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>;
        }
    }

    <span class="hljs-comment">/**
     * @dev Returns the list of approved records
     * @return An array of approved record names
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getApprovedRecords</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">string</span>[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-keyword">return</span> approvedRecordsIndex;
    }

    <span class="hljs-comment">/**
     * @dev Adds an approved record to the user's favorites
     * @param _albumName The name of the album to be added
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addRecord</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _albumName</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Check if the record is approved</span>
        <span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>approvedRecords[_albumName]) {
            <span class="hljs-keyword">revert</span> NotApproved({albumName: _albumName});
        }
        <span class="hljs-comment">// Check if the record is not already in the user's favorites</span>
        <span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>userFavorites[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][_albumName]) {
            <span class="hljs-comment">// Add the record to the user's favorites</span>
            userFavorites[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][_albumName] <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>;
            <span class="hljs-comment">// Add the record to the user's favorites index</span>
            userFavoritesIndex[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>].<span class="hljs-built_in">push</span>(_albumName);
        }
    }

    <span class="hljs-comment">/**
     * @dev Returns the list of a user's favorite records
     * @param _address The address of the user
     * @return An array of user's favorite record names
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getUserFavorites</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _address</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">string</span>[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-keyword">return</span> userFavoritesIndex[_address];
    }

    <span class="hljs-comment">/**
     * @dev Resets the caller's list of favorite records
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetUserFavorites</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Iterate through the user's favorite records</span>
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> userFavoritesIndex[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>].<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-comment">// Delete each record from the user's favorites mapping</span>
            <span class="hljs-keyword">delete</span> userFavorites[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][userFavoritesIndex[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][i]];
        }
        <span class="hljs-comment">// Delete the user's favorites index</span>
        <span class="hljs-keyword">delete</span> userFavoritesIndex[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>];
    }
}
</code></pre><ul><li><p>Тыкаем на синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e6fa3147989b6cb6fa87d42f97c58a83deb908e123528f460c7d3e9f3c7bb6d1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1f2ad55708d2bdce48f07a620e3ea9e51dcc31568277993f4a11c8584c236bb1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/02c26ac23ac48e99c5e9e6307aecd9124924f6ad8f3b8bf4c6ce1818ba31f852.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/mappings/mappings-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f3fdfb282dd93d6a3973fe3305e56420cc8e7c28e58c68fdabd491db77999d8e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>2 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/87b2f6b987d2e8b4c5c0912687d603f360eea27eb6fac5f293192077ed6ec437.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>Structs</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/88b9fbd9a84431d9310938d2e50180ed55cac56961a0187b5586de8105019c03.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/**
 * @title GarageManager
 * @dev Contract to manage a garage of cars for each user
 */
contract GarageManager {
    // Mapping to store the garage of cars for each user
    mapping(address =&gt; Car[]) private garages;

    // Struct to represent a car
    struct Car {
        string make; // Make of the car
        string model; // Model of the car
        string color; // Color of the car
        uint numberOfDoors; // Number of doors of the car
    }

    // Custom error for handling invalid car index
    error BadCarIndex(uint256 index);

    /**
     * @dev Adds a new car to the caller&apos;s garage
     * @param _make The make of the car
     * @param _model The model of the car
     * @param _color The color of the car
     * @param _numberOfDoors The number of doors of the car
     */
    function addCar(string memory _make, string memory _model, string memory _color, uint _numberOfDoors) external {
        // Push a new car struct with the provided details to the caller&apos;s garage
        garages[msg.sender].push(Car(_make, _model, _color, _numberOfDoors));
    }

    /**
     * @dev Retrieves the caller&apos;s array of cars
     * @return An array of `Car` structs
     */
    function getMyCars() external view returns (Car[] memory) {
        // Return the array of cars stored in the caller&apos;s garage
        return garages[msg.sender];
    }

    /**
     * @dev Retrieves a specific user&apos;s array of cars
     * @param _user The address of the user
     * @return An array of `Car` structs
     */
    function getUserCars(address _user) external view returns (Car[] memory) {
        // Return the array of cars stored in the garage of the specified user
        return garages[_user];
    }

    /**
     * @dev Updates a specific car in the caller&apos;s garage
     * @param _index The index of the car in the garage array
     * @param _make The new make of the car
     * @param _model The new model of the car
     * @param _color The new color of the car
     * @param _numberOfDoors The new number of doors of the car
     */
    function updateCar(uint256 _index, string memory _make, string memory _model, string memory _color, uint _numberOfDoors) external {
        // Check if the provided index is valid
        if (_index &gt;= garages[msg.sender].length) {
            revert BadCarIndex({index: _index}); // Revert with custom error if the index is invalid
        }
        // Update the specified car with the new details
        garages[msg.sender][_index] = Car(_make, _model, _color, _numberOfDoors);
    }

    /**
     * @dev Deletes all cars in the caller&apos;s garage
     */
    function resetMyGarage() external {
        // Delete all cars from the caller&apos;s garage
        delete garages[msg.sender];
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-comment">/**
 * @title GarageManager
 * @dev Contract to manage a garage of cars for each user
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">GarageManager</span> </span>{
    <span class="hljs-comment">// Mapping to store the garage of cars for each user</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> Car[]) <span class="hljs-keyword">private</span> garages;

    <span class="hljs-comment">// Struct to represent a car</span>
    <span class="hljs-keyword">struct</span> <span class="hljs-title">Car</span> {
        <span class="hljs-keyword">string</span> make; <span class="hljs-comment">// Make of the car</span>
        <span class="hljs-keyword">string</span> model; <span class="hljs-comment">// Model of the car</span>
        <span class="hljs-keyword">string</span> color; <span class="hljs-comment">// Color of the car</span>
        <span class="hljs-keyword">uint</span> numberOfDoors; <span class="hljs-comment">// Number of doors of the car</span>
    }

    <span class="hljs-comment">// Custom error for handling invalid car index</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">BadCarIndex</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> index</span>)</span>;

    <span class="hljs-comment">/**
     * @dev Adds a new car to the caller's garage
     * @param _make The make of the car
     * @param _model The model of the car
     * @param _color The color of the car
     * @param _numberOfDoors The number of doors of the car
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addCar</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _make, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _model, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _color, <span class="hljs-keyword">uint</span> _numberOfDoors</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> </span>{
        <span class="hljs-comment">// Push a new car struct with the provided details to the caller's garage</span>
        garages[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>].<span class="hljs-built_in">push</span>(Car(_make, _model, _color, _numberOfDoors));
    }

    <span class="hljs-comment">/**
     * @dev Retrieves the caller's array of cars
     * @return An array of `Car` structs
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getMyCars</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">Car[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Return the array of cars stored in the caller's garage</span>
        <span class="hljs-keyword">return</span> garages[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>];
    }

    <span class="hljs-comment">/**
     * @dev Retrieves a specific user's array of cars
     * @param _user The address of the user
     * @return An array of `Car` structs
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getUserCars</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _user</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">Car[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Return the array of cars stored in the garage of the specified user</span>
        <span class="hljs-keyword">return</span> garages[_user];
    }

    <span class="hljs-comment">/**
     * @dev Updates a specific car in the caller's garage
     * @param _index The index of the car in the garage array
     * @param _make The new make of the car
     * @param _model The new model of the car
     * @param _color The new color of the car
     * @param _numberOfDoors The new number of doors of the car
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateCar</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _index, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _make, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _model, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _color, <span class="hljs-keyword">uint</span> _numberOfDoors</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> </span>{
        <span class="hljs-comment">// Check if the provided index is valid</span>
        <span class="hljs-keyword">if</span> (_index <span class="hljs-operator">></span><span class="hljs-operator">=</span> garages[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>].<span class="hljs-built_in">length</span>) {
            <span class="hljs-keyword">revert</span> BadCarIndex({index: _index}); <span class="hljs-comment">// Revert with custom error if the index is invalid</span>
        }
        <span class="hljs-comment">// Update the specified car with the new details</span>
        garages[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][_index] <span class="hljs-operator">=</span> Car(_make, _model, _color, _numberOfDoors);
    }

    <span class="hljs-comment">/**
     * @dev Deletes all cars in the caller's garage
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetMyGarage</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> </span>{
        <span class="hljs-comment">// Delete all cars from the caller's garage</span>
        <span class="hljs-keyword">delete</span> garages[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>];
    }
}
</code></pre><ul><li><p>Тыкаем на синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/30d1ffb4d2513e7eeec6e602759e8b539101f9363641027e21a5a9a978cf1ed5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c50a1df80daed92722a1bb107277d86700fffc87d4c8675a7e4f56ff59ca829.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/726dc146110db044f73d6704de44ceb499ceaa472e0df557c2268a47c2d19bc2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/structs/structs-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8cc732d6d7b2d205638e304ae6309d432724dcd3bd23f048367ca590227108f5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть 1 <strong>галочка (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/69b29d9f8e2e18d858f3f11f177fbfcfc7d6264f77af7ba47516648b12f4c318.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>Inheritance</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/feda1b5300c612d57ec471bd60b829ead4bd189899f3074737f764f626196395.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

/**
 * @title Employee
 * @dev Abstract contract defining common properties and behavior for employees.
 */
abstract contract Employee {
    uint public idNumber; // Unique identifier for the employee
    uint public managerId; // Identifier of the manager overseeing the employee

    /**
     * @dev Constructor to initialize idNumber and managerId.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     */
    constructor(uint _idNumber, uint _managerId) {
        idNumber = _idNumber;
        managerId = _managerId;
    }

    /**
     * @dev Abstract function to be implemented by derived contracts to get the annual cost of the employee.
     * @return The annual cost of the employee.
     */
    function getAnnualCost() public virtual returns (uint);
}

/**
 * @title Salaried
 * @dev Contract representing employees who are paid an annual salary.
 */
contract Salaried is Employee {
    uint public annualSalary; // The annual salary of the employee

    /**
     * @dev Constructor to initialize the Salaried contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _annualSalary The annual salary of the employee.
     */
    constructor(uint _idNumber, uint _managerId, uint _annualSalary) Employee(_idNumber, _managerId) {
        annualSalary = _annualSalary;
    }

    /**
     * @dev Overrides the getAnnualCost function to return the annual salary of the employee.
     * @return The annual salary of the employee.
     */
    function getAnnualCost() public override view returns (uint) {
        return annualSalary;
    }
}

/**
 * @title Hourly
 * @dev Contract representing employees who are paid an hourly rate.
 */
contract Hourly is Employee {
    uint public hourlyRate; // The hourly rate of the employee

    /**
     * @dev Constructor to initialize the Hourly contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _hourlyRate The hourly rate of the employee.
     */
    constructor(uint _idNumber, uint _managerId, uint _hourlyRate) Employee(_idNumber, _managerId) {
        hourlyRate = _hourlyRate;
    }

    /**
     * @dev Overrides the getAnnualCost function to calculate the annual cost based on the hourly rate.
     * Assuming a full-time workload of 2080 hours per year.
     * @return The annual cost of the employee.
     */
    function getAnnualCost() public override view returns (uint) {
        return hourlyRate * 2080;
    }
}

/**
 * @title Manager
 * @dev Contract managing a list of employee IDs.
 */
contract Manager {
    uint[] public employeeIds; // List of employee IDs

    /**
     * @dev Function to add a new employee ID to the list.
     * @param _reportId The ID of the employee to be added.
     */
    function addReport(uint _reportId) public {
        employeeIds.push(_reportId);
    }

    /**
     * @dev Function to reset the list of employee IDs.
     */
    function resetReports() public {
        delete employeeIds;
    }
}

/**
 * @title Salesperson
 * @dev Contract representing salespeople who are paid hourly.
 */
contract Salesperson is Hourly {
    /**
     * @dev Constructor to initialize the Salesperson contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _hourlyRate The hourly rate of the employee.
     */
    constructor(uint _idNumber, uint _managerId, uint _hourlyRate) 
        Hourly(_idNumber, _managerId, _hourlyRate) {}
}

/**
 * @title EngineeringManager
 * @dev Contract representing engineering managers who are paid an annual salary and have managerial responsibilities.
 */
contract EngineeringManager is Salaried, Manager {
    /**
     * @dev Constructor to initialize the EngineeringManager contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _annualSalary The annual salary of the employee.
     */
    constructor(uint _idNumber, uint _managerId, uint _annualSalary) 
        Salaried(_idNumber, _managerId, _annualSalary) {}
}

/**
 * @title InheritanceSubmission
 * @dev Contract for deploying instances of Salesperson and EngineeringManager.
 */
contract InheritanceSubmission {
    address public salesPerson; // Address of the deployed Salesperson instance
    address public engineeringManager; // Address of the deployed EngineeringManager instance

    /**
     * @dev Constructor to initialize the InheritanceSubmission contract.
     * @param _salesPerson Address of the deployed Salesperson instance.
     * @param _engineeringManager Address of the deployed EngineeringManager instance.
     */
    constructor(address _salesPerson, address _engineeringManager) {
        salesPerson = _salesPerson;
        engineeringManager = _engineeringManager;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>

<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> 0.8.17;</span>

<span class="hljs-comment">/**
 * @title Employee
 * @dev Abstract contract defining common properties and behavior for employees.
 */</span>
<span class="hljs-keyword">abstract</span> <span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Employee</span> </span>{
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">public</span> idNumber; <span class="hljs-comment">// Unique identifier for the employee</span>
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">public</span> managerId; <span class="hljs-comment">// Identifier of the manager overseeing the employee</span>

    <span class="hljs-comment">/**
     * @dev Constructor to initialize idNumber and managerId.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _idNumber, <span class="hljs-keyword">uint</span> _managerId</span>) </span>{
        idNumber <span class="hljs-operator">=</span> _idNumber;
        managerId <span class="hljs-operator">=</span> _managerId;
    }

    <span class="hljs-comment">/**
     * @dev Abstract function to be implemented by derived contracts to get the annual cost of the employee.
     * @return The annual cost of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getAnnualCost</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">virtual</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span></span>)</span>;
}

<span class="hljs-comment">/**
 * @title Salaried
 * @dev Contract representing employees who are paid an annual salary.
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Salaried</span> <span class="hljs-keyword">is</span> <span class="hljs-title">Employee</span> </span>{
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">public</span> annualSalary; <span class="hljs-comment">// The annual salary of the employee</span>

    <span class="hljs-comment">/**
     * @dev Constructor to initialize the Salaried contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _annualSalary The annual salary of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _idNumber, <span class="hljs-keyword">uint</span> _managerId, <span class="hljs-keyword">uint</span> _annualSalary</span>) <span class="hljs-title">Employee</span>(<span class="hljs-params">_idNumber, _managerId</span>) </span>{
        annualSalary <span class="hljs-operator">=</span> _annualSalary;
    }

    <span class="hljs-comment">/**
     * @dev Overrides the getAnnualCost function to return the annual salary of the employee.
     * @return The annual salary of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getAnnualCost</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">override</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span></span>) </span>{
        <span class="hljs-keyword">return</span> annualSalary;
    }
}

<span class="hljs-comment">/**
 * @title Hourly
 * @dev Contract representing employees who are paid an hourly rate.
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Hourly</span> <span class="hljs-keyword">is</span> <span class="hljs-title">Employee</span> </span>{
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">public</span> hourlyRate; <span class="hljs-comment">// The hourly rate of the employee</span>

    <span class="hljs-comment">/**
     * @dev Constructor to initialize the Hourly contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _hourlyRate The hourly rate of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _idNumber, <span class="hljs-keyword">uint</span> _managerId, <span class="hljs-keyword">uint</span> _hourlyRate</span>) <span class="hljs-title">Employee</span>(<span class="hljs-params">_idNumber, _managerId</span>) </span>{
        hourlyRate <span class="hljs-operator">=</span> _hourlyRate;
    }

    <span class="hljs-comment">/**
     * @dev Overrides the getAnnualCost function to calculate the annual cost based on the hourly rate.
     * Assuming a full-time workload of 2080 hours per year.
     * @return The annual cost of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getAnnualCost</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">override</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span></span>) </span>{
        <span class="hljs-keyword">return</span> hourlyRate <span class="hljs-operator">*</span> <span class="hljs-number">2080</span>;
    }
}

<span class="hljs-comment">/**
 * @title Manager
 * @dev Contract managing a list of employee IDs.
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Manager</span> </span>{
    <span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">public</span> employeeIds; <span class="hljs-comment">// List of employee IDs</span>

    <span class="hljs-comment">/**
     * @dev Function to add a new employee ID to the list.
     * @param _reportId The ID of the employee to be added.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addReport</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _reportId</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        employeeIds.<span class="hljs-built_in">push</span>(_reportId);
    }

    <span class="hljs-comment">/**
     * @dev Function to reset the list of employee IDs.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetReports</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-keyword">delete</span> employeeIds;
    }
}

<span class="hljs-comment">/**
 * @title Salesperson
 * @dev Contract representing salespeople who are paid hourly.
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Salesperson</span> <span class="hljs-keyword">is</span> <span class="hljs-title">Hourly</span> </span>{
    <span class="hljs-comment">/**
     * @dev Constructor to initialize the Salesperson contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _hourlyRate The hourly rate of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _idNumber, <span class="hljs-keyword">uint</span> _managerId, <span class="hljs-keyword">uint</span> _hourlyRate</span>) 
        <span class="hljs-title">Hourly</span>(<span class="hljs-params">_idNumber, _managerId, _hourlyRate</span>) </span>{}
}

<span class="hljs-comment">/**
 * @title EngineeringManager
 * @dev Contract representing engineering managers who are paid an annual salary and have managerial responsibilities.
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">EngineeringManager</span> <span class="hljs-keyword">is</span> <span class="hljs-title">Salaried</span>, <span class="hljs-title">Manager</span> </span>{
    <span class="hljs-comment">/**
     * @dev Constructor to initialize the EngineeringManager contract.
     * @param _idNumber The unique identifier for the employee.
     * @param _managerId The identifier of the manager overseeing the employee.
     * @param _annualSalary The annual salary of the employee.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _idNumber, <span class="hljs-keyword">uint</span> _managerId, <span class="hljs-keyword">uint</span> _annualSalary</span>) 
        <span class="hljs-title">Salaried</span>(<span class="hljs-params">_idNumber, _managerId, _annualSalary</span>) </span>{}
}

<span class="hljs-comment">/**
 * @title InheritanceSubmission
 * @dev Contract for deploying instances of Salesperson and EngineeringManager.
 */</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">InheritanceSubmission</span> </span>{
    <span class="hljs-keyword">address</span> <span class="hljs-keyword">public</span> salesPerson; <span class="hljs-comment">// Address of the deployed Salesperson instance</span>
    <span class="hljs-keyword">address</span> <span class="hljs-keyword">public</span> engineeringManager; <span class="hljs-comment">// Address of the deployed EngineeringManager instance</span>

    <span class="hljs-comment">/**
     * @dev Constructor to initialize the InheritanceSubmission contract.
     * @param _salesPerson Address of the deployed Salesperson instance.
     * @param _engineeringManager Address of the deployed EngineeringManager instance.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _salesPerson, <span class="hljs-keyword">address</span> _engineeringManager</span>) </span>{
        salesPerson <span class="hljs-operator">=</span> _salesPerson;
        engineeringManager <span class="hljs-operator">=</span> _engineeringManager;
    }
}
</code></pre><ul><li><p>Тыкаем на синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6d7847a2cb36061e94337758934ab31542c870af6756d74aa567380c90777dbc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее делаем деплой, но в <strong>Contract</strong> выбираем <strong>Salesperson</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/987796945c028679658f37d6015351a10fd3c466f2218c8f42991347e0d9c0c6.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Тыкаем на стрелочку и вписываем цифры — тыкаем на <strong>transact</strong> — подтверждаем транзакцию</p></li></ul><p>Id Number: <strong>55555</strong><br>Manager id: <strong>12345</strong><br>Salary: <strong>20</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ae2864a1a67c28d4e3061b2bbe8abf78a1570be9e1f812dbc25103b1ab2d8a20.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее снова выбираем <strong>Contract</strong> и тыкаем на <strong>EngineeringManager</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8b3b1b9756fe61b0adf9b83ab9aef10ce8dc5b0d5f976e9840ea7d622705b3e2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Вписываем эти данные</p></li></ul><p>Id Number: <strong>54321</strong><br>Manager id: <strong>11111</strong><br>Annual salary: <strong>200000</strong></p><ul><li><p>Тыкаем на стрелочку и вписываем цифры — тыкаем на <strong>transact</strong> — подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fa48847eb998c7d60e774a23e36153433fa7cbf4b74daa4f18ec3f75bfa0ba45.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее тыкаем на <strong>Contract</strong> выбираем <strong>InheritanceSubmission</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bdef051ebe07b4f88a57ba6e28a1cf24f5610fd93eb64732cd13b6dad71e163e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Спускаемся вниз и копируем 1. <strong>Salesperon</strong> контракт адрес; 2. <strong>EngineeringManager</strong> контракт адрес и вписываем их выше (<strong>как на скрине</strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/aca83d8f37020c7ddd57aee29602b0f9d7dc7c62b82daab0ef57b19c6a261e2f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Тыкаем <strong>transact</strong> и подтверждаем транзу</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9facfafaef394346d7606e85350a6994ce941572db28506ec56db685852be2a2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем <strong>Inheritance</strong> контракт адрес</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d13032925091f4ea4b67b240200d8bd71a4ae034e34ec1c6dde2c1f117a3c607.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/inheritance/inheritance-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d945caf68ce560fd186c6bd3e34ffb3fd2a175b4125d2db822929a8268449a2a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>4 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8b5536fe8ae5f22909f0eb66e76ea6c315b9894c9ca78216693a0a713f093eda.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем новый файл <strong>SillyStringUtils</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e37c4fee2d24f40dba73bf02bdca061987003a73a1fde7f798d3112aab043839.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

library SillyStringUtils {

    struct Haiku {
        string line1;
        string line2;
        string line3;
    }

    function shruggie(string memory _input) internal pure returns (string memory) {
        return string.concat(_input, unicode&quot; 🤷&quot;);
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>

<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-class"><span class="hljs-keyword">library</span> <span class="hljs-title">SillyStringUtils</span> </span>{

    <span class="hljs-keyword">struct</span> <span class="hljs-title">Haiku</span> {
        <span class="hljs-keyword">string</span> line1;
        <span class="hljs-keyword">string</span> line2;
        <span class="hljs-keyword">string</span> line3;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">shruggie</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _input</span>) <span class="hljs-title"><span class="hljs-keyword">internal</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-keyword">return</span> <span class="hljs-built_in">string</span>.<span class="hljs-built_in">concat</span>(_input, <span class="hljs-string">unicode" 🤷"</span>);
    }
}
</code></pre><ul><li><p>Копируем и вставляем текст</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bb8dd7b7cb088270ed2fceae3b4bf81c81a827d3eff04a9c7d05ba320cd95a2f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее создаем файл <strong>Imports</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/33abc31c2c64b0f88b3fbf30af9379cb715992635fa2551fe8abde52d2cab1e8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

// Importing the SillyStringUtils library
import &quot;./SillyStringUtils.sol&quot;;

pragma solidity 0.8.17;

contract ImportsExercise {
    // Using the SillyStringUtils library for string manipulation
    using SillyStringUtils for string;

    // Declaring a public variable to store a Haiku
    SillyStringUtils.Haiku public haiku;

    // Function to save a Haiku
    function saveHaiku(string memory _line1, string memory _line2, string memory _line3) public {
        haiku.line1 = _line1;
        haiku.line2 = _line2;
        haiku.line3 = _line3;
    }

    // Function to retrieve the saved Haiku
    function getHaiku() public view returns (SillyStringUtils.Haiku memory) {
        return haiku;
    }

    // Function to append a shrugging emoji to the third line of the Haiku
    function shruggieHaiku() public view returns (SillyStringUtils.Haiku memory) {
        // Creating a copy of the Haiku
        SillyStringUtils.Haiku memory newHaiku = haiku;
        // Appending the shrugging emoji to the third line using the shruggie function from the SillyStringUtils library
        newHaiku.line3 = newHaiku.line3.shruggie();
        return newHaiku;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>

<span class="hljs-comment">// Importing the SillyStringUtils library</span>
<span class="hljs-keyword">import</span> <span class="hljs-string">"./SillyStringUtils.sol"</span>;

<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> 0.8.17;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">ImportsExercise</span> </span>{
    <span class="hljs-comment">// Using the SillyStringUtils library for string manipulation</span>
    <span class="hljs-keyword">using</span> <span class="hljs-title">SillyStringUtils</span> <span class="hljs-title"><span class="hljs-keyword">for</span></span> <span class="hljs-title"><span class="hljs-keyword">string</span></span>;

    <span class="hljs-comment">// Declaring a public variable to store a Haiku</span>
    SillyStringUtils.Haiku <span class="hljs-keyword">public</span> haiku;

    <span class="hljs-comment">// Function to save a Haiku</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">saveHaiku</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line1, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line2, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line3</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        haiku.line1 <span class="hljs-operator">=</span> _line1;
        haiku.line2 <span class="hljs-operator">=</span> _line2;
        haiku.line3 <span class="hljs-operator">=</span> _line3;
    }

    <span class="hljs-comment">// Function to retrieve the saved Haiku</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getHaiku</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">SillyStringUtils.Haiku <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-keyword">return</span> haiku;
    }

    <span class="hljs-comment">// Function to append a shrugging emoji to the third line of the Haiku</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">shruggieHaiku</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">SillyStringUtils.Haiku <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Creating a copy of the Haiku</span>
        SillyStringUtils.Haiku <span class="hljs-keyword">memory</span> newHaiku <span class="hljs-operator">=</span> haiku;
        <span class="hljs-comment">// Appending the shrugging emoji to the third line using the shruggie function from the SillyStringUtils library</span>
        newHaiku.line3 <span class="hljs-operator">=</span> newHaiku.line3.shruggie();
        <span class="hljs-keyword">return</span> newHaiku;
    }
}
</code></pre><ul><li><p>Синяя кнопка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1d161f3a3d4a06f14967ae2011c708ba43999d601b0569d5811f50355a0f6ce3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой и копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8b14e4f9684aef463786126d68553217d640ad53e64b645bd8c23432c90288f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/imports/imports-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7bbfb62ad2f3b2a6802c3fc377423d51d80567b161cff184d61c2b9cae124673.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть 1 <strong>галочка (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e0808e561091ec4b5d27257171de8760d0d76bbd773110310843263821e3948d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее создаем файл <strong>Errors</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5a5939c69caf6dd904c887553b54002c60002629001734e4f5e62debb5cacaf8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

contract ErrorTriageExercise {
    /**
     * @dev Finds the difference between each uint with its neighbor (a to b, b to c, etc.)
     * and returns a uint array with the absolute integer difference of each pairing.
     * 
     * @param _a The first unsigned integer.
     * @param _b The second unsigned integer.
     * @param _c The third unsigned integer.
     * @param _d The fourth unsigned integer.
     * 
     * @return results An array containing the absolute differences between each pair of integers.
     */
    function diffWithNeighbor(
        uint _a,
        uint _b,
        uint _c,
        uint _d
    ) public pure returns (uint[] memory) {
        // Initialize an array to store the differences
        uint[] memory results = new uintUnsupported embed;

        // Calculate the absolute difference between each pair of integers and store it in the results array
        results[0] = _a &gt; _b ? _a - _b : _b - _a;
        results[1] = _b &gt; _c ? _b - _c : _c - _b;
        results[2] = _c &gt; _d ? _c - _d : _d - _c;

        // Return the array of differences
        return results;
    }

    /**
     * @dev Changes the base by the value of the modifier. Base is always &gt;= 1000. Modifiers can be
     * between positive and negative 100.
     * 
     * @param _base The base value to be modified.
     * @param _modifier The value by which the base should be modified.
     * 
     * @return returnValue The modified value of the base.
     */
    function applyModifier(
        uint _base,
        int _modifier
    ) public pure returns (uint returnValue) {
        // Apply the modifier to the base value
        if(_modifier &gt; 0) {
            return _base + uint(_modifier);
        }
        return _base - uint(-_modifier);
    }


    uint[] arr;

    function popWithReturn() public returns (uint returnNum) {
        if(arr.length &gt; 0) {
            uint result = arr[arr.length - 1];
            arr.pop();
            return result;
        }
    }

    // The utility functions below are working as expected
    function addToArr(uint _num) public {
        arr.push(_num);
    }

    function getArr() public view returns (uint[] memory) {
        return arr;
    }

    function resetArr() public {
        delete arr;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>

<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">ErrorTriageExercise</span> </span>{
    <span class="hljs-comment">/**
     * @dev Finds the difference between each uint with its neighbor (a to b, b to c, etc.)
     * and returns a uint array with the absolute integer difference of each pairing.
     * 
     * @param _a The first unsigned integer.
     * @param _b The second unsigned integer.
     * @param _c The third unsigned integer.
     * @param _d The fourth unsigned integer.
     * 
     * @return results An array containing the absolute differences between each pair of integers.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">diffWithNeighbor</span>(<span class="hljs-params">
        <span class="hljs-keyword">uint</span> _a,
        <span class="hljs-keyword">uint</span> _b,
        <span class="hljs-keyword">uint</span> _c,
        <span class="hljs-keyword">uint</span> _d
    </span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Initialize an array to store the differences</span>
        <span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">memory</span> results <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> uintUnsupported embed;

        <span class="hljs-comment">// Calculate the absolute difference between each pair of integers and store it in the results array</span>
        results[<span class="hljs-number">0</span>] <span class="hljs-operator">=</span> _a <span class="hljs-operator">></span> _b ? _a <span class="hljs-operator">-</span> _b : _b <span class="hljs-operator">-</span> _a;
        results[<span class="hljs-number">1</span>] <span class="hljs-operator">=</span> _b <span class="hljs-operator">></span> _c ? _b <span class="hljs-operator">-</span> _c : _c <span class="hljs-operator">-</span> _b;
        results[<span class="hljs-number">2</span>] <span class="hljs-operator">=</span> _c <span class="hljs-operator">></span> _d ? _c <span class="hljs-operator">-</span> _d : _d <span class="hljs-operator">-</span> _c;

        <span class="hljs-comment">// Return the array of differences</span>
        <span class="hljs-keyword">return</span> results;
    }

    <span class="hljs-comment">/**
     * @dev Changes the base by the value of the modifier. Base is always >= 1000. Modifiers can be
     * between positive and negative 100.
     * 
     * @param _base The base value to be modified.
     * @param _modifier The value by which the base should be modified.
     * 
     * @return returnValue The modified value of the base.
     */</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">applyModifier</span>(<span class="hljs-params">
        <span class="hljs-keyword">uint</span> _base,
        <span class="hljs-keyword">int</span> _modifier
    </span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> returnValue</span>) </span>{
        <span class="hljs-comment">// Apply the modifier to the base value</span>
        <span class="hljs-keyword">if</span>(_modifier <span class="hljs-operator">></span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">return</span> _base <span class="hljs-operator">+</span> <span class="hljs-keyword">uint</span>(_modifier);
        }
        <span class="hljs-keyword">return</span> _base <span class="hljs-operator">-</span> <span class="hljs-keyword">uint</span>(<span class="hljs-operator">-</span>_modifier);
    }


    <span class="hljs-keyword">uint</span>[] arr;

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">popWithReturn</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> returnNum</span>) </span>{
        <span class="hljs-keyword">if</span>(arr.<span class="hljs-built_in">length</span> <span class="hljs-operator">></span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">uint</span> result <span class="hljs-operator">=</span> arr[arr.<span class="hljs-built_in">length</span> <span class="hljs-operator">-</span> <span class="hljs-number">1</span>];
            arr.<span class="hljs-built_in">pop</span>();
            <span class="hljs-keyword">return</span> result;
        }
    }

    <span class="hljs-comment">// The utility functions below are working as expected</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addToArr</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> _num</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        arr.<span class="hljs-built_in">push</span>(_num);
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getArr</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-keyword">return</span> arr;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">resetArr</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-keyword">delete</span> arr;
    }
}
</code></pre><ul><li><p>Синяя кнопка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5347bb49f4092ef4fb588631feef97d43214f4d3fcd107f8e6c23514edacef1e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой и копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f9e58f697b7aa5cf118550de1e8f9ee7a2979160160bd80edf1b076c0f1be156.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/error-triage/error-triage-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/77a6c6a83ee5d21052a3ee84727e4bbd38887babf675bf5c9fb19eb759296e51.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>3 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1407116739492deae8e686d3344b7e3899c295991168072bce06dbb2e9396b74.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>AddressBook</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9fcca0d35a39d3cee32355bd1e3bb173df374ee9143be20f1d70de7d4f4997fe.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

import &quot;@openzeppelin/contracts/access/Ownable.sol&quot;;

contract AddressBook is Ownable(msg.sender) {
    // Define a private salt value for internal use
    string private salt = &quot;value&quot;; 

    // Define a struct to represent a contact
    struct Contact {
        uint id; // Unique identifier for the contact
        string firstName; // First name of the contact
        string lastName; // Last name of the contact
        uint[] phoneNumbers; // Array to store multiple phone numbers for the contact
    }

    // Array to store all contacts
    Contact[] private contacts;

    // Mapping to store the index of each contact in the contacts array using its ID
    mapping(uint =&gt; uint) private idToIndex;

    // Variable to keep track of the ID for the next contact
    uint private nextId = 1;

    // Custom error for when a contact is not found
    error ContactNotFound(uint id);

    // Function to add a new contact
    function addContact(string calldata firstName, string calldata lastName, uint[] calldata phoneNumbers) external onlyOwner {
        // Create a new contact with the provided details and add it to the contacts array
        contacts.push(Contact(nextId, firstName, lastName, phoneNumbers));
        // Map the ID of the new contact to its index in the array
        idToIndex[nextId] = contacts.length - 1;
        // Increment the nextId for the next contact
        nextId++;
    }

    // Function to delete a contact by its ID
    function deleteContact(uint id) external onlyOwner {
        // Get the index of the contact to be deleted
        uint index = idToIndex[id];
        // Check if the index is valid and if the contact with the provided ID exists
        if (index &gt;= contacts.length || contacts[index].id != id) revert ContactNotFound(id);

        // Replace the contact to be deleted with the last contact in the array
        contacts[index] = contacts[contacts.length - 1];
        // Update the index mapping for the moved contact
        idToIndex[contacts[index].id] = index;
        // Remove the last contact from the array
        contacts.pop();
        // Delete the mapping entry for the deleted contact ID
        delete idToIndex[id];
    }

    // Function to retrieve a contact by its ID
    function getContact(uint id) external view returns (Contact memory) {
        // Get the index of the contact
        uint index = idToIndex[id];
        // Check if the index is valid and if the contact with the provided ID exists
        if (index &gt;= contacts.length || contacts[index].id != id) revert ContactNotFound(id);
        // Return the contact details
        return contacts[index];
    }

    // Function to retrieve all contacts
    function getAllContacts() external view returns (Contact[] memory) {
        // Return the array of all contacts
        return contacts;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.8;</span>

<span class="hljs-keyword">import</span> <span class="hljs-string">"@openzeppelin/contracts/access/Ownable.sol"</span>;

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">AddressBook</span> <span class="hljs-keyword">is</span> <span class="hljs-title">Ownable</span>(<span class="hljs-params"><span class="hljs-built_in">msg</span>.sender</span>) </span>{
    <span class="hljs-comment">// Define a private salt value for internal use</span>
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">private</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"value"</span>; 

    <span class="hljs-comment">// Define a struct to represent a contact</span>
    <span class="hljs-keyword">struct</span> <span class="hljs-title">Contact</span> {
        <span class="hljs-keyword">uint</span> id; <span class="hljs-comment">// Unique identifier for the contact</span>
        <span class="hljs-keyword">string</span> firstName; <span class="hljs-comment">// First name of the contact</span>
        <span class="hljs-keyword">string</span> lastName; <span class="hljs-comment">// Last name of the contact</span>
        <span class="hljs-keyword">uint</span>[] phoneNumbers; <span class="hljs-comment">// Array to store multiple phone numbers for the contact</span>
    }

    <span class="hljs-comment">// Array to store all contacts</span>
    Contact[] <span class="hljs-keyword">private</span> contacts;

    <span class="hljs-comment">// Mapping to store the index of each contact in the contacts array using its ID</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">uint</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">uint</span>) <span class="hljs-keyword">private</span> idToIndex;

    <span class="hljs-comment">// Variable to keep track of the ID for the next contact</span>
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">private</span> nextId <span class="hljs-operator">=</span> <span class="hljs-number">1</span>;

    <span class="hljs-comment">// Custom error for when a contact is not found</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">ContactNotFound</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> id</span>)</span>;

    <span class="hljs-comment">// Function to add a new contact</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addContact</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">calldata</span> firstName, <span class="hljs-keyword">string</span> <span class="hljs-keyword">calldata</span> lastName, <span class="hljs-keyword">uint</span>[] <span class="hljs-keyword">calldata</span> phoneNumbers</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title">onlyOwner</span> </span>{
        <span class="hljs-comment">// Create a new contact with the provided details and add it to the contacts array</span>
        contacts.<span class="hljs-built_in">push</span>(Contact(nextId, firstName, lastName, phoneNumbers));
        <span class="hljs-comment">// Map the ID of the new contact to its index in the array</span>
        idToIndex[nextId] <span class="hljs-operator">=</span> contacts.<span class="hljs-built_in">length</span> <span class="hljs-operator">-</span> <span class="hljs-number">1</span>;
        <span class="hljs-comment">// Increment the nextId for the next contact</span>
        nextId<span class="hljs-operator">+</span><span class="hljs-operator">+</span>;
    }

    <span class="hljs-comment">// Function to delete a contact by its ID</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">deleteContact</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> id</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title">onlyOwner</span> </span>{
        <span class="hljs-comment">// Get the index of the contact to be deleted</span>
        <span class="hljs-keyword">uint</span> index <span class="hljs-operator">=</span> idToIndex[id];
        <span class="hljs-comment">// Check if the index is valid and if the contact with the provided ID exists</span>
        <span class="hljs-keyword">if</span> (index <span class="hljs-operator">></span><span class="hljs-operator">=</span> contacts.<span class="hljs-built_in">length</span> <span class="hljs-operator">|</span><span class="hljs-operator">|</span> contacts[index].id <span class="hljs-operator">!</span><span class="hljs-operator">=</span> id) <span class="hljs-keyword">revert</span> ContactNotFound(id);

        <span class="hljs-comment">// Replace the contact to be deleted with the last contact in the array</span>
        contacts[index] <span class="hljs-operator">=</span> contacts[contacts.<span class="hljs-built_in">length</span> <span class="hljs-operator">-</span> <span class="hljs-number">1</span>];
        <span class="hljs-comment">// Update the index mapping for the moved contact</span>
        idToIndex[contacts[index].id] <span class="hljs-operator">=</span> index;
        <span class="hljs-comment">// Remove the last contact from the array</span>
        contacts.<span class="hljs-built_in">pop</span>();
        <span class="hljs-comment">// Delete the mapping entry for the deleted contact ID</span>
        <span class="hljs-keyword">delete</span> idToIndex[id];
    }

    <span class="hljs-comment">// Function to retrieve a contact by its ID</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getContact</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> id</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">Contact <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Get the index of the contact</span>
        <span class="hljs-keyword">uint</span> index <span class="hljs-operator">=</span> idToIndex[id];
        <span class="hljs-comment">// Check if the index is valid and if the contact with the provided ID exists</span>
        <span class="hljs-keyword">if</span> (index <span class="hljs-operator">></span><span class="hljs-operator">=</span> contacts.<span class="hljs-built_in">length</span> <span class="hljs-operator">|</span><span class="hljs-operator">|</span> contacts[index].id <span class="hljs-operator">!</span><span class="hljs-operator">=</span> id) <span class="hljs-keyword">revert</span> ContactNotFound(id);
        <span class="hljs-comment">// Return the contact details</span>
        <span class="hljs-keyword">return</span> contacts[index];
    }

    <span class="hljs-comment">// Function to retrieve all contacts</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getAllContacts</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">Contact[] <span class="hljs-keyword">memory</span></span>) </span>{
        <span class="hljs-comment">// Return the array of all contacts</span>
        <span class="hljs-keyword">return</span> contacts;
    }
}
</code></pre><ul><li><p>Далее создаем файл <strong>Other Contracts</strong></p></li><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

// Import the AddressBook contract to interact with it
import &quot;./AddressBook.sol&quot;;

// Contract for creating new instances of AddressBook
contract AddressBookFactory {
    // Define a private salt value for internal use
    string private salt = &quot;value&quot;;

    // Function to deploy a new instance of AddressBook
    function deploy() external returns (AddressBook) {
        // Create a new instance of AddressBook
        AddressBook newAddressBook = new AddressBook();

        // Transfer ownership of the new AddressBook contract to the caller of this function
        newAddressBook.transferOwnership(msg.sender);

        // Return the newly created AddressBook contract
        return newAddressBook;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.8;</span>

<span class="hljs-comment">// Import the AddressBook contract to interact with it</span>
<span class="hljs-keyword">import</span> <span class="hljs-string">"./AddressBook.sol"</span>;

<span class="hljs-comment">// Contract for creating new instances of AddressBook</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">AddressBookFactory</span> </span>{
    <span class="hljs-comment">// Define a private salt value for internal use</span>
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">private</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"value"</span>;

    <span class="hljs-comment">// Function to deploy a new instance of AddressBook</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">deploy</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">AddressBook</span>) </span>{
        <span class="hljs-comment">// Create a new instance of AddressBook</span>
        AddressBook newAddressBook <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> AddressBook();

        <span class="hljs-comment">// Transfer ownership of the new AddressBook contract to the caller of this function</span>
        newAddressBook.transferOwnership(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>);

        <span class="hljs-comment">// Return the newly created AddressBook contract</span>
        <span class="hljs-keyword">return</span> newAddressBook;
    }
}
</code></pre><ul><li><p>Далее отправляемся к синей кнопке, и сверху ставим версию <strong>0.8.20</strong></p></li><li><p>Тыкаем на синюю кнопку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/923b46020e1b1be8d879ae0f35273613915b693481bdc8dc3a3dcaca44a6a769.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой и копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cdc53cc8dbe6edc5ca02e4985e9156f7ce632ba4795056fdd2617548d2876089.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/new-keyword/new-keyword-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/696d9ce9b0d1bbf30315ab3f0ff01335fca5c516e2ab403d69dbf5303bb46111.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>2 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/980e88b43234550b60a679e3920f10c4eaf33a68479fc01edbc444bbd375a358.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>Minimal Token</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c648ec1bf8e7b80fdd216d65a4969040e1788c5e8868f726971b1a0dca8ebe3a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Contract for an unburnable token
contract UnburnableToken {
    string private salt = &quot;123456&quot;; // A private string variable

    // Mapping to track token balances of addresses
    mapping(address =&gt; uint256) public balances;

    uint256 public totalSupply; // Total supply of tokens
    uint256 public totalClaimed; // Total number of tokens claimed
    mapping(address =&gt; bool) private claimed; // Mapping to track whether an address has claimed tokens

    // Custom errors
    error TokensClaimed(); // Error for attempting to claim tokens again
    error AllTokensClaimed(); // Error for attempting to claim tokens when all are already claimed
    error UnsafeTransfer(address _to); // Error for unsafe token transfer

    // Constructor to set the total supply of tokens
    constructor() {
        totalSupply = 100000000; // Set the total supply of tokens
    }

    // Public function to claim tokens
    function claim() public {
        // Check if all tokens have been claimed
        if (totalClaimed &gt;= totalSupply) revert AllTokensClaimed();
        
        // Check if the caller has already claimed tokens
        if (claimed[msg.sender]) revert TokensClaimed();

        // Update balances and claimed status
        balances[msg.sender] += 1000;
        totalClaimed += 1000;
        claimed[msg.sender] = true;
    }

    // Public function for safe token transfer
    function safeTransfer(address _to, uint256 _amount) public {
        // Check for unsafe transfer conditions, including if the target address has a non-zero ether balance
        if (_to == address(0) || _to.balance == 0) revert UnsafeTransfer(_to);

        // Ensure the sender has enough balance to transfer
        require(balances[msg.sender] &gt;= _amount, &quot;Insufficient balance&quot;);

        // Perform the transfer
        balances[msg.sender] -= _amount;
        balances[_to] += _amount;
    }
}
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.0;</span>

<span class="hljs-comment">// Contract for an unburnable token</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">UnburnableToken</span> </span>{
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">private</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"123456"</span>; <span class="hljs-comment">// A private string variable</span>

    <span class="hljs-comment">// Mapping to track token balances of addresses</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">uint256</span>) <span class="hljs-keyword">public</span> balances;

    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> totalSupply; <span class="hljs-comment">// Total supply of tokens</span>
    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> totalClaimed; <span class="hljs-comment">// Total number of tokens claimed</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">bool</span>) <span class="hljs-keyword">private</span> claimed; <span class="hljs-comment">// Mapping to track whether an address has claimed tokens</span>

    <span class="hljs-comment">// Custom errors</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">TokensClaimed</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to claim tokens again</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AllTokensClaimed</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to claim tokens when all are already claimed</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">UnsafeTransfer</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _to</span>)</span>; <span class="hljs-comment">// Error for unsafe token transfer</span>

    <span class="hljs-comment">// Constructor to set the total supply of tokens</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"></span>) </span>{
        totalSupply <span class="hljs-operator">=</span> <span class="hljs-number">100000000</span>; <span class="hljs-comment">// Set the total supply of tokens</span>
    }

    <span class="hljs-comment">// Public function to claim tokens</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">claim</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Check if all tokens have been claimed</span>
        <span class="hljs-keyword">if</span> (totalClaimed <span class="hljs-operator">></span><span class="hljs-operator">=</span> totalSupply) <span class="hljs-keyword">revert</span> AllTokensClaimed();
        
        <span class="hljs-comment">// Check if the caller has already claimed tokens</span>
        <span class="hljs-keyword">if</span> (claimed[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>]) <span class="hljs-keyword">revert</span> TokensClaimed();

        <span class="hljs-comment">// Update balances and claimed status</span>
        balances[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">+</span><span class="hljs-operator">=</span> <span class="hljs-number">1000</span>;
        totalClaimed <span class="hljs-operator">+</span><span class="hljs-operator">=</span> <span class="hljs-number">1000</span>;
        claimed[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>;
    }

    <span class="hljs-comment">// Public function for safe token transfer</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">safeTransfer</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _to, <span class="hljs-keyword">uint256</span> _amount</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Check for unsafe transfer conditions, including if the target address has a non-zero ether balance</span>
        <span class="hljs-keyword">if</span> (_to <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-keyword">address</span>(<span class="hljs-number">0</span>) <span class="hljs-operator">|</span><span class="hljs-operator">|</span> _to.<span class="hljs-built_in">balance</span> <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) <span class="hljs-keyword">revert</span> UnsafeTransfer(_to);

        <span class="hljs-comment">// Ensure the sender has enough balance to transfer</span>
        <span class="hljs-built_in">require</span>(balances[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">></span><span class="hljs-operator">=</span> _amount, <span class="hljs-string">"Insufficient balance"</span>);

        <span class="hljs-comment">// Perform the transfer</span>
        balances[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">-</span><span class="hljs-operator">=</span> _amount;
        balances[_to] <span class="hljs-operator">+</span><span class="hljs-operator">=</span> _amount;
    }
}
</code></pre><ul><li><p>Синяя кнопка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/53c8265b7449b40dddfaf44485c79f0d2960c3a7b9af0baa9a29a03227ef1c08.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой и копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/817de21dc7b53152a98a5b561b968299675c2701cbc1e9e79243631741b7fecb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/minimal-tokens/minimal-tokens-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1cad41822aabe115d8591b567213acf4feea9c58e39b06cdda88d6349a8a1cae.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>3 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1f9f2f276c7dbbb25871d2101bdbbd4f3f18b26fccc19c5ac480c121738b5986.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>ERC20</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/eeca04f016335c0d1fd394d01b9b29b2ceaa13a6135c52d39e810508988bc11d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

// Importing OpenZeppelin contracts for ERC20 and EnumerableSet functionalities
import &quot;@openzeppelin/contracts/token/ERC20/ERC20.sol&quot;;
import &quot;@openzeppelin/contracts/utils/structs/EnumerableSet.sol&quot;;// Contract for weighted voting using ERC20 token
contract WeightedVoting is ERC20 {
    string private salt = &quot;CHASE&quot;; // A private string variable
    using EnumerableSet for EnumerableSet.AddressSet; // Importing EnumerableSet for address set functionality    // Custom errors
    error TokensClaimed(); // Error for attempting to claim tokens again
    error AllTokensClaimed(); // Error for attempting to claim tokens when all are already claimed
    error NoTokensHeld(); // Error for attempting to perform an action without holding tokens
    error QuorumTooHigh(); // Error for setting a quorum higher than total supply
    error AlreadyVoted(); // Error for attempting to vote more than once
    error VotingClosed(); // Error for attempting to vote on a closed issue    // Struct to represent an issue
    struct Issue {
        EnumerableSet.AddressSet voters; // Set of voters
        string issueDesc; // Description of the issue
        uint256 quorum; // Quorum required to close the issue
        uint256 totalVotes; // Total number of votes casted
        uint256 votesFor; // Total number of votes in favor
        uint256 votesAgainst; // Total number of votes against
        uint256 votesAbstain; // Total number of abstained votes
        bool passed; // Flag indicating if the issue passed
        bool closed; // Flag indicating if the issue is closed
    }    // Struct to represent a serialized issue
    struct SerializedIssue {
        address[] voters; // Array of voters
        string issueDesc; // Description of the issue
        uint256 quorum; // Quorum required to close the issue
        uint256 totalVotes; // Total number of votes casted
        uint256 votesFor; // Total number of votes in favor
        uint256 votesAgainst; // Total number of votes against
        uint256 votesAbstain; // Total number of abstained votes
        bool passed; // Flag indicating if the issue passed
        bool closed; // Flag indicating if the issue is closed
    }    // Enum to represent different vote options
    enum Vote {
        AGAINST,
        FOR,
        ABSTAIN
    }    // Array to store all issues
    Issue[] internal issues;    // Mapping to track if tokens are claimed by an address
    mapping(address =&gt; bool) public tokensClaimed;    uint256 public maxSupply = 1000000; // Maximum supply of tokens
    uint256 public claimAmount = 100; // Amount of tokens to be claimed    string saltt = &quot;any&quot;; // Another string variable    // Constructor to initialize ERC20 token with a name and symbol
    constructor(string memory _name, string memory _symbol)
        ERC20(_name, _symbol)
    {
        issues.push(); // Pushing an empty issue to start from index 1
    }    // Function to claim tokens
    function claim() public {
        // Check if all tokens have been claimed
        if (totalSupply() + claimAmount &gt; maxSupply) {
            revert AllTokensClaimed();
        }
        // Check if the caller has already claimed tokens
        if (tokensClaimed[msg.sender]) {
            revert TokensClaimed();
        }
        // Mint tokens to the caller
        _mint(msg.sender, claimAmount);
        tokensClaimed[msg.sender] = true; // Mark tokens as claimed
    }    // Function to create a new voting issue
    function createIssue(string calldata _issueDesc, uint256 _quorum)
        external
        returns (uint256)
    {
        // Check if the caller holds any tokens
        if (balanceOf(msg.sender) == 0) {
            revert NoTokensHeld();
        }
        // Check if the specified quorum is higher than total supply
        if (_quorum &gt; totalSupply()) {
            revert QuorumTooHigh();
        }
        // Create a new issue and return its index
        Issue storage _issue = issues.push();
        _issue.issueDesc = _issueDesc;
        _issue.quorum = _quorum;
        return issues.length - 1;
    }    // Function to get details of a voting issue
    function getIssue(uint256 _issueId)
        external
        view
        returns (SerializedIssue memory)
    {
        Issue storage _issue = issues[_issueId];
        return
            SerializedIssue({
                voters: _issue.voters.values(),
                issueDesc: _issue.issueDesc,
                quorum: _issue.quorum,
                totalVotes: _issue.totalVotes,
                votesFor: _issue.votesFor,
                votesAgainst: _issue.votesAgainst,
                votesAbstain: _issue.votesAbstain,
                passed: _issue.passed,
                closed: _issue.closed
            });
    }    // Function to cast a vote on a voting issue
    function vote(uint256 _issueId, Vote _vote) public {
        Issue storage _issue = issues[_issueId];        // Check if the issue is closed
        if (_issue.closed) {
            revert VotingClosed();
        }
        // Check if the caller has already voted
        if (_issue.voters.contains(msg.sender)) {
            revert AlreadyVoted();
        }        uint256 nTokens = balanceOf(msg.sender);
        // Check if the caller holds any tokens
        if (nTokens == 0) {
            revert NoTokensHeld();
        }        // Update vote counts based on the vote option
        if (_vote == Vote.AGAINST) {
            _issue.votesAgainst += nTokens;
        } else if (_vote == Vote.FOR) {
            _issue.votesFor += nTokens;
        } else {
            _issue.votesAbstain += nTokens;
        }        // Add the caller to the list of voters and update total votes count
        _issue.voters.add(msg.sender);
        _issue.totalVotes += nTokens;        // Close the issue if quorum is reached and determine if it passed
        if (_issue.totalVotes &gt;= _issue.quorum) {
            _issue.closed = true;
            if (_issue.votesFor &gt; _issue.votesAgainst) {
                _issue.passed = true;
            }
        }
    }
}//CHASE
"><code><span class="hljs-comment">// SPDX-License-Identifier: UNLICENSED</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.17;</span>

<span class="hljs-comment">// Importing OpenZeppelin contracts for ERC20 and EnumerableSet functionalities</span>
<span class="hljs-keyword">import</span> <span class="hljs-string">"@openzeppelin/contracts/token/ERC20/ERC20.sol"</span>;
<span class="hljs-keyword">import</span> <span class="hljs-string">"@openzeppelin/contracts/utils/structs/EnumerableSet.sol"</span>;<span class="hljs-comment">// Contract for weighted voting using ERC20 token</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">WeightedVoting</span> <span class="hljs-keyword">is</span> <span class="hljs-title">ERC20</span> </span>{
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">private</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"CHASE"</span>; <span class="hljs-comment">// A private string variable</span>
    <span class="hljs-keyword">using</span> <span class="hljs-title">EnumerableSet</span> <span class="hljs-title"><span class="hljs-keyword">for</span></span> <span class="hljs-title">EnumerableSet</span>.<span class="hljs-title">AddressSet</span>; <span class="hljs-comment">// Importing EnumerableSet for address set functionality    // Custom errors</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">TokensClaimed</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to claim tokens again</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AllTokensClaimed</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to claim tokens when all are already claimed</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">NoTokensHeld</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to perform an action without holding tokens</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">QuorumTooHigh</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for setting a quorum higher than total supply</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AlreadyVoted</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to vote more than once</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">VotingClosed</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to vote on a closed issue    // Struct to represent an issue</span>
    <span class="hljs-keyword">struct</span> <span class="hljs-title">Issue</span> {
        EnumerableSet.AddressSet voters; <span class="hljs-comment">// Set of voters</span>
        <span class="hljs-keyword">string</span> issueDesc; <span class="hljs-comment">// Description of the issue</span>
        <span class="hljs-keyword">uint256</span> quorum; <span class="hljs-comment">// Quorum required to close the issue</span>
        <span class="hljs-keyword">uint256</span> totalVotes; <span class="hljs-comment">// Total number of votes casted</span>
        <span class="hljs-keyword">uint256</span> votesFor; <span class="hljs-comment">// Total number of votes in favor</span>
        <span class="hljs-keyword">uint256</span> votesAgainst; <span class="hljs-comment">// Total number of votes against</span>
        <span class="hljs-keyword">uint256</span> votesAbstain; <span class="hljs-comment">// Total number of abstained votes</span>
        <span class="hljs-keyword">bool</span> passed; <span class="hljs-comment">// Flag indicating if the issue passed</span>
        <span class="hljs-keyword">bool</span> closed; <span class="hljs-comment">// Flag indicating if the issue is closed</span>
    }    <span class="hljs-comment">// Struct to represent a serialized issue</span>
    <span class="hljs-keyword">struct</span> <span class="hljs-title">SerializedIssue</span> {
        <span class="hljs-keyword">address</span>[] voters; <span class="hljs-comment">// Array of voters</span>
        <span class="hljs-keyword">string</span> issueDesc; <span class="hljs-comment">// Description of the issue</span>
        <span class="hljs-keyword">uint256</span> quorum; <span class="hljs-comment">// Quorum required to close the issue</span>
        <span class="hljs-keyword">uint256</span> totalVotes; <span class="hljs-comment">// Total number of votes casted</span>
        <span class="hljs-keyword">uint256</span> votesFor; <span class="hljs-comment">// Total number of votes in favor</span>
        <span class="hljs-keyword">uint256</span> votesAgainst; <span class="hljs-comment">// Total number of votes against</span>
        <span class="hljs-keyword">uint256</span> votesAbstain; <span class="hljs-comment">// Total number of abstained votes</span>
        <span class="hljs-keyword">bool</span> passed; <span class="hljs-comment">// Flag indicating if the issue passed</span>
        <span class="hljs-keyword">bool</span> closed; <span class="hljs-comment">// Flag indicating if the issue is closed</span>
    }    <span class="hljs-comment">// Enum to represent different vote options</span>
    <span class="hljs-keyword">enum</span> <span class="hljs-title">Vote</span> {
        AGAINST,
        FOR,
        ABSTAIN
    }    <span class="hljs-comment">// Array to store all issues</span>
    Issue[] <span class="hljs-keyword">internal</span> issues;    <span class="hljs-comment">// Mapping to track if tokens are claimed by an address</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">bool</span>) <span class="hljs-keyword">public</span> tokensClaimed;    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> maxSupply <span class="hljs-operator">=</span> <span class="hljs-number">1000000</span>; <span class="hljs-comment">// Maximum supply of tokens</span>
    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> claimAmount <span class="hljs-operator">=</span> <span class="hljs-number">100</span>; <span class="hljs-comment">// Amount of tokens to be claimed    string saltt = "any"; // Another string variable    // Constructor to initialize ERC20 token with a name and symbol</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _name, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _symbol</span>)
        <span class="hljs-title">ERC20</span>(<span class="hljs-params">_name, _symbol</span>)
    </span>{
        issues.<span class="hljs-built_in">push</span>(); <span class="hljs-comment">// Pushing an empty issue to start from index 1</span>
    }    <span class="hljs-comment">// Function to claim tokens</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">claim</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        <span class="hljs-comment">// Check if all tokens have been claimed</span>
        <span class="hljs-keyword">if</span> (totalSupply() <span class="hljs-operator">+</span> claimAmount <span class="hljs-operator">></span> maxSupply) {
            <span class="hljs-keyword">revert</span> AllTokensClaimed();
        }
        <span class="hljs-comment">// Check if the caller has already claimed tokens</span>
        <span class="hljs-keyword">if</span> (tokensClaimed[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>]) {
            <span class="hljs-keyword">revert</span> TokensClaimed();
        }
        <span class="hljs-comment">// Mint tokens to the caller</span>
        _mint(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, claimAmount);
        tokensClaimed[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>; <span class="hljs-comment">// Mark tokens as claimed</span>
    }    <span class="hljs-comment">// Function to create a new voting issue</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">createIssue</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> <span class="hljs-keyword">calldata</span> _issueDesc, <span class="hljs-keyword">uint256</span> _quorum</span>)
        <span class="hljs-title"><span class="hljs-keyword">external</span></span>
        <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint256</span></span>)
    </span>{
        <span class="hljs-comment">// Check if the caller holds any tokens</span>
        <span class="hljs-keyword">if</span> (balanceOf(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>) <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">revert</span> NoTokensHeld();
        }
        <span class="hljs-comment">// Check if the specified quorum is higher than total supply</span>
        <span class="hljs-keyword">if</span> (_quorum <span class="hljs-operator">></span> totalSupply()) {
            <span class="hljs-keyword">revert</span> QuorumTooHigh();
        }
        <span class="hljs-comment">// Create a new issue and return its index</span>
        Issue <span class="hljs-keyword">storage</span> _issue <span class="hljs-operator">=</span> issues.<span class="hljs-built_in">push</span>();
        _issue.issueDesc <span class="hljs-operator">=</span> _issueDesc;
        _issue.quorum <span class="hljs-operator">=</span> _quorum;
        <span class="hljs-keyword">return</span> issues.<span class="hljs-built_in">length</span> <span class="hljs-operator">-</span> <span class="hljs-number">1</span>;
    }    <span class="hljs-comment">// Function to get details of a voting issue</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getIssue</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _issueId</span>)
        <span class="hljs-title"><span class="hljs-keyword">external</span></span>
        <span class="hljs-title"><span class="hljs-keyword">view</span></span>
        <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">SerializedIssue <span class="hljs-keyword">memory</span></span>)
    </span>{
        Issue <span class="hljs-keyword">storage</span> _issue <span class="hljs-operator">=</span> issues[_issueId];
        <span class="hljs-keyword">return</span>
            SerializedIssue({
                voters: _issue.voters.values(),
                issueDesc: _issue.issueDesc,
                quorum: _issue.quorum,
                totalVotes: _issue.totalVotes,
                votesFor: _issue.votesFor,
                votesAgainst: _issue.votesAgainst,
                votesAbstain: _issue.votesAbstain,
                passed: _issue.passed,
                closed: _issue.closed
            });
    }    <span class="hljs-comment">// Function to cast a vote on a voting issue</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">vote</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _issueId, Vote _vote</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        Issue <span class="hljs-keyword">storage</span> _issue <span class="hljs-operator">=</span> issues[_issueId];        <span class="hljs-comment">// Check if the issue is closed</span>
        <span class="hljs-keyword">if</span> (_issue.closed) {
            <span class="hljs-keyword">revert</span> VotingClosed();
        }
        <span class="hljs-comment">// Check if the caller has already voted</span>
        <span class="hljs-keyword">if</span> (_issue.voters.contains(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>)) {
            <span class="hljs-keyword">revert</span> AlreadyVoted();
        }        <span class="hljs-keyword">uint256</span> nTokens <span class="hljs-operator">=</span> balanceOf(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>);
        <span class="hljs-comment">// Check if the caller holds any tokens</span>
        <span class="hljs-keyword">if</span> (nTokens <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">revert</span> NoTokensHeld();
        }        <span class="hljs-comment">// Update vote counts based on the vote option</span>
        <span class="hljs-keyword">if</span> (_vote <span class="hljs-operator">=</span><span class="hljs-operator">=</span> Vote.AGAINST) {
            _issue.votesAgainst <span class="hljs-operator">+</span><span class="hljs-operator">=</span> nTokens;
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (_vote <span class="hljs-operator">=</span><span class="hljs-operator">=</span> Vote.FOR) {
            _issue.votesFor <span class="hljs-operator">+</span><span class="hljs-operator">=</span> nTokens;
        } <span class="hljs-keyword">else</span> {
            _issue.votesAbstain <span class="hljs-operator">+</span><span class="hljs-operator">=</span> nTokens;
        }        <span class="hljs-comment">// Add the caller to the list of voters and update total votes count</span>
        _issue.voters.add(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>);
        _issue.totalVotes <span class="hljs-operator">+</span><span class="hljs-operator">=</span> nTokens;        <span class="hljs-comment">// Close the issue if quorum is reached and determine if it passed</span>
        <span class="hljs-keyword">if</span> (_issue.totalVotes <span class="hljs-operator">></span><span class="hljs-operator">=</span> _issue.quorum) {
            _issue.closed <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>;
            <span class="hljs-keyword">if</span> (_issue.votesFor <span class="hljs-operator">></span> _issue.votesAgainst) {
                _issue.passed <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>;
            }
        }
    }
}<span class="hljs-comment">//CHASE</span>
</code></pre><ul><li><p>Синяя кнопка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e8594d684f1168d757caa7fea9060c6b1f424df7056e94b0df1ce588ae2c65f5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой, но для начала тыкаем на <strong>стрелку</strong> и вписываем <strong>CHASE —</strong> далее <strong>transact</strong></p></li><li><p>Теперь <strong>Deploy</strong> и копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8187ee06b54111e4728c40b4f3eaf8ef206e982c46d3913bdc9e942f82262ed.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/erc-20-token/erc-20-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7ea8b79ac02b40c0d473b3a59fa745f08cd6da26f5d4b11c2225f767519b99c3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть <strong>3 галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ebf2bb017d47c202350d41cff0bba3998f8f767ca11a89e80f9b4ebb752ecfe1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем файл <strong>ERC721</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d12bb5ba60acf86dd08c8d47433e14c4076ef2906a4e02c11b370175f32992cd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем текст и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Importing OpenZeppelin ERC721 contract
import &quot;https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol&quot;;// Interface for interacting with a submission contract
interface ISubmission {
    // Struct representing a haiku
    struct Haiku {
        address author; // Address of the haiku author
        string line1; // First line of the haiku
        string line2; // Second line of the haiku
        string line3; // Third line of the haiku
    }    // Function to mint a new haiku
    function mintHaiku(
        string memory _line1,
        string memory _line2,
        string memory _line3
    ) external;    // Function to get the total number of haikus
    function counter() external view returns (uint256);    // Function to share a haiku with another address
    function shareHaiku(uint256 _id, address _to) external;    // Function to get haikus shared with the caller
    function getMySharedHaikus() external view returns (Haiku[] memory);
}// Contract for managing Haiku NFTs
contract HaikuNFT is ERC721, ISubmission {
    Haiku[] public haikus; // Array to store haikus
    mapping(address =&gt; mapping(uint256 =&gt; bool)) public sharedHaikus; // Mapping to track shared haikus
    uint256 public haikuCounter; // Counter for total haikus minted    // Constructor to initialize the ERC721 contract
    constructor() ERC721(&quot;HaikuNFT&quot;, &quot;HAIKU&quot;) {
        haikuCounter = 1; // Initialize haiku counter
    }    string salt = &quot;value&quot;; // A private string variable    // Function to get the total number of haikus
    function counter() external view override returns (uint256) {
        return haikuCounter;
    }    // Function to mint a new haiku
    function mintHaiku(
        string memory _line1,
        string memory _line2,
        string memory _line3
    ) external override {
        // Check if the haiku is unique
        string[3] memory haikusStrings = [_line1, _line2, _line3];
        for (uint256 li = 0; li &lt; haikusStrings.length; li++) {
            string memory newLine = haikusStrings[li];
            for (uint256 i = 0; i &lt; haikus.length; i++) {
                Haiku memory existingHaiku = haikus[i];
                string[3] memory existingHaikuStrings = [
                    existingHaiku.line1,
                    existingHaiku.line2,
                    existingHaiku.line3
                ];
                for (uint256 eHsi = 0; eHsi &lt; 3; eHsi++) {
                    string memory existingHaikuString = existingHaikuStrings[
                        eHsi
                    ];
                    if (
                        keccak256(abi.encodePacked(existingHaikuString)) ==
                        keccak256(abi.encodePacked(newLine))
                    ) {
                        revert HaikuNotUnique();
                    }
                }
            }
        }        // Mint the haiku NFT
        _safeMint(msg.sender, haikuCounter);
        haikus.push(Haiku(msg.sender, _line1, _line2, _line3));
        haikuCounter++;
    }    // Function to share a haiku with another address
    function shareHaiku(uint256 _id, address _to) external override {
        require(_id &gt; 0 &amp;&amp; _id &lt;= haikuCounter, &quot;Invalid haiku ID&quot;);        Haiku memory haikuToShare = haikus[_id - 1];
        require(haikuToShare.author == msg.sender, &quot;NotYourHaiku&quot;);        sharedHaikus[_to][_id] = true;
    }    // Function to get haikus shared with the caller
    function getMySharedHaikus()
        external
        view
        override
        returns (Haiku[] memory)
    {
        uint256 sharedHaikuCount;
        for (uint256 i = 0; i &lt; haikus.length; i++) {
            if (sharedHaikus[msg.sender][i + 1]) {
                sharedHaikuCount++;
            }
        }        Haiku[] memory result = new HaikuUnsupported embed;
        uint256 currentIndex;
        for (uint256 i = 0; i &lt; haikus.length; i++) {
            if (sharedHaikus[msg.sender][i + 1]) {
                result[currentIndex] = haikus[i];
                currentIndex++;
            }
        }        if (sharedHaikuCount == 0) {
            revert NoHaikusShared();
        }        return result;
    }    // Custom errors
    error HaikuNotUnique(); // Error for attempting to mint a non-unique haiku
    error NotYourHaiku(); // Error for attempting to share a haiku not owned by the caller
    error NoHaikusShared(); // Error for no haikus shared with the caller
}//CHASE
"><code><span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.8.0;</span>

<span class="hljs-comment">// Importing OpenZeppelin ERC721 contract</span>
<span class="hljs-keyword">import</span> <span class="hljs-string">"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol"</span>;<span class="hljs-comment">// Interface for interacting with a submission contract</span>
<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">ISubmission</span> </span>{
    <span class="hljs-comment">// Struct representing a haiku</span>
    <span class="hljs-keyword">struct</span> <span class="hljs-title">Haiku</span> {
        <span class="hljs-keyword">address</span> author; <span class="hljs-comment">// Address of the haiku author</span>
        <span class="hljs-keyword">string</span> line1; <span class="hljs-comment">// First line of the haiku</span>
        <span class="hljs-keyword">string</span> line2; <span class="hljs-comment">// Second line of the haiku</span>
        <span class="hljs-keyword">string</span> line3; <span class="hljs-comment">// Third line of the haiku</span>
    }    <span class="hljs-comment">// Function to mint a new haiku</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">mintHaiku</span>(<span class="hljs-params">
        <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line1,
        <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line2,
        <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line3
    </span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span></span>;    <span class="hljs-comment">// Function to get the total number of haikus</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">counter</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint256</span></span>)</span>;    <span class="hljs-comment">// Function to share a haiku with another address</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">shareHaiku</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _id, <span class="hljs-keyword">address</span> _to</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span></span>;    <span class="hljs-comment">// Function to get haikus shared with the caller</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getMySharedHaikus</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">Haiku[] <span class="hljs-keyword">memory</span></span>)</span>;
}<span class="hljs-comment">// Contract for managing Haiku NFTs</span>
<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">HaikuNFT</span> <span class="hljs-keyword">is</span> <span class="hljs-title">ERC721</span>, <span class="hljs-title">ISubmission</span> </span>{
    Haiku[] <span class="hljs-keyword">public</span> haikus; <span class="hljs-comment">// Array to store haikus</span>
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">uint256</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">bool</span>)) <span class="hljs-keyword">public</span> sharedHaikus; <span class="hljs-comment">// Mapping to track shared haikus</span>
    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> haikuCounter; <span class="hljs-comment">// Counter for total haikus minted    // Constructor to initialize the ERC721 contract</span>
    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"></span>) <span class="hljs-title">ERC721</span>(<span class="hljs-params"><span class="hljs-string">"HaikuNFT"</span>, <span class="hljs-string">"HAIKU"</span></span>) </span>{
        haikuCounter <span class="hljs-operator">=</span> <span class="hljs-number">1</span>; <span class="hljs-comment">// Initialize haiku counter</span>
    }    <span class="hljs-keyword">string</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"value"</span>; <span class="hljs-comment">// A private string variable    // Function to get the total number of haikus</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">counter</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">view</span></span> <span class="hljs-title"><span class="hljs-keyword">override</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint256</span></span>) </span>{
        <span class="hljs-keyword">return</span> haikuCounter;
    }    <span class="hljs-comment">// Function to mint a new haiku</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">mintHaiku</span>(<span class="hljs-params">
        <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line1,
        <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line2,
        <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _line3
    </span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">override</span></span> </span>{
        <span class="hljs-comment">// Check if the haiku is unique</span>
        <span class="hljs-keyword">string</span>[<span class="hljs-number">3</span>] <span class="hljs-keyword">memory</span> haikusStrings <span class="hljs-operator">=</span> [_line1, _line2, _line3];
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint256</span> li <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; li <span class="hljs-operator">&#x3C;</span> haikusStrings.<span class="hljs-built_in">length</span>; li<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> newLine <span class="hljs-operator">=</span> haikusStrings[li];
            <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint256</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> haikus.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
                Haiku <span class="hljs-keyword">memory</span> existingHaiku <span class="hljs-operator">=</span> haikus[i];
                <span class="hljs-keyword">string</span>[<span class="hljs-number">3</span>] <span class="hljs-keyword">memory</span> existingHaikuStrings <span class="hljs-operator">=</span> [
                    existingHaiku.line1,
                    existingHaiku.line2,
                    existingHaiku.line3
                ];
                <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint256</span> eHsi <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; eHsi <span class="hljs-operator">&#x3C;</span> <span class="hljs-number">3</span>; eHsi<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
                    <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> existingHaikuString <span class="hljs-operator">=</span> existingHaikuStrings[
                        eHsi
                    ];
                    <span class="hljs-keyword">if</span> (
                        <span class="hljs-built_in">keccak256</span>(<span class="hljs-built_in">abi</span>.<span class="hljs-built_in">encodePacked</span>(existingHaikuString)) <span class="hljs-operator">=</span><span class="hljs-operator">=</span>
                        <span class="hljs-built_in">keccak256</span>(<span class="hljs-built_in">abi</span>.<span class="hljs-built_in">encodePacked</span>(newLine))
                    ) {
                        <span class="hljs-keyword">revert</span> HaikuNotUnique();
                    }
                }
            }
        }        <span class="hljs-comment">// Mint the haiku NFT</span>
        _safeMint(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, haikuCounter);
        haikus.<span class="hljs-built_in">push</span>(Haiku(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, _line1, _line2, _line3));
        haikuCounter<span class="hljs-operator">+</span><span class="hljs-operator">+</span>;
    }    <span class="hljs-comment">// Function to share a haiku with another address</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">shareHaiku</span>(<span class="hljs-params"><span class="hljs-keyword">uint256</span> _id, <span class="hljs-keyword">address</span> _to</span>) <span class="hljs-title"><span class="hljs-keyword">external</span></span> <span class="hljs-title"><span class="hljs-keyword">override</span></span> </span>{
        <span class="hljs-built_in">require</span>(_id <span class="hljs-operator">></span> <span class="hljs-number">0</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> _id <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> haikuCounter, <span class="hljs-string">"Invalid haiku ID"</span>);        Haiku <span class="hljs-keyword">memory</span> haikuToShare <span class="hljs-operator">=</span> haikus[_id <span class="hljs-operator">-</span> <span class="hljs-number">1</span>];
        <span class="hljs-built_in">require</span>(haikuToShare.author <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, <span class="hljs-string">"NotYourHaiku"</span>);        sharedHaikus[_to][_id] <span class="hljs-operator">=</span> <span class="hljs-literal">true</span>;
    }    <span class="hljs-comment">// Function to get haikus shared with the caller</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getMySharedHaikus</span>(<span class="hljs-params"></span>)
        <span class="hljs-title"><span class="hljs-keyword">external</span></span>
        <span class="hljs-title"><span class="hljs-keyword">view</span></span>
        <span class="hljs-title"><span class="hljs-keyword">override</span></span>
        <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params">Haiku[] <span class="hljs-keyword">memory</span></span>)
    </span>{
        <span class="hljs-keyword">uint256</span> sharedHaikuCount;
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint256</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> haikus.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-keyword">if</span> (sharedHaikus[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][i <span class="hljs-operator">+</span> <span class="hljs-number">1</span>]) {
                sharedHaikuCount<span class="hljs-operator">+</span><span class="hljs-operator">+</span>;
            }
        }        Haiku[] <span class="hljs-keyword">memory</span> result <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> HaikuUnsupported embed;
        <span class="hljs-keyword">uint256</span> currentIndex;
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint256</span> i <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i <span class="hljs-operator">&#x3C;</span> haikus.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-keyword">if</span> (sharedHaikus[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][i <span class="hljs-operator">+</span> <span class="hljs-number">1</span>]) {
                result[currentIndex] <span class="hljs-operator">=</span> haikus[i];
                currentIndex<span class="hljs-operator">+</span><span class="hljs-operator">+</span>;
            }
        }        <span class="hljs-keyword">if</span> (sharedHaikuCount <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span>) {
            <span class="hljs-keyword">revert</span> NoHaikusShared();
        }        <span class="hljs-keyword">return</span> result;
    }    <span class="hljs-comment">// Custom errors</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">HaikuNotUnique</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to mint a non-unique haiku</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">NotYourHaiku</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for attempting to share a haiku not owned by the caller</span>
    <span class="hljs-function"><span class="hljs-keyword">error</span> <span class="hljs-title">NoHaikusShared</span>(<span class="hljs-params"></span>)</span>; <span class="hljs-comment">// Error for no haikus shared with the caller</span>
}<span class="hljs-comment">//CHASE</span>
</code></pre><ul><li><p>Синяя кнопка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6c338ebb18af4642543005e828bb727439a6e6758eba2e49692a8989400a6da6.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем деплой и копируем адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d7e0013ba8133fd9d8281144dd32e08dbb2453be7b1fa2b88c2273914e28b58d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/erc-721-token/erc-721-exercise/"><strong>сюда</strong></a> и вставляем контракт — прожимаем <strong>Sumbit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3884d7c6db401060710c029de8a9b67abfe535b11b2f8cb80e49146b3999013a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Должно быть 2 <strong>галочки (как на скрине)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ffca967aebc283622187ebad730c56bf0611841c287f33787e399a097508a2ca.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Молодцы! На этом мы закончили делать деплои</em></p></blockquote><ul><li><p>Теперь вступаем в дискорд <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/buildonbase"><strong>Base</strong></a> и переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://guild.xyz/base/base-camp"><strong>Guild</strong></a> и забираем все роли</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/05dbc961858f7e36e06a1095adb1b843a10f8c4f01c327ce079a6313f1ddd136.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Еще можно получить дополнительную роль, нужно будет привязать <strong>Github</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2521a0e4be00468a8cac5da0d889e21b51e7fac1e8d3909de660b569c5960ce9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также забираем немного <strong>Score</strong> в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://passport.talentprotocol.com/wallet"><strong>Talent Protocol</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/567bf2b5f00bf46babe1d7bbee3ef04c9a9dbec9431e808ac5c972c33279c37f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/47a47acf2f4c1c0941253d6ffcc52547f5ed19a99ac9753d09ca1cb77efc9828.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Allora. Устанавливаем воркер]]></title>
            <link>https://paragraph.com/@sosew/allora</link>
            <guid>wRRs7bViEMZRat788PVE</guid>
            <pubDate>Sun, 30 Jun 2024 11:27:13 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Allora — это новая децентрализованная AI сеть с упором на CommunityИнвестировали: $33 750 000Инвесторы: Polychain Capital, Delphi Ventures, Blockchain Capital, и другиеХарактеристики: 2CPU/4GBRAM/5SSD — минимальныеАрендовать сервер: XorekCloud, AEZA , Hetzner , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatUbuntu: 22.04Буквально более недели назад, команда объявила об новом ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Allora</strong> — это новая децентрализованная <strong>AI</strong> сеть с упором на <strong>Community</strong></p><ul><li><p><strong>Инвестировали:</strong> $33 750 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, Delphi Ventures, Blockchain Capital, и другие</p></li><li><p><strong>Характеристики: 2</strong>CPU/4GBRAM/5SSD — <strong>минимальные</strong></p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li><li><p><strong>Ubuntu:</strong> 22.04</p></li></ul><p>Буквально более недели назад, команда объявила об новом сезоне фарминге поинтов, который в последствие чего, будут конвертироваться в токены проекты</p><p>Также есть возможность поставить ноду валидатора и воркера. Но, так как это <strong>Comsos нода</strong>, попасть в валидаторский сет практически невозможно, особенно, если вы новичок, <strong>лучше поставить слабого воркера, за который будут награды</strong></p><blockquote><p><em>Расписал для вас понятный гайд с установкой ноды, ставиться просто, сервак советую брать (</em><strong><em>минимум как требуется в рекомендации</em></strong><em>), чтобы избежать дальнейшие траблы с синхронизацией</em></p></blockquote><p>На <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767"><strong>XorekCloud</strong></a> арендовать подходящий сервер за <strong>399</strong> рублей в месяц</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2028aff6b707b6378d3e51db0258f27b2e162687bbe3886d0d821f07a99b11d3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Для начало давайте начнем с фарминга поинтов</p></li><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap">Keplr</a> кошелек</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f88efa48200d4d7c12764d844c866a3bf05e03fb7e7048aae50418ea08888019.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.allora.network/?ref=eyJyZWZlcnJlcl9pZCI6ImFlZjQyZGViLTFhNDktNGU3Zi1hY2RhLTU2YTMzNjg5MzUyOCJ9">сайт</a> и коннектим <strong>Keplr</strong> кошелек</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f013ad66686623f9af45e97a3516d0cf5db2c7363b71d2cbe4fc4898fadb3390.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-ustanovka-vorkera-podrobnaya-instrukciya" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Установка воркера. Подробная инструкция</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mobaxterm.mobatek.net/"><strong>MobaXterm</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/32a6c6cfbd6baee5eafbd72c916a7a5fe71996ffb59ed3b80d9a0a7947ae1d34.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подключаемся на арендованный сервер через <strong>root</strong></p></li><li><p>Выполняем команды по списку</p></li><li><p>Обновляем и устанавливаем необходимые пакеты</p></li><li><p>Если появится выбор при обновлении, тыкаем <strong>Enter</strong> и пишем <strong>Y</strong></p></li></ul><pre data-type="codeBlock" text="sudo apt update &amp; sudo apt upgrade -y
sudo apt install ca-certificates zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev curl git wget make
"><code>sudo apt update <span class="hljs-operator">&#x26;</span> sudo apt upgrade <span class="hljs-operator">-</span>y
sudo apt install ca<span class="hljs-operator">-</span>certificates zlib1g<span class="hljs-operator">-</span>dev libncurses5<span class="hljs-operator">-</span>dev libgdbm<span class="hljs-operator">-</span>dev libnss3<span class="hljs-operator">-</span>dev curl git wget make
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bac9ba1b85a738db07800c4e28ee13830a9e9d41bec10869024bb4722c1696ff.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Устанавливаем <strong>Python</strong></p></li></ul><pre data-type="codeBlock" text="sudo apt install python3
python3 --version

sudo apt install python3-pip
pip3 --version
"><code>sudo apt install python3
python3 <span class="hljs-operator">-</span><span class="hljs-operator">-</span>version

sudo apt install python3<span class="hljs-operator">-</span>pip
pip3 <span class="hljs-operator">-</span><span class="hljs-operator">-</span>version
</code></pre><ul><li><p>Вписываем <strong>Y</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d6bf92e3b8e3f47fb8be3af9de87df2107685375ec88044187a8249f4f2ea84a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Устанавливаем <strong>Docker</strong></p></li><li><p>Вписываем <strong>Y</strong></p></li></ul><pre data-type="codeBlock" text="curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker version
"><code>curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</span>

echo <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</span> <span class="hljs-operator">|</span> sudo tee <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>apt<span class="hljs-operator">/</span>sources.list.d/docker.list <span class="hljs-operator">></span> <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null

sudo apt<span class="hljs-operator">-</span>get update
sudo apt<span class="hljs-operator">-</span>get install docker<span class="hljs-operator">-</span>ce docker<span class="hljs-operator">-</span>ce<span class="hljs-operator">-</span>cli containerd.io
docker version
</code></pre><p>*</p><ul><li><p>Устанавливаем <strong>Docker-Compose</strong></p></li></ul><pre data-type="codeBlock" text="curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker version
"><code>curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</span>

echo <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</span> <span class="hljs-operator">|</span> sudo tee <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>apt<span class="hljs-operator">/</span>sources.list.d/docker.list <span class="hljs-operator">></span> <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null

sudo apt<span class="hljs-operator">-</span>get update
sudo apt<span class="hljs-operator">-</span>get install docker<span class="hljs-operator">-</span>ce docker<span class="hljs-operator">-</span>ce<span class="hljs-operator">-</span>cli containerd.io
docker version
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7f5e19843c82047faa039cff66a5da82309988f156f0147f0eb9e760a6fc0970.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Разрешаем <strong>Docker</strong> для пользователей</p></li></ul><pre data-type="codeBlock" text="sudo groupadd docker
sudo usermod -aG docker $USER
"><code>sudo groupadd docker
sudo usermod -aG docker <span class="hljs-variable">$USER</span>
</code></pre><ul><li><p>Устанавливаем <strong>GO</strong></p></li></ul><pre data-type="codeBlock" text="sudo rm -rf /usr/local/go
curl -L https://go.dev/dl/go1.22.4.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
echo &apos;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&apos; &gt;&gt; $HOME/.bash_profile
echo &apos;export PATH=$PATH:$(go env GOPATH)/bin&apos; &gt;&gt; $HOME/.bash_profile
source .bash_profile
go version
"><code>sudo rm <span class="hljs-operator">-</span>rf <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local<span class="hljs-operator">/</span>go
curl <span class="hljs-operator">-</span>L https:<span class="hljs-comment">//go.dev/dl/go1.22.4.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local</span>
echo <span class="hljs-string">'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin'</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> $HOME<span class="hljs-operator">/</span>.bash_profile
echo <span class="hljs-string">'export PATH=$PATH:$(go env GOPATH)/bin'</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> $HOME<span class="hljs-operator">/</span>.bash_profile
source .bash_profile
go version
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7fc7e28522f352ee7b54f1c2c720d5d36ef6acf7357f632ff6a79b64ff867252.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Устанавливаем <strong>Allorad Wallet</strong></p></li></ul><pre data-type="codeBlock" text="git clone https://github.com/allora-network/allora-chain.git

cd allora-chain &amp;&amp; make all

allorad version
"><code>git clone https:<span class="hljs-comment">//github.com/allora-network/allora-chain.git</span>

cd allora<span class="hljs-operator">-</span>chain <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> make all

allorad version
</code></pre><ul><li><p>Далее отправляемся к кошельку <strong>Keplr</strong> и берём <strong>сидку</strong> от нашего аккаунта</p></li><li><p>Сохраняем сидку в надежное место</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/65e25f1dac8fe5d3b905d5bfa120bb2d343e7064be506af37a14a0e37cdf18a9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся к терминалу и восстанавливаем кошелек</p></li><li><p>Вписываем эту команду</p></li></ul><pre data-type="codeBlock" text="allorad keys add testkey --recover
"><code>allorad keys <span class="hljs-keyword">add</span> testkey <span class="hljs-comment">--recover</span>
</code></pre><ul><li><p>Вписываем нашу сидку + <strong>Enter</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/98d283082f83e5435796b626a27f80100f232f2c2d881db16d016eb0f6679dc2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В блокноте за ранее напиши любой пароль для нашего аккаунта</p></li><li><p>Вставляем пароль c помощью <strong>Mouse 2</strong> и появиться наш <strong>Address (копируем и сохраняем в надежное место)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f8627ee964d8810453c483240513604a0a497483185e6309a57ef7aa71ad081f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://explorer.edgenet.allora.network/wallet/suggest"><strong>explorer</strong></a> и добавляем сеть <strong>Allora</strong> с помощью <strong>Keplr</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4859bc0b7b1e47d1eeccd641de48146be7ffb681d0b7cde75eb12d021865d2da.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Включаем сеть <strong>Allora-Edgenet</strong> и копируем <strong>uallo адрес</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/622208ebae799bfdfa52a39d7b6dcd9309abc51a5ec6235142dbcbd66dc0f0b9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f446187e42ad4e3264ed68ff814af640da0c123ce5bbe1ccebad9c0317c406fc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.edgenet.allora.network/"><strong>крану</strong></a> и запрашиваем тестовые токены <strong>$uAllo</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5a84213accb7ab802b173b43951dba8f2b7b8511fe17b6287d065cecda593d81.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Спустя пару минут придут токены на баланс</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/39c36f865807ecc8f9e5761ba82bc7d5576577f2eb80ed1cfb1db08cdd37de96.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся к терминалу и устанавливаем воркер</p></li></ul><pre data-type="codeBlock" text="cd $HOME &amp;&amp; git clone https://github.com/allora-network/basic-coin-prediction-node

cd basic-coin-prediction-node

mkdir worker-data
mkdir head-data
"><code>cd $HOME <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> git clone https:<span class="hljs-comment">//github.com/allora-network/basic-coin-prediction-node</span>

cd basic<span class="hljs-operator">-</span>coin<span class="hljs-operator">-</span>prediction<span class="hljs-operator">-</span>node

mkdir worker<span class="hljs-operator">-</span>data
mkdir head<span class="hljs-operator">-</span>data
</code></pre><pre data-type="codeBlock" text="sudo chmod -R 777 worker-data
sudo chmod -R 777 head-data
"><code>sudo chmod <span class="hljs-operator">-</span>R <span class="hljs-number">777</span> worker<span class="hljs-operator">-</span>data
sudo chmod <span class="hljs-operator">-</span>R <span class="hljs-number">777</span> head<span class="hljs-operator">-</span>data
</code></pre><ul><li><p>Создаем ключ</p></li></ul><pre data-type="codeBlock" text="sudo docker run -it --entrypoint=bash -v ./head-data:/data alloranetwork/allora-inference-base:latest -c &quot;mkdir -p /data/keys &amp;&amp; (cd /data/keys &amp;&amp; allora-keys)&quot;
"><code>sudo docker run <span class="hljs-operator">-</span>it <span class="hljs-operator">-</span><span class="hljs-operator">-</span>entrypoint<span class="hljs-operator">=</span>bash <span class="hljs-operator">-</span>v ./head<span class="hljs-operator">-</span>data:<span class="hljs-operator">/</span>data alloranetwork<span class="hljs-operator">/</span>allora<span class="hljs-operator">-</span>inference<span class="hljs-operator">-</span>base:latest <span class="hljs-operator">-</span>c <span class="hljs-string">"mkdir -p /data/keys &#x26;&#x26; (cd /data/keys &#x26;&#x26; allora-keys)"</span>
</code></pre><ul><li><p>Создаем воркер ключ</p></li></ul><pre data-type="codeBlock" text="sudo docker run -it --entrypoint=bash -v ./worker-data:/data alloranetwork/allora-inference-base:latest -c &quot;mkdir -p /data/keys &amp;&amp; (cd /data/keys &amp;&amp; allora-keys)&quot;
"><code>sudo docker run <span class="hljs-operator">-</span>it <span class="hljs-operator">-</span><span class="hljs-operator">-</span>entrypoint<span class="hljs-operator">=</span>bash <span class="hljs-operator">-</span>v ./worker<span class="hljs-operator">-</span>data:<span class="hljs-operator">/</span>data alloranetwork<span class="hljs-operator">/</span>allora<span class="hljs-operator">-</span>inference<span class="hljs-operator">-</span>base:latest <span class="hljs-operator">-</span>c <span class="hljs-string">"mkdir -p /data/keys &#x26;&#x26; (cd /data/keys &#x26;&#x26; allora-keys)"</span>
</code></pre><ul><li><p>Получаем ключ</p></li></ul><pre data-type="codeBlock" text="cat head-data/keys/identity
"><code>cat head<span class="hljs-operator">-</span>data<span class="hljs-operator">/</span>keys<span class="hljs-operator">/</span>identity
</code></pre><ul><li><p>Копируем <strong>head-id</strong> и сохраняем в надежное место</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fc1fe6d2ac408abfa0f8b923e3504bd241c26ba96f8a001be693eac994b4add1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Удаляем и создаем новый файл <strong>docker-compose.yml</strong></p></li></ul><pre data-type="codeBlock" text="apt install nano
"><code></code></pre><pre data-type="codeBlock" text="rm -rf docker-compose.yml &amp;&amp; nano docker-compose.yml
"><code>rm <span class="hljs-operator">-</span>rf docker<span class="hljs-operator">-</span>compose.yml <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> nano docker<span class="hljs-operator">-</span>compose.yml
</code></pre><ul><li><p>Откроется <strong>nano</strong> блокнот</p></li><li><p>Измените в блокноте строки <strong>head-id</strong> и <strong>Wallet_Seed_Phares</strong> (24 ключа слова)</p></li></ul><pre data-type="codeBlock" text="version: &apos;3&apos;

services:
  inference:
    container_name: inference-basic-eth-pred
    build:
      context: .
    command: python -u /app/app.py
    ports:
      - &quot;8000:8000&quot;
    networks:
      eth-model-local:
        aliases:
          - inference
        ipv4_address: 172.22.0.4
    healthcheck:
      test: [&quot;CMD&quot;, &quot;curl&quot;, &quot;-f&quot;, &quot;http://localhost:8000/inference/ETH&quot;]
      interval: 10s
      timeout: 5s
      retries: 12
    volumes:
      - ./inference-data:/app/data

  updater:
    container_name: updater-basic-eth-pred
    build: .
    environment:
      - INFERENCE_API_ADDRESS=http://inference:8000
    command: &gt;
      sh -c &quot;
      while true; do
        python -u /app/update_app.py;
        sleep 24h;
      done
      &quot;
    depends_on:
      inference:
        condition: service_healthy
    networks:
      eth-model-local:
        aliases:
          - updater
        ipv4_address: 172.22.0.5

  worker:
    container_name: worker-basic-eth-pred
    environment:
      - INFERENCE_API_ADDRESS=http://inference:8000
      - HOME=/data
    build:
      context: .
      dockerfile: Dockerfile_b7s
    entrypoint:
      - &quot;/bin/bash&quot;
      - &quot;-c&quot;
      - |
        if [ ! -f /data/keys/priv.bin ]; then
          echo &quot;Generating new private keys...&quot;
          mkdir -p /data/keys
          cd /data/keys
          allora-keys
        fi
        # Change boot-nodes below to the key advertised by your head
        allora-node --role=worker --peer-db=/data/peerdb --function-db=/data/function-db \
          --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \
          --private-key=/data/keys/priv.bin --log-level=debug --port=9011 \
          --boot-nodes=/ip4/172.22.0.100/tcp/9010/p2p/head-id \
          --topic=1 \
          --allora-chain-key-name=testkey \
          --allora-chain-restore-mnemonic=&apos;WALLET_SEED_PHRASE&apos; \
          --allora-node-rpc-address=https://allora-rpc.edgenet.allora.network/ \
          --allora-chain-topic-id=1
    volumes:
      - ./worker-data:/data
    working_dir: /data
    depends_on:
      - inference
      - head
    networks:
      eth-model-local:
        aliases:
          - worker
        ipv4_address: 172.22.0.10

  head:
    container_name: head-basic-eth-pred
    image: alloranetwork/allora-inference-base-head:latest
    environment:
      - HOME=/data
    entrypoint:
      - &quot;/bin/bash&quot;
      - &quot;-c&quot;
      - |
        if [ ! -f /data/keys/priv.bin ]; then
          echo &quot;Generating new private keys...&quot;
          mkdir -p /data/keys
          cd /data/keys
          allora-keys
        fi
        allora-node --role=head --peer-db=/data/peerdb --function-db=/data/function-db  \
          --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \
          --private-key=/data/keys/priv.bin --log-level=debug --port=9010 --rest-api=:6000
    ports:
      - &quot;6000:6000&quot;
    volumes:
      - ./head-data:/data
    working_dir: /data
    networks:
      eth-model-local:
        aliases:
          - head
        ipv4_address: 172.22.0.100


networks:
  eth-model-local:
    driver: bridge
    ipam:
      config:
        - subnet: 172.22.0.0/24

volumes:
  inference-data:
  worker-data:
  head-data:
"><code>version: <span class="hljs-string">'3'</span>

services:
  inference:
    container_name: inference<span class="hljs-operator">-</span>basic<span class="hljs-operator">-</span>eth<span class="hljs-operator">-</span>pred
    build:
      context: .
    command: python <span class="hljs-operator">-</span>u <span class="hljs-operator">/</span>app<span class="hljs-operator">/</span>app.py
    ports:
      <span class="hljs-operator">-</span> <span class="hljs-string">"8000:8000"</span>
    networks:
      eth<span class="hljs-operator">-</span>model<span class="hljs-operator">-</span>local:
        aliases:
          <span class="hljs-operator">-</span> inference
        ipv4_address: <span class="hljs-number">172.22</span><span class="hljs-number">.0</span><span class="hljs-number">.4</span>
    healthcheck:
      test: [<span class="hljs-string">"CMD"</span>, <span class="hljs-string">"curl"</span>, <span class="hljs-string">"-f"</span>, <span class="hljs-string">"http://localhost:8000/inference/ETH"</span>]
      interval: 10s
      timeout: 5s
      retries: <span class="hljs-number">12</span>
    volumes:
      <span class="hljs-operator">-</span> ./inference<span class="hljs-operator">-</span>data:<span class="hljs-operator">/</span>app<span class="hljs-operator">/</span>data

  updater:
    container_name: updater<span class="hljs-operator">-</span>basic<span class="hljs-operator">-</span>eth<span class="hljs-operator">-</span>pred
    build: .
    environment:
      <span class="hljs-operator">-</span> INFERENCE_API_ADDRESS<span class="hljs-operator">=</span>http:<span class="hljs-comment">//inference:8000</span>
    command: <span class="hljs-operator">></span>
      sh <span class="hljs-operator">-</span>c <span class="hljs-string">"
      while true; do
        python -u /app/update_app.py;
        sleep 24h;
      done
      "</span>
    depends_on:
      inference:
        condition: service_healthy
    networks:
      eth<span class="hljs-operator">-</span>model<span class="hljs-operator">-</span>local:
        aliases:
          <span class="hljs-operator">-</span> updater
        ipv4_address: <span class="hljs-number">172.22</span><span class="hljs-number">.0</span><span class="hljs-number">.5</span>

  worker:
    container_name: worker<span class="hljs-operator">-</span>basic<span class="hljs-operator">-</span>eth<span class="hljs-operator">-</span>pred
    environment:
      <span class="hljs-operator">-</span> INFERENCE_API_ADDRESS<span class="hljs-operator">=</span>http:<span class="hljs-comment">//inference:8000</span>
      <span class="hljs-operator">-</span> HOME<span class="hljs-operator">=</span><span class="hljs-operator">/</span>data
    build:
      context: .
      dockerfile: Dockerfile_b7s
    entrypoint:
      <span class="hljs-operator">-</span> <span class="hljs-string">"/bin/bash"</span>
      <span class="hljs-operator">-</span> <span class="hljs-string">"-c"</span>
      <span class="hljs-operator">-</span> <span class="hljs-operator">|</span>
        <span class="hljs-keyword">if</span> [ <span class="hljs-operator">!</span> <span class="hljs-operator">-</span>f <span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>keys<span class="hljs-operator">/</span>priv.bin ]; then
          echo <span class="hljs-string">"Generating new private keys..."</span>
          mkdir <span class="hljs-operator">-</span>p <span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>keys
          cd <span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>keys
          allora<span class="hljs-operator">-</span>keys
        fi
        # Change boot<span class="hljs-operator">-</span>nodes below to the key advertised by your head
        allora<span class="hljs-operator">-</span>node <span class="hljs-operator">-</span><span class="hljs-operator">-</span>role<span class="hljs-operator">=</span>worker <span class="hljs-operator">-</span><span class="hljs-operator">-</span>peer<span class="hljs-operator">-</span>db<span class="hljs-operator">=</span><span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>peerdb <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-function"><span class="hljs-keyword">function</span>-<span class="hljs-title">db</span>=/<span class="hljs-title">data</span>/<span class="hljs-title"><span class="hljs-keyword">function</span></span>-<span class="hljs-title">db</span> \
          --<span class="hljs-title">runtime</span>-<span class="hljs-title">path</span>=/<span class="hljs-title">app</span>/<span class="hljs-title">runtime</span> --<span class="hljs-title">runtime</span>-<span class="hljs-title">cli</span>=<span class="hljs-title">bls</span>-<span class="hljs-title">runtime</span> --<span class="hljs-title">workspace</span>=/<span class="hljs-title">data</span>/<span class="hljs-title">workspace</span> \
          --<span class="hljs-title"><span class="hljs-keyword">private</span></span>-<span class="hljs-title">key</span>=/<span class="hljs-title">data</span>/<span class="hljs-title">keys</span>/<span class="hljs-title">priv</span>.<span class="hljs-title">bin</span> --<span class="hljs-title">log</span>-<span class="hljs-title">level</span>=<span class="hljs-title">debug</span> --<span class="hljs-title">port</span>=9011 \
          --<span class="hljs-title">boot</span>-<span class="hljs-title">nodes</span>=/<span class="hljs-title">ip4</span>/172.22.0.100/<span class="hljs-title">tcp</span>/9010/<span class="hljs-title">p2p</span>/<span class="hljs-title">head</span>-<span class="hljs-title">id</span> \
          --<span class="hljs-title">topic</span>=1 \
          --<span class="hljs-title">allora</span>-<span class="hljs-title">chain</span>-<span class="hljs-title">key</span>-<span class="hljs-title">name</span>=<span class="hljs-title">testkey</span> \
          --<span class="hljs-title">allora</span>-<span class="hljs-title">chain</span>-<span class="hljs-title">restore</span>-<span class="hljs-title">mnemonic</span>='<span class="hljs-title">WALLET_SEED_PHRASE</span>' \
          --<span class="hljs-title">allora</span>-<span class="hljs-title">node</span>-<span class="hljs-title">rpc</span>-<span class="hljs-title"><span class="hljs-keyword">address</span></span>=<span class="hljs-title">https</span>:<span class="hljs-comment">//allora-rpc.edgenet.allora.network/ \</span>
          --<span class="hljs-title">allora</span>-<span class="hljs-title">chain</span>-<span class="hljs-title">topic</span>-<span class="hljs-title">id</span>=1
    <span class="hljs-title">volumes</span>:
      - ./<span class="hljs-title">worker</span>-<span class="hljs-title">data</span>:/<span class="hljs-title">data</span>
    <span class="hljs-title">working_dir</span>: /<span class="hljs-title">data</span>
    <span class="hljs-title">depends_on</span>:
      - <span class="hljs-title">inference</span>
      - <span class="hljs-title">head</span>
    <span class="hljs-title">networks</span>:
      <span class="hljs-title">eth</span>-<span class="hljs-title">model</span>-<span class="hljs-title">local</span>:
        <span class="hljs-title">aliases</span>:
          - <span class="hljs-title">worker</span>
        <span class="hljs-title">ipv4_address</span>: 172.22.0.10

  <span class="hljs-title">head</span>:
    <span class="hljs-title">container_name</span>: <span class="hljs-title">head</span>-<span class="hljs-title">basic</span>-<span class="hljs-title">eth</span>-<span class="hljs-title">pred</span>
    <span class="hljs-title">image</span>: <span class="hljs-title">alloranetwork</span>/<span class="hljs-title">allora</span>-<span class="hljs-title">inference</span>-<span class="hljs-title">base</span>-<span class="hljs-title">head</span>:<span class="hljs-title">latest</span>
    <span class="hljs-title">environment</span>:
      - <span class="hljs-title">HOME</span>=/<span class="hljs-title">data</span>
    <span class="hljs-title">entrypoint</span>:
      - "/<span class="hljs-title">bin</span>/<span class="hljs-title">bash</span>"
      - "-<span class="hljs-title">c</span>"
      - |
        <span class="hljs-title"><span class="hljs-keyword">if</span></span> [ ! -<span class="hljs-title">f</span> /<span class="hljs-title">data</span>/<span class="hljs-title">keys</span>/<span class="hljs-title">priv</span>.<span class="hljs-title">bin</span> ]</span>; then
          echo <span class="hljs-string">"Generating new private keys..."</span>
          mkdir <span class="hljs-operator">-</span>p <span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>keys
          cd <span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>keys
          allora<span class="hljs-operator">-</span>keys
        fi
        allora<span class="hljs-operator">-</span>node <span class="hljs-operator">-</span><span class="hljs-operator">-</span>role<span class="hljs-operator">=</span>head <span class="hljs-operator">-</span><span class="hljs-operator">-</span>peer<span class="hljs-operator">-</span>db<span class="hljs-operator">=</span><span class="hljs-operator">/</span>data<span class="hljs-operator">/</span>peerdb <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-function"><span class="hljs-keyword">function</span>-<span class="hljs-title">db</span>=/<span class="hljs-title">data</span>/<span class="hljs-title"><span class="hljs-keyword">function</span></span>-<span class="hljs-title">db</span>  \
          --<span class="hljs-title">runtime</span>-<span class="hljs-title">path</span>=/<span class="hljs-title">app</span>/<span class="hljs-title">runtime</span> --<span class="hljs-title">runtime</span>-<span class="hljs-title">cli</span>=<span class="hljs-title">bls</span>-<span class="hljs-title">runtime</span> --<span class="hljs-title">workspace</span>=/<span class="hljs-title">data</span>/<span class="hljs-title">workspace</span> \
          --<span class="hljs-title"><span class="hljs-keyword">private</span></span>-<span class="hljs-title">key</span>=/<span class="hljs-title">data</span>/<span class="hljs-title">keys</span>/<span class="hljs-title">priv</span>.<span class="hljs-title">bin</span> --<span class="hljs-title">log</span>-<span class="hljs-title">level</span>=<span class="hljs-title">debug</span> --<span class="hljs-title">port</span>=9010 --<span class="hljs-title">rest</span>-<span class="hljs-title">api</span>=:6000
    <span class="hljs-title">ports</span>:
      - "6000:6000"
    <span class="hljs-title">volumes</span>:
      - ./<span class="hljs-title">head</span>-<span class="hljs-title">data</span>:/<span class="hljs-title">data</span>
    <span class="hljs-title">working_dir</span>: /<span class="hljs-title">data</span>
    <span class="hljs-title">networks</span>:
      <span class="hljs-title">eth</span>-<span class="hljs-title">model</span>-<span class="hljs-title">local</span>:
        <span class="hljs-title">aliases</span>:
          - <span class="hljs-title">head</span>
        <span class="hljs-title">ipv4_address</span>: 172.22.0.100


<span class="hljs-title">networks</span>:
  <span class="hljs-title">eth</span>-<span class="hljs-title">model</span>-<span class="hljs-title">local</span>:
    <span class="hljs-title">driver</span>: <span class="hljs-title">bridge</span>
    <span class="hljs-title">ipam</span>:
      <span class="hljs-title">config</span>:
        - <span class="hljs-title">subnet</span>: 172.22.0.0/24

<span class="hljs-title">volumes</span>:
  <span class="hljs-title">inference</span>-<span class="hljs-title">data</span>:
  <span class="hljs-title">worker</span>-<span class="hljs-title">data</span>:
  <span class="hljs-title">head</span>-<span class="hljs-title">data</span>:
</span></code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5117d7adde643daa258dc619e4e65b6ab765f3526f857a766d335026ce706ac8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Вставляем весь текст и прожимаем на клавиатуре</p></li><li><p><strong>CTRL X — Y — Enter</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c17387b73f75c802bbbbd5de69ef8c4a0dc817498c50da9690c4b2096a4cdd69.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Запускаем воркер</p></li></ul><pre data-type="codeBlock" text="docker compose build
docker compose up -d
"><code>docker compose build
docker compose up <span class="hljs-operator">-</span>d
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/45eed0d122f184796ca37350a450f94666ba67b5af68327ccaaec921b40fee86.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Заходим в докер и видим контейнер <strong>node-worker</strong></p></li><li><p>Слева копируем <strong>CONTAINER ID</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/432508de0de1eaeb614b06c91197506e48b80dd7339e2355a9a1513f9f0eed03.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Смотрим логи, замените <strong>ВАШ_COINTERID</strong></p></li></ul><pre data-type="codeBlock" text="docker logs -f ВАШ_COINTERID
"><code>docker logs <span class="hljs-operator">-</span>f ВАШ_COINTERID
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7dc6a46187180434fc1ecbd6f09374e558d797b4f6da6cf1f568e5eacacd4ef5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Проверяем статус ноды</p></li></ul><pre data-type="codeBlock" text="curl --location &apos;http://localhost:6000/api/v1/functions/execute&apos; \
--header &apos;Content-Type: application/json&apos; \
--data &apos;{
    &quot;function_id&quot;: &quot;bafybeigpiwl3o73zvvl6dxdqu7zqcub5mhg65jiky2xqb4rdhfmikswzqm&quot;,
    &quot;method&quot;: &quot;allora-inference-function.wasm&quot;,
    &quot;parameters&quot;: null,
    &quot;topic&quot;: &quot;1&quot;,
    &quot;config&quot;: {
        &quot;env_vars&quot;: [
            {
                &quot;name&quot;: &quot;BLS_REQUEST_PATH&quot;,
                &quot;value&quot;: &quot;/api&quot;
            },
            {
                &quot;name&quot;: &quot;ALLORA_ARG_PARAMS&quot;,
                &quot;value&quot;: &quot;ETH&quot;
            }
        ],
        &quot;number_of_nodes&quot;: -1,
        &quot;timeout&quot;: 2
    }
}&apos;
"><code>curl <span class="hljs-attr">--location</span> 'http://localhost:<span class="hljs-number">6000</span>/api/v1/functions/execute<span class="hljs-string">' \
--header '</span>Content-Type: application/json<span class="hljs-string">' \
--data '</span>{
    "function_id": <span class="hljs-string">"bafybeigpiwl3o73zvvl6dxdqu7zqcub5mhg65jiky2xqb4rdhfmikswzqm"</span>,
    <span class="hljs-string">"method"</span>: <span class="hljs-string">"allora-inference-function.wasm"</span>,
    <span class="hljs-string">"parameters"</span>: null,
    <span class="hljs-string">"topic"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"config"</span>: {
        "env_vars": [
            {
                "name": <span class="hljs-string">"BLS_REQUEST_PATH"</span>,
                <span class="hljs-string">"value"</span>: <span class="hljs-string">"/api"</span>
            },
            {
                "name": <span class="hljs-string">"ALLORA_ARG_PARAMS"</span>,
                <span class="hljs-string">"value"</span>: <span class="hljs-string">"ETH"</span>
            }
        ],
        "number_of_nodes": -<span class="hljs-number">1</span>,
        <span class="hljs-string">"timeout"</span>: <span class="hljs-number">2</span>
    }
}'
</code></pre><ul><li><p>Если у вас пишет вот так или другие цифры, то все норм</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4591bc4fe755b72df2dfcd80d74be705b4011aa1f0ad841663f17fa81e1ee644.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Проверить ноду на обновы</p></li></ul><pre data-type="codeBlock" text="curl http://localhost:8000/update
"><code>curl http://localhost:8000/update
</code></pre><ul><li><p>Должен быть ответ <strong>0</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e320f219a7a68f58e50755b32127c15837676635a4c5bbd9fb314e03aa025f1f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Проверить вывод ноды</p></li></ul><pre data-type="codeBlock" text="curl http://localhost:8000/inference/ETH
"><code>curl http://localhost:8000/inference/ETH
</code></pre><ul><li><p>Должен быть ответ <strong>2900</strong> или около того (<strong>ошибок не должно быть</strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f46a2566c1e66abf866181dcea15a65ed185efba956c74de53e93afd12862f21.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Через некоторое время, появятся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.allora.network/points/campaigns">поинты</a> за установленную ноду</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/ae32a3a8594808473c8a9a0cc634107ccd29279014a7a41aee9b8fda3f0c4909.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Nubit. Устанавливаем ноду]]></title>
            <link>https://paragraph.com/@sosew/nubit-2</link>
            <guid>PQmmQgVs60pkNe38vSW2</guid>
            <pubDate>Wed, 19 Jun 2024 19:43:09 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Nubit — это собственный уровень доступности данных Биткойн, предназначенный для революционного преобразования обработки транзакций в сети БиткойнИнвестировали: $12 000 000Инвесторы: Polychain Capital, OKX, Spartan, и другиеХарактеристики: 1CPU/500MBRAM/40SSD — рекомендованныеАрендовать сервер: XorekCloud, AEZA , Hetzner , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatUbuntu:...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Nubit</strong> — это собственный уровень доступности данных <strong>Биткойн</strong>, предназначенный для революционного преобразования обработки транзакций в сети <strong>Биткойн</strong></p><ul><li><p><strong>Инвестировали:</strong> $12 000 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, OKX, Spartan, и другие</p></li><li><p><strong>Характеристики:</strong> 1CPU/500<strong>MB</strong>RAM/40SSD — <strong>рекомендованные</strong></p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li><li><p><strong>Ubuntu:</strong> 22.04</p></li></ul><p>Команда объявила о запуске первого этапа тестнета, который разделен на 3 фазы : <strong>Community Assemble, Light Node Quest, Testnet Adventure</strong></p><p>Ранее мы выполняли задания с тестовой сети <strong>Nubit</strong>, задания максимально простые, они еще актуальны, а вот к ним еще можно будет привязать новую активность, а точнее установить <strong>Light Node</strong></p><p>Нода максимально легкая, также устанавливается скриптом. Возможно, что за наши активности, нас вознаградят</p><p>Расписал для вас понятный гайд с установкой ноды, ставиться просто, сервак советую брать (<strong>минимум как требуется в рекомендации</strong>), чтобы избежать дальнейшие траблы с синхронизацией</p><blockquote><p><em>Если вы новичок в нодах, тогда вам для начала следует прочитать подробный гайд для нодеров<br></em><strong><em>[</em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7%5C"><strong><em>https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7\</em></strong></a><strong><em> </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7%5C"><strong><em>https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7\</em></strong></a><strong><em> </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7%5D(https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7)"><strong><em>https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7](https://teletype.in/@cryptoforto/guide-node-guide-fortoVVevhxKbgy7)</em></strong></a></p></blockquote><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mobaxterm.mobatek.net/"><strong>MobaXterm</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/42b9846f0e9d45ca2e5109f63f252c629fd908952d930dfc832fba25f1cd3d5c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подключаемся на арендованный сервер через <strong>root</strong></p></li><li><p>Выполняем команды по списку</p></li><li><p>Обновляем и устанавливаем необходимые пакеты</p></li></ul><pre data-type="codeBlock" text="sudo apt update &amp;&amp; sudo apt update -y 
sudo apt install curl git wget build-essential jq screen -y
"><code>sudo apt update <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> sudo apt update <span class="hljs-operator">-</span>y 
sudo apt install curl git wget build<span class="hljs-operator">-</span>essential jq screen <span class="hljs-operator">-</span>y
</code></pre><ul><li><p>Вводим “<strong>Y</strong>” если потребует</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d6f92760ead7b45cdb72ee4239f1db1e3ea49eea068f9a3abf4c6e27e4f95bf8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Тут прожимаем просто <strong>Enter</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/82987f8b42950150e5f8187e44d8a7c08ccddc2435747466e0f4842c9ce048e0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем <strong>screen</strong></p></li></ul><pre data-type="codeBlock" text="screen -S nubit
"><code>screen <span class="hljs-operator">-</span>S nubit
</code></pre><ul><li><p>Запускаем скрипт с установкой ноды</p></li></ul><pre data-type="codeBlock" text="curl -sL1 https://nubit.sh | bash
"><code>curl <span class="hljs-operator">-</span>sL1 https:<span class="hljs-comment">//nubit.sh | bash</span>
</code></pre><ul><li><p>Пойдет установка</p></li><li><p>Ждём минут <strong>5</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b0c0b45c44488788e0075bf1174095a29e2b00e35bf305c81f674ace54962ca4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Закрываем логи кнопками на клавиатуре <strong>CTRL + A + D</strong></p></li><li><p>Ищем нашу сидку</p></li></ul><pre data-type="codeBlock" text="cat $HOME/nubit-node/mnemonic.txt
"><code>cat $HOME<span class="hljs-operator">/</span>nubit<span class="hljs-operator">-</span>node<span class="hljs-operator">/</span>mnemonic.txt
</code></pre><ul><li><p>Копируем и сохраняем в надежное место</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/49a20e71bc6d79fbc6bd85be5c92d299fb1aa578f7638d9f33dffd2802051061.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также вы можете следить за работоспособностью ноды с помощью команды для <strong>просмотра логов</strong></p></li></ul><pre data-type="codeBlock" text="screen -r nubit
"><code>screen <span class="hljs-operator">-</span>r nubit
</code></pre><h1 id="h-zamenyaem-avtomaticheskuyu-sidku-po-zhelaniyu" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Заменяем автоматическую сидку. По желанию</strong></h1><ul><li><p>Устанавливаем nano</p></li></ul><pre data-type="codeBlock" text="sudo apt-get update
sudo apt-get install nano
"><code>sudo apt<span class="hljs-operator">-</span><span class="hljs-keyword">get</span> <span class="hljs-keyword">update</span>
sudo apt<span class="hljs-operator">-</span><span class="hljs-keyword">get</span> install nano
</code></pre><ul><li><p>Открываем блокнот</p></li></ul><pre data-type="codeBlock" text="nano $HOME/nubit-node/mnemonic.txt
"><code>nano $HOME<span class="hljs-operator">/</span>nubit<span class="hljs-operator">-</span>node<span class="hljs-operator">/</span>mnemonic.txt
</code></pre><ul><li><p>Заменяем сидку</p></li><li><p>Прожимаем <strong>CNTR+X, Y</strong> далее <strong>Enter</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8cabe434a4116bd7aa10b6f2b48b109534cc0956e88c556d1c14103a3abc5a31.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Проверяем, заменилась сидка или нет</p></li></ul><pre data-type="codeBlock" text="cat $HOME/nubit-node/mnemonic.txt
"><code>cat $HOME<span class="hljs-operator">/</span>nubit<span class="hljs-operator">-</span>node<span class="hljs-operator">/</span>mnemonic.txt
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2dbb58ed04955b0566ebd95f79ee597b66e3a42fa86fe7042592d172a8fd9ebd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/sosew.eth"><strong>Mirror</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/d53879b9042a9630f15ee336063943784d5c777f59e39927c8add83693a62e0e.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Berachain. Вторая часть тестнета]]></title>
            <link>https://paragraph.com/@sosew/berachain-4</link>
            <guid>oqIsOKDHIxVSzzGCv334</guid>
            <pubDate>Wed, 12 Jun 2024 14:26:45 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Berachain — это EVM-совместимый блокчейн первого уровня, созданный с помощью Cosmos SDK и защищенный новым протоколом консенсуса Proof-of-LiquidityИнвестировали: $142 000 000Инвесторы: Polychain Capital, HashKey Capital и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatРанее мы выполняли первую фазу тестнета, где нужно было...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Berachain</strong> — это <strong>EVM</strong>-совместимый блокчейн первого уровня, созданный с помощью <strong>Cosmos SDK</strong> и защищенный новым протоколом консенсуса <strong>Proof-of-Liquidity</strong></p><ul><li><p><strong>Инвестировали:</strong> $142 000 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, HashKey Capital и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Ранее мы выполняли первую фазу тестнета, где нужно было активничать в тестовой сети <strong>Berachain Artio</strong>, она длилась достаточно долго</p><p>Сейчас запустили вторую часть тестнета в тестовой сети <strong>Berachain bArtio B2,</strong> и я настоятельно рекомендую проявить максимальную активность, всё таки <strong>$142M</strong> инвестиции это не шутки</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Запрашиваем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.faucet.berachain.com/#dapps"><strong>тестовые</strong></a> токены <strong>$BERA —</strong> тыкаем на <strong>Drip Tokens</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fd8eb5f74f72202b5a663411783db63202827da15cb5fe17f4b5ce4f2bd7c705.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Кстати! Чтобы запросить тестовые токены </em><strong><em>$BERA</em></strong><em>, нужно будет холдить </em><strong><em>0,01 $ETH</em></strong><em> в основной сети </em><strong><em>Ethereum,</em></strong><em> а также скорее всего</em>* VPN. Также используйте <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto/1013">Rabby Wallet</a>, будет меньше лагов и проблем</p></blockquote><ul><li><p>Дешевый <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://relay.link/bridge/zora">бридж</a> из <strong>Zora,Scroll,Base</strong> в <strong>Ethereum</strong> (3–4 бакса комсы)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bfa30b9caae1d05e705018d3291751ceae5df538d874f23237bb643157122162.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.bex.berachain.com/"><strong>сюда</strong></a> — привязываем кошелек — выбираем сеть <strong>Berachain-Bartio</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/039339bebee6d865f870143831fc3142303aa6ad72f4570848e14219801d0876.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8c79a43475820730d0b4edf3720bd02f56bfa8a1a46428d42856dfd15fae9a61.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее делаем свап <strong>$BERA</strong> на разные токены: <strong>$HONEY, $STGUSDC, $WETH, $WBTC, $WBERA</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7fa5122b165ea47648798e1b55e96a28c8d32b111dc6daf70668af1fcd0cb14d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a9bbabc4f2ba8365d97ec439988a024e091afc517b86d2eedbec3995609450ee.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5b6f48aca0d1a9cf944dd55ef05d63a7474eb522246fa6e2cb117bb43b98ae8c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/73a99b3b25f0749de793eaae7a56634d97aec3faa43323cae7ec2b04e235bbe4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.bex.berachain.com/pools">сюда</a> и предоставляем ликвидность во все возможные пулы</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/892650af3bb7652ddc9c54eadc6256bbd8670163cb357eb16ef861dcfbfdd8c5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1c86669c5b90dbeddf618db7ebef08393682c3f438969874335f438459ac10fc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Апруваем</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/105214c57e51b8c83c4f953c29931ee843928c06f53480b7d3110b255cb65702.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отслеживайте свою ликвидность во вкладке <strong>My pools</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9f6f8ad5c346fd1f770cffbebc30de248ce7ab218dd55d7c7114fd9b1fb8b6c4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.honey.berachain.com/">сюда</a> и меняем <strong>$STGUSDC</strong> на <strong>$HONEY</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8cdadf9a133aa0987ecdd9693352b68d80fdc914e8184f18c59b6260527772c2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Минтим <strong>$HONEY</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2e5d2015e44654490f8987c428358ca19110b1623743c03a3afbde1c62e983e7.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.bend.berachain.com/dashboard">сюда</a> и депозитим <strong>$WBTC</strong> и <strong>$WETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fef944b769b0cc99e35b6838c69489b93ff63562e6261032dad93fec3f3a0c17.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Тыкаем на <strong>Supply $HONEY</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5b8756905bc07d675fdfc236c0f005050733861cdf6b5b0cae31750c48896f68.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Апруваем</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/37ff3add83d7d97a4a4df466fa4a6cca84a03f2213fefd9ae4f0e31f835f729d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Снизу тыкаем на <strong>Borrow</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6d4d62b26df56a9e1ae8dc85ec048984f53d888a60bbfbfcd7a74e7943589a84.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>И также подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fb716b36df6c1706b1c56b43048d5a6235f61b77dc23c0c584ebf8249918512f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Сразу же клеймим реварды в токенах <strong>$BGT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1da9d2a91c5d0ee62217f11fe80b9b2221c7b5f70e47271e215483b0f8d508a9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Трейдим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.berps.berachain.com/berpetuals">платформе</a> с плечом токенами <strong>$HONEY</strong> — минималка <strong>0.5 токенов</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0176a7413177fc90386e97b8188262efc8ebd2ec93a13924f3814cdb498314a0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Сделайте пару сделок с <strong>Long</strong> и <strong>Short</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c23a4923d4ae22704a680de9efcaddaddc715d25e59dda78221f11fdf4146398.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также предоставляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.berps.berachain.com/vault"><strong>ликвидность</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ee90ad8871b1648c017fcf354f5df64a4cf5599451cad64c90725737a1da76e1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.station.berachain.com/gauge">сюда</a> и нужно будет проголосовать</p></li><li><p>Делаем как на скрине</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0f41425ae118f27bb1f4994d8bc64c1aa5af73aae5e569866bb93849c94b54d7.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выбираем <strong>$HONEY</strong> и вписываем <strong>1</strong> — апруваем и подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7b446810dba56a32f23f88b0494a1c4dde4a417db92789f7552a0e92ccf9744b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.station.berachain.com/delegate">сюда</a> и делегируем любому валидатору наши токены <strong>$BGT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a8c7044a052bc2293f7668e8020890044e2f6fb6260662e1cfb8627b7fe4b326.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.station.berachain.com/redeem">сюда</a> и меняем <strong>$BGT</strong> на <strong>$BERA</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a717293d1573bebe5cdbd556d5d82429b51eca70356c02551d1032df052acd92.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.station.berachain.com/rewards">Здесь</a> будем клеймить наши <strong>$BGT</strong> за делегирования</p></li></ul><blockquote><p><em>Советую периодически повторять все те же самые действия пару раз в неделю, чтобы отличаться среди сибилов и иметь максимально прогретый аккаунт</em></p></blockquote><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/sosew.eth"><strong>Mirror</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/bcc71d417c71951face4f8aabc548bf61775371e3cf19a7ad4a0629fdb4c3c49.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Glacier Network. Активности с подтвержденным дропом]]></title>
            <link>https://paragraph.com/@sosew/glacier-network</link>
            <guid>VXbUt1XSYGK2DJXK8Y5P</guid>
            <pubDate>Tue, 11 Jun 2024 18:15:44 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Glacier — это команда создающая полностью доступную и масштабируемую базу данных NoSQL для децентрализованных приложений Web3Инвестировали: $10 900 000Инвесторы: Aptos, Gate, Mask, KuCoin Ventures и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatСнова гем на радаре. Проект собрал не малую сумму инвестиций от ти...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Glacier</strong> — это команда создающая полностью доступную и масштабируемую базу данных <strong>NoSQL</strong> для децентрализованных приложений <strong>Web3</strong></p><ul><li><p><strong>Инвестировали:</strong> $10 900 000</p></li><li><p><strong>Инвесторы:</strong> Aptos, Gate, Mask, KuCoin Ventures и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Снова гем на радаре. Проект собрал не малую сумму инвестиций от тир <strong>2–3 фондов</strong> и cейчас он оценивается в <strong>$100M</strong></p><p>На данный момент мы можем поделать новые активности, а именно выполнить три разных заданий и позже обменять заработанные поинты на токены проекта <strong>$GLS</strong></p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.glacier.io/points/?inviter=0x05Bb279648e4e4cbCdeCF2D4d6ec310999d444e7"><strong>сайт</strong></a>, спускаемся вниз и привязываем кошелек</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/69059dab2c7a194dcb2179ce440769b004269cca460d6f6325670c3ec983cdff.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://playground.bnb.glacier.io/">сюда</a> и коннектим <strong>EVM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4973a94739e3819115aff122e358fad3bf697e398a69782517470455d2c10544.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь тыкаем на <strong>Create a new Namespace</strong> и создаем <strong>никнейм</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fb04af0072692c4c0cc1ebbe844a4c0abda8b0a49e37af733c4cebcf051a245c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/34dbb68fba34c5aaf7069c71678b403a7849f9eb2988fec138649eec03ca9121.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее слева мы тыкаем на <strong>Create Dataset</strong> и даём <strong>второй никнейм</strong> — жмём <strong>OK</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1cc85842f1c78c630869126929792a293a4b3df1251767bacfc487aad1327636.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Прожимаем на <strong>Create Dataset</strong> и вписываем свои данные — создаем <strong>NFT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a3d6afd65ba7dedd683288de188f322ae772f1cd5a0f5d8762d86531241192b9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нажмите <strong>Mint NFT</strong> и перейдите в <strong>NFT Minting Space</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5f5c2f36f5568f6a076b2b5bfd66dfe6505967c1116d75ef09433d0db1da5932.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Перенаправит на сайт — коннектим <strong>EVM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/91a2ec3cadebc50a63de9e7c50be756b15471d4a9ae843bbc734c735de604193.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Это может занять от нескольких минут до <strong>15 минут</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f6118041b02638f36289f4f1d1f81221602b5d380cbaea708c50b8f6881c5fc0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Для подтверждения транзакции, вам потребуется газ токенов <strong>$OKB</strong> в сети <strong>Layer</strong></p></li><li><p>Их можно купить на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.okx.com/join/1858512"><strong>OKX</strong></a></p></li><li><p>Выводим <strong>0.012 $OKX</strong> (1 бакс, это будет достаточно)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8a7d53415c15f9ec8421032ce0f065f2c2230afb563af32df92220e93522edb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/86bbc94e2b54a271e4f6d70ab9993f25232ca126446cffe992d8536f005c1990.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выполняем задания на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/glacierlabs/GCv5Utzo3j">Galxe</a> — забираем <strong>OAT</strong> и <strong>100 points</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6b07aaacac84bd1e00df5eb4e0514aa678e59d24d44ef033bd66738256820b66.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся на сайт и спускаемся вниз и видим, что уже начали начислять поинты</p></li><li><p>Ждём дальнейших заданий</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b402f0207e2ba46616a3ef5fa1c46f88a1c4524e97df84e07413d4bfd6e7754.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/1e98f103cd26c8dc2b87afe023ed6a58d65cfa34310b0389c1678c5614bf0f9c.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Nubit. Выполняем тестнет]]></title>
            <link>https://paragraph.com/@sosew/nubit</link>
            <guid>26pfdu7daCr7qr8vYxgJ</guid>
            <pubDate>Mon, 10 Jun 2024 10:44:14 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Nubit — это собственный уровень доступности данных Биткойн, предназначенный для революционного преобразования обработки транзакций в сети БиткойнИнвестировали: $12 000 000Инвесторы: Polychain Capital, OKX, Spartan, и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatКоманда объявила о запуске первого этапа тестнета, который р...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Nubit</strong> — это собственный уровень доступности данных <strong>Биткойн</strong>, предназначенный для революционного преобразования обработки транзакций в сети <strong>Биткойн</strong></p><ul><li><p><strong>Инвестировали:</strong> $12 000 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, OKX, Spartan, и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Команда <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/nubit_org/status/1799444984032289108"><strong>объявила</strong></a> о запуске первого этапа тестнета, который разделен на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.nubit.org/announcing-nubit-alpha-testnet-phase-1-community-assemble-1c2703b9e5a1">3 фазы</a>: <strong>Community Assemble, Light Node Quest, Testnet Adventure</strong></p><p>Сейчас мы можем выполнить задания с тестовой сетью <strong>Nubit</strong>. Задания максимально простые и это пока единственная активность, за которую могут раздать</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap?hl=en"><strong>Keplr Wallet</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6c2543b3bd41e66aeef5f665b4a311e15de102c67e6655a907b63347c3fbe9fa.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Добавляем тестовую сеть <strong>Nubit Testnet</strong> на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chains.keplr.app/"><strong>сайте</strong></a></p></li><li><p>Вписываем <strong>Nubit Testnet</strong> в тестовой строке — и прожимаем <strong>Add to Keplr</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ca2c1660c5ce5b0e5d416ecf996eacd38cc24e4c2a4b533981f1e7bc2824a038.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b63af8a469d40d3b6ddc91431dc847b7b2bdb086571dd7248356fa46707da925.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем наш <strong>Nubit адрес</strong> — В кошельке прописываем <strong>NUB</strong> и тыкаем на <strong>Manage</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/251944609878b66f8e8c8f1916a4eeda4379878c3c3459e45a57c56dcf9c85fb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Добавляем в быстрый доступ</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3ce215689f334b2ce237ac9d6bb38d97c9e802aae3a6f7f36bc7f30357cb17bd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем наш <strong>NUB адрес</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/179fab9acfda8c1616611e24a1e69bbf0313bbce31ae86646248526468eb89ef.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://alpha.nubit.org/">сайт</a> и подключаем <strong>Keplr Wallet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5edbe04848bb7048181327814c9fbc2d3603debba4c9d464057e62052f49cdce.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.nubit.org/">крану</a> и запрашиваем тестовые токены</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ffaca44dafabb07137115e30a47ab17ad2311083c07b2dace19856e22beeec38.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Запросили</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/89449e82c3aa1c51c182660d0834d58596b07c27fba767175a7223f98de7bfd9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправьте токены <strong>$NUB</strong> на другой (<strong>любой адрес</strong>), можете воспользоваться моим или найти в дискорде</p></li></ul><p><strong>nubit1q5fx84rxwqhrpc2l2p5gtf3wct9yeylnpnpwsd</strong></p><ul><li><p>Далее идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://alpha.nubit.org/">сюда</a> и выполняем задания</p></li><li><p>Нас попросят привязать <strong>Galxe аккаунт — делаем</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c887c353f237a214f8a2eb651bb7bd7f4f53ef4a8766df97eeee22aaeb61ee2e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>И все задания выполняем через <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Nubit/GCYMytdMuz"><strong>Galxe</strong></a>, они также засчитают на официальном сайте <strong>Nubit</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/142220844aa4a1214cbd6692c4348be823c88897731ef48cfaab64d95c44bfb5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отлично! Теперь возвращаемся на сайт и проверяем задания и получаем +3000 поинтов</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b0265de923ae0a179f61193b97ffb06f451ee6e94c607667c615dc8c81346a23.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Итог</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f44cbffc1cdd44474b7131be9097baa2a11b754e6102ea47a380e275d2d06f13.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также еще можно заполнить <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSfsQzhACMq_SqDzLcJG1sz0sYi9fHhzWnY5aKa2FB8kbHoSHA/viewform"><strong>форму фидбека</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c342aaaa9e5de2e3534a185ea967f893c7ed003605c175413c99819f064d1163.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/71b595f09d431814b1107683c241e8b8ce110cb2f7c07353ada1cdeec93a9657.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Farcaster. Устанавливаем ноду]]></title>
            <link>https://paragraph.com/@sosew/farcaster</link>
            <guid>yYXYg1bUChI1MeZ7Kf8A</guid>
            <pubDate>Thu, 06 Jun 2024 16:46:16 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Farcaster — достаточно децентрализованный протокол для создания социальных приложений, простыми словами это социальная сеть для криптанов, считай прямой конкурент ТвиттеруИнвестировали: $180 000 000Инвесторы: Paradigm, Coinbase, a16z, и другиеХарактеристики: 4CPU/16RAM/200SSD — рекомендованныеАрендовать сервер: XorekCloud, AEZA , Hetzner , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.m...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Farcaster</strong> — достаточно децентрализованный протокол для создания социальных приложений, простыми словами это социальная сеть для криптанов, считай прямой конкурент <strong>Твиттеру</strong></p><ul><li><p><strong>Инвестировали:</strong> $180 000 000</p></li><li><p><strong>Инвесторы:</strong> Paradigm, Coinbase, a16z, и другие</p></li><li><p><strong>Характеристики: 4</strong>CPU/16RAM/200SSD — <strong>рекомендованные</strong></p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li><li><p><strong>Ubuntu:</strong> 20.04</p></li></ul><p>Проект оценивается в более миллиарда долларов, и славиться тем, что через него раздают щитков на тысячи долларов, да и сам проект раздал коллекцию <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://opensea.io/collection/farcaster-og-1?tab=items"><strong>NFT Farcaster OG</strong></a><strong> — Floor 1,7–2 $ETH</strong></p><p>И вот недавно появилась возможность поднять ноду от <strong>Farcaster</strong>, за который могут также наградить, как с <strong>NFT</strong>, почему бы и нет?</p><p>Нода от <strong>Farcaster</strong>, очень сильно схоже с нодой от <strong>Taiko</strong>, также нужно будет брать <strong>RPC</strong> с <strong>Alchemy</strong>, к тому же, мы еще сможем привязать наш <strong>FID Account Warpcast,</strong> то есть, мы уже можем не только прокачивать аккаунт в социальной сети <strong>Warpcast</strong>, а еще привязать аккаунт к ноде</p><p>Нода максимально простейшая, и не требует больших денег на её содержание, всего лишь <strong>$16 в месяц</strong> , чтобы получить возможность заработать как с <strong>Taiko</strong></p><blockquote><p><strong><em>Гайд по всем активностям в Warpcast<br>[</em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://youtu.be/Tr3Jyp0jTyI%5C"><strong><em>https://youtu.be/Tr3Jyp0jTyI\</em></strong></a><strong><em> </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://youtu.be/Tr3Jyp0jTyI%5C"><strong><em>https://youtu.be/Tr3Jyp0jTyI\</em></strong></a><strong><em> </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://youtu.be/Tr3Jyp0jTyI%5D(https://youtu.be/Tr3Jyp0jTyI)"><strong><em>https://youtu.be/Tr3Jyp0jTyI](https://youtu.be/Tr3Jyp0jTyI)</em></strong></a></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/43a8ce3b8e4969bd8eff87a7a320a9a8a7a0dad5f827e893e12de040a77ef10f.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Расписал для вас понятный гайд с установкой ноды, ставиться просто, сервак советую брать (<strong>минимум как требуется в рекомендации</strong>), чтобы избежать дальнейшие траблы с синхронизацией</p><p>На <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767"><strong>XorekCloud</strong></a> арендовать подходящий сервер за <strong>1399</strong> рублей в месяц</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a78105b28c63aaf43aef4492727c9cb387a663da72bd9694c4e6b00ab2b6e461.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mobaxterm.mobatek.net/"><strong>MobaXterm</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b7b41fc8ceca992d23fc07ed823bda7c07bb941a9406eb7605e8ac05fea4c6a0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подключаемся на арендованный сервер через <strong>root</strong></p></li><li><p>Выполняем команды по списку</p></li><li><p>Обновляем и устанавливаем необходимые пакеты</p></li></ul><pre data-type="codeBlock" text="sudo apt update -y
sudo apt install screen -y
"><code>sudo apt update <span class="hljs-operator">-</span>y
sudo apt install screen <span class="hljs-operator">-</span>y
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/849d0cbf61919b6368ae987c815152703397d93da8f1e0a76998260d5e8f58ef.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.alchemy.com/"><strong>Alchemy</strong></a> и регистрируем аккаунт</p></li><li><p>Слева тыкаем на <strong>Overview</strong> и справа на <strong>Create new app</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e8b6da1e8047640f9a338abfa9e53bf4a38c56cf5780f0735d4f61b9aef949eb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выбираем <strong>Ethereum</strong> и <strong>Ethereum Mainnet</strong></p></li><li><p>Снизу любое значение и тыкаем на <strong>Create App</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/eccbd7259cb7c64fa49d71006f7a3608eafc9dbfe12599187542cb214237c89e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Cправа тыкаем на <strong>Api Key</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a7a8f853cfffdba218398668838083af4451dc455684528676a30b2c84c88fb4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем <strong>HTTPS адрес</strong> и сохраняем в <strong>блокнот</strong> или <strong>другое надежное место</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ea1e1ee71ca309727668fcc1b9ee02322ae7d830efb5588ce4a9fb0ce37e6fc2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Повторяем все те же самые действия, только уже выбираем <strong>Optimism Mainnet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/183f52d072465976b27710edaea01c4dbe8a3e24c61cb45f242dfc53ac4f6be2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Сохраняем <strong>HTTPS адрес</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/48765af915e2166c322269d088d801183fc60dc1e89f83589b946d6349472bde.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся к своему профилю <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/~/invite-page/188294?id=05502eb7">Warpcast</a> и нам нужно скопировать наш <strong>FID</strong></p></li></ul><blockquote><p><em>Если у вас нет аккаунта в </em><strong><em>Warpcast</em></strong><em>, и вы не можете оплатить через </em><strong><em>РФ</em></strong><em> — отпишите мне в лс </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/keeperssd"><strong><em>https://t.me/keeperssd</em></strong></a><em> , я вам смогу купить аккаунт за такую же цену, как в Маркете </em><strong><em>($5) — Также можете купить оптом хоть 10–100 штук</em></strong></p></blockquote><ul><li><p>Тыкаем на <strong>Profile — Троеточие — About</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8e15291123da4ae61bdc807df3a0192df992ed7a9726ed1124144f4a6949c4b8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем <strong>FID</strong> и сохраняем в блокнот или в надежное место</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/aa30362497f4d56355f150e95fd22155d9fb1cbe8dd780ce8332d5a2943d7969.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся к терминалу</p></li><li><p>Устанавливаем скрипт</p></li></ul><pre data-type="codeBlock" text="curl -sSL https://download.thehubble.xyz/bootstrap.sh | bash
"><code>curl <span class="hljs-operator">-</span>sSL https:<span class="hljs-comment">//download.thehubble.xyz/bootstrap.sh | bash</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3b9f2bb2853636c1c6f4362f149ad0b4fc7f2b17247d84718029c3a7634deb09.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее вписываем наши скопированные ссылки по очереди</p></li><li><p>Первый — <strong>Ethereum Mainnet</strong></p></li><li><p>Второй — <strong>Optimism Mainnet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/74638503f8594905ecbafa40b02a90d23aeac313d1a24f57083001997566fbbd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее вставляем наш <strong>FID</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ab0ae188c64344853ec1c8f71cbd206da0074e3c2c2a9b1cee9c25021ee4dbf1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Пойдёт установка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4d405fc97e72439a5fe9c942568c8a9de9791b324eb4ba5670eea9832509af7a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Через пару минут появится логи — <strong>значит всё отлично!</strong></p></li><li><p>Их можно остановить кнопкой <strong>CNTR+C (если хотите выйти из логов)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/79cb0b79b39cd8adfe24aa367bccbdefc3c9228bb89e0de631eb7b3b85d539e6.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В логах вы увидите снепшоты — они буду расти постепенно</p></li><li><p>Синхронизация займёт около <strong>2–3 часов</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ddecf1331bf9384b2f4619f82ba8c119e465e5c6d653b432df963e5f867854f4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к дашборду по ссылке ниже (только заменить <strong>Айпи_вашего_сервера на ваш айпишник)</strong></p></li></ul><p><strong>http://Айпи_вашего_сервера:3000</strong></p><ul><li><p>У вас изначально будет <strong>No data</strong> и ничего не будет видно</p></li><li><p>Но спустя несколько часов, у вас будет появляться графики и всё такое</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5f1ccae0c567d57fbd613ca770f01babb4ebc36c7acf381c0c6cbba5f3d7cee4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Вот как должно быть после несколько часов ожидания</p></li><li><p>И по нему уже можно будет отслеживать <strong>работоспособность ноды</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bf0910a6d14ff64b629872baa03c25cae7edab415380f44a5193481afec5f57b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также можно отслеживать синхронизацию по логам</p></li></ul><h1 id="h-otkryvaem-porty" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Открываем порты</strong></h1><blockquote><p><strong><em>Примечание!</em></strong>* Успешная входящая синхронизация с пирами. Требуется, чтобы <strong>порт 2283</strong> был открыт. Исходящая синхронизация работает даже если порт закрыт, но это может повлиять на ваш рейтинг среди пиров и здоровье сети*</p></blockquote><ul><li><p>Копируем все команды одной строкой и вставляем в консольку</p></li></ul><pre data-type="codeBlock" text="sudo iptables -A INPUT -p tcp --dport 2281 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2282 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2283 -j ACCEPT
sudo iptables-save &gt; /etc/iptables/rules.v4
sudo iptables -L -v -n
"><code>sudo iptables <span class="hljs-operator">-</span>A INPUT <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">2281</span> <span class="hljs-operator">-</span>j ACCEPT
sudo iptables <span class="hljs-operator">-</span>A INPUT <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">2282</span> <span class="hljs-operator">-</span>j ACCEPT
sudo iptables <span class="hljs-operator">-</span>A INPUT <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">2283</span> <span class="hljs-operator">-</span>j ACCEPT
sudo iptables<span class="hljs-operator">-</span>save <span class="hljs-operator">></span> <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>iptables<span class="hljs-operator">/</span>rules.v4
sudo iptables <span class="hljs-operator">-</span>L <span class="hljs-operator">-</span>v <span class="hljs-operator">-</span>n
</code></pre><p>Открыто</p><blockquote><p><em>Эти шаги помогут вам открыть порты </em><strong><em>2281</em></strong><em>, </em><strong><em>2282</em></strong><em> и </em><strong><em>2283</em></strong><em> с помощью </em><strong><em>iptables</em></strong></p></blockquote><h1 id="h-dopolnitelnye-komandy" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Дополнительные команды</strong></h1><ul><li><p>Команда для обновления</p></li></ul><pre data-type="codeBlock" text="cd ~/hubble &amp;&amp; ./hubble.sh upgrade
"><code>cd <span class="hljs-operator">~</span><span class="hljs-operator">/</span>hubble <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> ./hubble.sh upgrade
</code></pre><ul><li><p>Просмотр логов</p></li></ul><pre data-type="codeBlock" text="docker logs hubble-hubble-1 --since 1m -f
"><code>docker logs hubble<span class="hljs-operator">-</span>hubble<span class="hljs-number">-1</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>since 1m <span class="hljs-operator">-</span>f
</code></pre><ul><li><p>Удалить ноду</p></li></ul><pre data-type="codeBlock" text="rm -rf hubble &amp;&amp; docker stop farcasterxyz/hubble:latest &amp;&amp; docker rm farcasterxyz/hubble:latest &amp;&amp; docker stop grafana/grafana:10.0.3 &amp;&amp; docker rm grafana/grafana:10.0.3 &amp;&amp; docker stop graphiteapp/graphite-statsd:1.1.10-5 &amp;&amp; docker rm graphiteapp/graphite-statsd:1.1.10-5
"><code>rm <span class="hljs-operator">-</span>rf hubble <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> docker stop farcasterxyz<span class="hljs-operator">/</span>hubble:latest <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> docker rm farcasterxyz<span class="hljs-operator">/</span>hubble:latest <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> docker stop grafana<span class="hljs-operator">/</span>grafana:<span class="hljs-number">10.0</span><span class="hljs-number">.3</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> docker rm grafana<span class="hljs-operator">/</span>grafana:<span class="hljs-number">10.0</span><span class="hljs-number">.3</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> docker stop graphiteapp<span class="hljs-operator">/</span>graphite<span class="hljs-operator">-</span>statsd:<span class="hljs-number">1.1</span><span class="hljs-number">.10</span><span class="hljs-number">-5</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> docker rm graphiteapp<span class="hljs-operator">/</span>graphite<span class="hljs-operator">-</span>statsd:<span class="hljs-number">1.1</span><span class="hljs-number">.10</span><span class="hljs-number">-5</span>
</code></pre><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/3a7f37cdf5fffad98fc7ef2ccd6c32d87ce71c365be544d39d1eef6aa19c772c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Nillion. Награждаемый тестнет]]></title>
            <link>https://paragraph.com/@sosew/nillion</link>
            <guid>E3FDe4y6UWhtTNsxft4U</guid>
            <pubDate>Tue, 04 Jun 2024 16:58:33 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Nillion — это децентрализованная платформа, использующая уникальную технологию хранения, обработки и передачи данных под названием NMCИнвестировали: $20 000 000Инвесторы: HashKey Capital, GSR, Distributed Global и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatЕще один годный проект. Вчера они запустили кампани...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Nillion</strong> — это децентрализованная платформа, использующая уникальную технологию хранения, обработки и передачи данных под названием <strong>NMC</strong></p><ul><li><p><strong>Инвестировали:</strong> $20 000 000</p></li><li><p><strong>Инвесторы:</strong> HashKey Capital, GSR, Distributed Global и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Еще один годный проект. Вчера они запустили кампанию награждаемого тестнета <strong>Genesis Sprint</strong> за который мы получим аирдроп токенов <strong>$NIL</strong></p><p>Сама кампания будет состоять из четырёх недельного спринта, в котором каждый сможет протестировать сеть и получить долю от пула <strong>$NIL</strong>. Все активности бесплатны и не требует много действий</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap?hl=en"><strong>Keplr Wallet</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b1a8c505d58d3e79dd4b3bed4c1db00553053dfd61fd71b15eac5808ddb2f0fe.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Добавляем тестовую сеть <strong>Nillion Testnet</strong> на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chains.keplr.app/"><strong>сайте</strong></a></p></li><li><p>Вписываем <strong>Nillion Testnet</strong> в тестовой строке — и прожимаем <strong>Add to Keplr</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e170ff4232386a165b3928a7328b1736dbe6d08dea04fb02f67c9037e2bbc49a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подтверждаем в <strong>Keplr</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/33f30ddb64ed483806b6a33dc4c34920d4fb992ae7a5d4c6efb0493f4b1114fa.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В кошельке прописываем <strong>nillion</strong> и далее на <strong>Manage</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ea0013bc2c070f0c849b60b6ea9bea2fca1d26c1c019009c80747055610888f0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Добавляем токен в быстрый доступ</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/53fdeb91ef35d59179d80754daccfe31c2e6bceacbb3164b60d892b739d5ed61.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.testnet.nillion.com/"><strong>крану</strong></a> и запрашиваем тестовые токены</p></li><li><p>Нажимаем на <strong>Start</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/53513b70d129bb467c7254f63197fee4ee8edf2d22fcd2e3603871e5ca34f576.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем наш адрес <strong>$NIL</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3f8cc1c68e570da5e2baaa290d6a9fd05b18a23560b57f30df1711b12189245b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Запрашиваем тестовые токены <strong>$NIL</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6c3e1899c9c8802fb8fda1e3ff6dfcde45bc89bdc4a551fc4e8e91de328c8623.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь нам нужно отправить токены $<strong>NIL (любое количество)</strong> на любой <strong>nill адрес</strong></p></li><li><p>В <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.nillion.explorers.guru/"><strong>Explorer</strong></a> вы можете найти адреса</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/af20b44159c254524d4bfd48fd7ab1184a2455fd75620465df446af16793cc91.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Распространите свой адрес в ветке <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.gg/nillionnetwork"><strong>дискорда</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cc9e609234ab2a375ddff60ded56e7b0b63a99254294bfbb4a1db8b4036de14f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Участвуем в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://zealy.io/cw/nillion/questboard"><strong>Zealy</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a357f98f0e183b4c29ef3885d08809d2d2bde9c6bfa3aedf6cba412a2814e95e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/sosew.eth"><strong>Mirror</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/1df8b63bd850c24194ae0aa12d60e50b4054358c187ffbae0e451340e0833bbc.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Fuel. Выполняем тестнет]]></title>
            <link>https://paragraph.com/@sosew/fuel</link>
            <guid>A13MMPFOZQGRXIZWgmWK</guid>
            <pubDate>Mon, 03 Jun 2024 11:19:30 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Fuel — новый модульный блокчейн, предназначенный для поддержки быстрых, дешевых и безопасных транзакцийИнвестировали: $81 500 000Инвесторы: Blockchain Capital, CoinFund, Spartan и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatНесколько дней назад, проект запустил свой финальный публичный **Testnet **в сети Sep...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Fuel</strong> — новый модульный блокчейн, предназначенный для поддержки быстрых, дешевых и безопасных транзакций</p><ul><li><p><strong>Инвестировали:</strong> $81 500 000</p></li><li><p><strong>Инвесторы:</strong> Blockchain Capital, CoinFund, Spartan и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Несколько дней назад, проект запустил свой финальный публичный **<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/fuel_network/status/1796213858320703782?t=OrjhAToolacceyks2dOMBg&amp;s=19">Testnet</a> **в сети <strong>Sepolia</strong>, который мы можем пройти в надежде на награды от проекта</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/fuel-wallet-development/hcgmehahnlbhpilepakbdinkhhaackmc"><strong>Fuel Wallet</strong></a> (расширение — кошелек)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f43c3a24243ab97b80faa5091abb045f60a91e1b9659c8566dca9236d6063a8e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Создаем кошелек и сохраняем сидку</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/05a05ad6cd41a282eae1d1a32fb7c8bfa875c636087c85329972b9dd50374fef.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Получаем тестовые токены $<strong>ETH Sepolia</strong>:<br>⚫️<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.infura.io/faucet/sepolia">https://www.infura.io/faucet/sepolia</a><br>⚫️<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://sepoliafaucet.com/">https://sepoliafaucet.com/</a><br>⚫️<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://sepolia-faucet.pk910.de/">https://sepolia-faucet.pk910.de/</a><br>⚫️<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet-sepolia.rockx.com/">https://faucet-sepolia.rockx.com/</a></p></li><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.fuel.network/bridge?from=eth&amp;to=fuel"><strong>бриджу</strong></a> и подключаем <strong>EVM</strong> и <strong>Fuel Wallet</strong></p></li><li><p>Делаем бридж <strong>$ETH</strong> из сети <strong>Sepolia</strong> в сеть <strong>Fuel Testnet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/62e768f41c8f0be867e8629de0dcec1f3b66856e2c4a9f69f03adc34098ca2b5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Ждём <strong>confirm transtacion</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fbf6747d82b2df1c8a94d0a206ceabc082bf706262b12944e62a0c9108a43e77.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее делаем все тоже самое, только из <strong>Fuel</strong> в сеть <strong>Sepolia</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/382b19fb7c6befd2b5d8fd7fb5059463d57acd47145c3af2827145c3956c9d02.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet-testnet.fuel.network/"><strong>запрашивать тестовые</strong></a> токены <strong>$FUEL</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/69458487e6b50f699eaf818bcdc11c8b70d10535b4c51247e6f4bf89d0ddadbf.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Токены могут доходить </em><strong><em>до 6 часов</em></strong><em>, как и в </em><strong><em>Sepolia</em></strong><em>, так и в </em><strong><em>Fuel</em></strong><em>, нужно будет просто (</em><strong><em>подождать</em></strong><em>)</em></p><p><em>Рекомендую повторять все те же самые действия несколько раз в день, чтобы ваш аккаунт отличался от сибилов</em></p></blockquote><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/15e6a6f945349d45f109c8d68ff36534a295fb117749dda8d4beaff21f7a0c56.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Blast. Выносим голду в DistrictOne]]></title>
            <link>https://paragraph.com/@sosew/blast-districtone</link>
            <guid>R7Wlswg0mnYmB0Jaz2fh</guid>
            <pubDate>Sun, 02 Jun 2024 10:29:33 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Blast — Доходность от Blast достигается за счет ставок $ETH и протоколов RWA. Доход от этих децентрализованных протоколов автоматически передается обратно пользователям Blast DistrictOne — cоциальное пространство с играми на деньги. На него выделили 3,4M Blast Gold, тем самым заняли 1 место среди всех приложений на Blast. Сегодня расскажу, почему стоит фармить голду, если вы даже скипнули активность с поинтами. В бейкерах BinanceЕсли вы читаете...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Blast</strong> — Доходность от <strong>Blast</strong> достигается за счет ставок <strong>$ETH</strong> и протоколов <strong>RWA</strong>. Доход от этих децентрализованных протоколов автоматически передается обратно пользователям <strong>Blast</strong></p><p><strong>DistrictOne</strong> — cоциальное пространство с играми на деньги. На него выделили <strong>3,4M Blast Gold</strong>, тем самым заняли <strong>1 место</strong> среди всех приложений на <strong>Blast</strong>. Сегодня расскажу, почему стоит фармить голду, если вы даже скипнули активность с поинтами. В бейкерах <strong>Binance</strong></p><blockquote><p><strong><em>Если вы читаете эту статью, то скорее всего вам интересен фарминг дропа Blast. Советую вам дочитать статью до конца, в конце вас ждёт важная информация</em></strong></p></blockquote><h1 id="h-kakaya-cel" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Какая цель?:</strong></h1><ul><li><p><strong>Заработать Gold Blast Point</strong></p></li><li><p><strong>Заработать $OLE (<em>которые уже торгуются</em>)</strong></p></li><li><p><strong>Получить дроп от Blast</strong></p></li><li><p><strong>Получить дроп от DistrictOne</strong></p></li><li><p><strong>Поучаствовать в распределении бонусного пула от Crypto Fortochka</strong></p></li></ul><h1 id="h-pochemu-imenno-districtone" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Почему именно DistrictOne?</strong></h1><p>Всё просто, это одна из простых активностей для заработка голды, при этом, <strong>Blast</strong> под неё выделил больше всего голды</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/43776deb568646c888c1515e327475343b8032ddca77d948c1816bceb4902018.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-gold-nedoocenennyj" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Gold — недооцененный</strong></h1><p>Как мы видим в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.blast.io/airdrop/users"><strong>дашборде</strong></a>, <strong>Blast Gold</strong> на которые выделено <strong>50%</strong> от запланированного дропа токена <strong>$BLAST</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b7429dcc790368e84ee044e46ad5fe0b1b1307c269025dfe8a04334041e3d46d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Так вот эти <strong>Blast Gold</strong> будут оцениваться в разы дороже! Сейчас приблизительно <strong>1 Blast Gold</strong> = <strong>100k обычных поинтов</strong> (<strong><em>~ $3 на </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.whales.market/points-markets?project=Blast"><strong><em>премаркете</em></strong></a>)</p><h1 id="h-zachem-eto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Зачем это делать?</strong></h1><ul><li><p>Смотрите, когда запустился кампания в <strong>Blast</strong>, проект очень сильно расхайпился, все побежали лочить свои <strong>ефиры/стейблы,</strong></p></li><li><p>Юзеры фармили поинты некоторое время, но вот, когда <strong>Blast</strong> вышел в майнет, и объявил о том, что будет фарминг голды в экосистемных проектах, под которых выделили <strong>50%</strong> дропа <strong>$BLAST</strong></p></li><li><p>Большая часть юзеров, который нафармили поинты в первом сезоне, попросту скипают кампанию с голдой (<strong>пример с лидерборда</strong>)</p></li><li><p>Примерно 4<strong>0%</strong> пользователей практически не фармят второй сезон, либо же вообще не фармят</p></li><li><p>Какое лучше решение? — правильно, пока они скипают, мы будет фармить</p></li></ul><blockquote><p><strong>Поинты для бояр, голда для настоящих работяг</strong></p></blockquote><ul><li><p><strong>Почему бы и нет?</strong> <strong>Blast</strong> собрал рекордное количество шумихи, <strong>TVL</strong>, и юзеров. Это один из чейнов, который реально будет пользоваться спросом</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/25aa8c86e9f63302ea24104dc38a28266e73deb3c802f2d4492a456967731058.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-chto-nuzhno-sdelat-pervym-delom" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что нужно сделать первым делом?</strong></h1><ul><li><p>Добавить сеть основную сеть <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chainlist.org/chain/81457"><strong>BLAST</strong></a> в кошелёк</p></li><li><p>Зарегистрироваться в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://blast.io/WI2LD"><strong>Blast</strong></a> и застейкать минимальную сумму в <strong>$ETH</strong></p></li><li><p>Для базовой регистрации вам потребуется <strong>0.005 $ETH ($20)</strong> в сети <strong>Blast</strong> — это минимальный порог для входа в проект</p></li><li><p>Используем мост <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://relay.link/bridge/blast?fromChainId=81457">Relay</a> (<strong><em>комиссия минимальная</em></strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/25dc38d90f240a973a28740bbdd25effb0bb7a2608816bc73921748c07f522a2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-aktivnosti-v-districtone" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Активности в DistrictOne</strong></h1><ul><li><p>Далее отправляемся регистрироваться в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://districtone.io/invite/PTSXA2"><strong>DistrictOne</strong></a></p></li><li><p>Привязываем твиттер и фоловимся на канал <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/districtOneio"><strong>DisctrictOne</strong></a></p></li><li><p>**<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://districtone.io/invite/PTSXA2">DistrictOne</a> понадобится минимум 0.004 <strong>ETH (15$).</strong> Если выводите с биржи, выводите в сети <strong>Arbitrum</strong> например и потом <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://relay.link/bridge/blast?fromChainId=42161"><strong>бриджите</strong></a> из этой сети в <strong>Blast!</strong></p></li><li><p>Тыкаем на <strong>Linkup with 0.005 $ETH</strong></p></li><li><p>Далее тыкаем на <strong>Claim</strong> и делаем твит — за это мы получим <strong>GEM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/438b5a2b2acb6564917547f6d6cfc8712b9aa2e1040b0cbda8dce0051e185b54.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-chto-takoe-gem-i-ole" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что такое GEM и OLE??</strong></h1><blockquote><p><strong><em>GEM</em></strong>*— основная офчейн-валюта, то есть игровая, нигде не торгуется. Мы их сможем конвертировать в <strong>Blast Gold</strong></p><p>Токен <strong>$OLE</strong> — второй токен проекта, торгуется на <strong>CEX / DEX</strong> в сети <strong>Blast</strong>. Их можно купить на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.kucoin.com/trade/OLE-USDT?rcode=rPH7VCS">Kucoin</a> <em>/ </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.mexc.com/exchange/OLE_USDT"><strong><em>MEXC</em></strong></a><strong><em> / </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.thruster.finance/"><strong><em>Thruster Finance</em></strong></a></p></blockquote><h1 id="h-chto-takoe-rally" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что такое Rally?</strong></h1><ul><li><p>Участвуем в <strong>Rally</strong> — они проводятся каждые 2 часа (<strong>В четные часы по UTC</strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/be057fdbaa9fd99a0b550a82fc84cf65d06031eee0a47e2d303b91ce905a42dd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В каждом <strong>Rally</strong> нужно будет нажать кнопку участие и в течение <strong>15 минут</strong> у нас будет возможность заклеймить <strong>GEMS</strong></p></li><li><p>После чего в самом уже чате появляется кнопка, на которую надо нажать как можно быстрее, чтобы успеть забрать гемы</p></li><li><p>Чтобы участвовать в <strong>Rally</strong>, вам нужно будет заплатить <strong>200 GEMS</strong></p></li><li><p>С дропа может выпасть рандомное количество <strong>GEMS</strong>, всё зависит от вашего <strong>мультипликатор</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6f6af80dfaedee07a7aa6e8d653b1d9c2ba734c1dcc3a0ededd546c813b06e84.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-kak-uvelichit-multiplikator" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Как увеличить мультипликатор?</strong></h1><ul><li><p>Можно <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://districtone.io/sole"><strong>будет</strong></a> залочить на <strong>3 месяца</strong> наши токены <strong>$ETH</strong> в пул <strong>sOLE и</strong> получите <strong>преимущества</strong></p></li><li><p>За лок <strong>0.046 $ETH ($170)</strong> нам дадут <strong>LOCKED SOLE 5</strong></p></li><li><p>Нам вернут наши средства, но скорее всего не все, а на пару десятков баксов меньше, но не факт</p></li><li><p>Всё потому, что наша позиция находится не в соло <strong>$ETH</strong>, а <strong>LP INTO sOLE — Имейте это ввиду</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/08ba102b6eeedca16138b6ebb8d4fc0217d9f9a1b584a19b10d5c005eaa18f2d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c7166299243d8d6c147e95777ce0dabc9c397b1d6c88e0ac0e46779add6764c2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Преимущества в том, что мы получим <strong>ЧЕТЫРЕ Rally В ДЕНЬ</strong></p></li><li><p>Также мы получим <strong>X3 МУЛЬТИПЛИКАТОР</strong> и сможем зарабатывать гемы в <strong>3 РАЗА БОЛЬШЕ ГЕМОВ</strong></p></li><li><p>А еще у нас появится возможность <strong>ГОЛОСОВАТЬ В ВКЛАДКЕ PRIME — Тем самым мы сможем зарабатывать еще сверху 3000 ГЕМОВ В ДЕНЬ</strong></p></li><li><p>Всего дают 3 голоса в вкалдке <strong>PRIME</strong> и 3 голоса в вкладке <strong>Survive</strong></p></li></ul><blockquote><p><em>За каждый голос нам дадут по </em><strong><em>500 GEM</em></strong></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c7dcf63d29d1afc527114c301e8bc3aa54d62c44d0127d53c5acfb0e2746be3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также сами спейсы, за которых вы голосуете, смогут вас дополнительно награждать, помимо основных ревардов</p></li></ul><h1 id="h-kak-zarabatyvat-bolshe-gem" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Как зарабатывать больше GEM?</strong></h1><ul><li><p>На сайте присутствуют <strong>Спейсы, и каждый спейс — это какой-то проект/инфл</strong></p></li></ul><blockquote><p><strong><em>Gift</em></strong> — хост спейса дарит гемы за активность в чате*</p></blockquote><p><strong>Airdrop</strong> — то же самое, что и <strong>Rally</strong>, но там не так много гемов раздается и проходит он в рандомное время (<strong>Gift сам решает, какой количество ГЕМОВ раздать</strong>)</p><ul><li><p>Каждому <strong>Space</strong> дают определенное количества аллокации дневного <strong>GEMS. Всё</strong> от количества кристаллов которое выбили раллисты за предыдущий день. Больше раллистов — больше гемов в дневном пуле</p></li><li><p>Часть гемов даётся <strong>Gift</strong> и он их распределяем в любое время и любое количество. Обычно это по расписанию, опять же, у каждого <strong>Space</strong> разные условия</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/722129c88adc3e6bb57752eb5fa479992408ae56bfb60098df56de6f99e34c5e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><strong><em>Host Drops</em></strong> — в каждом спейсе есть <strong>Хост</strong>, который общается с аудиторией спейса в чате и в рандомное время раздает гемы активным участникам (<strong>Также в эту категорию я включаю всякие акции от спейсов типа гемы за голосование</strong>)</p></blockquote><ul><li><p>Справа вы можете увидеть, кто сколько заработал и в какой именно раздачи</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8b1f0ff1fbbc1eaf796d6162e60aa009ae85cdf27659027e9d1dd398f75d2660.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-pokupka-shares-chto-nuzhno-znat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Покупка Shares. Что нужно знать</strong></h1><ul><li><p>И у каждого <strong>Спейса</strong> есть <strong>бесплатный</strong> и <strong>платный доступ</strong></p></li></ul><blockquote><p><strong><em>Share</em></strong>* — акция отдельного спейса, за ее холд мы получаем пассивно реварды в гемах, а также <strong>х3</strong> к гемам с <strong>Rally</strong> в том спейсе, чей <strong>Share</strong> холдим</p></blockquote><ul><li><p>Например, если вы хотите фармить в <strong>6 раз</strong> больше <strong>ГЕМОВ</strong>, то вам следует застейкать <strong>$ETH</strong> и купить <strong>Share</strong></p></li><li><p>Если вы хотите <strong>фармить бесплатно</strong>, и ничего не покупать (<strong>В общем, без вложений</strong>), то у вас не будет никаких <strong>мультипликаторов</strong>, и награды будут — <strong>стандартные</strong> (вы заработаете меньше <strong>ГЕМОВ</strong>)</p></li></ul><blockquote><p><strong><em>Shares</em></strong> <em>— могут стоить по разному, все зависит от участников, это как история с ключами в </em><strong><em>friend.tech</em></strong></p><p><strong><em>Например:</em></strong> Я создаю <strong>Space —</strong> покупаю первый <strong>Shares</strong> за <strong>30 $OLE</strong>— далее, следующий ключ будет стоить уже <strong>60 $ELO</strong>, третий ключ еще дороже на <strong>30 $OLE</strong>, так же само и с продажей, <strong>3-й</strong> продает <strong>Shares</strong> за <strong>90 $ELO</strong>, <strong>2-й</strong> продает уже за <strong>60</strong> <strong>$OLE и так далее и тому подобное</strong></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fabe6f92bdf383dd7fae8592026ab2f09143e793fa8002cc0a96a7a8e2a79020.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Купить <strong>Shares</strong> можно за <strong>$ETH</strong> и за токен <strong>$OLE</strong></p></li><li><p>Но вот покупать за <strong>$ETH</strong> менее выгодно, чем за <strong>$OLE</strong></p></li><li><p><strong>$ETH</strong> — cлишком крупно округляется, советую токеном <strong>$OLE</strong></p></li><li><p>А вот продать <strong>Share</strong> вы сможете только за токены <strong>$OLE</strong></p></li><li><p>Вы сможете купить от <strong>1</strong> до <strong>100 Shares</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f123bc8a658b340b582aaab71e9879346a63ae340365b93703a60b0c00f235d0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В каждом <strong>Space Share есть одно условия — стейкинг</strong></p></li></ul><blockquote><p><em>Чтобы </em><strong><em>общаться в чате всех существующих Спейсов,</em></strong><em> и участвовать в </em><strong><em>Rally</em></strong><em> и </em><strong><em>аирдропах</em></strong><em>, то вам нужно будет застейкать </em><strong><em>1000 GEMS.</em></strong><em> которых вам дали при регистрации.</em></p></blockquote><ul><li><p>Чтобы стейкать, вам нужно перейти в любой спейс и снизу вы увидите кнопку <strong>Got it, Stake to Chat — стейкаем</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/764d7a9413adc90cd48a0ff1d41d4390e0d673921ab1d95f7dae346d8cacb575.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><h1 id="h-space-share-ot-cryptofortochka" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Space Share от CryptoFortochka</strong></h1><ul><li><p><strong>Blast</strong> анонсировали перенос <strong>TGE</strong> на <strong>26 июня</strong>, у нас есть месяц, чтобы нафармить как можно больше голды.</p></li></ul><p><strong>По этому!</strong> В скором времени (<strong>будет специальный</strong>) нашенский <strong>Спейс</strong> — **<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto">Crypto Fortochka</a>. Где у каждого желающего будет возможность фармить <strong>ГЕМЫ</strong> участвовать в <strong>Rally</strong> и получать аирдропы в <strong>нашем спейсе</strong></p><blockquote><p><strong><em>Предупреждаю сразу! Не будет никакой спекуляции с покупкой Shares, а особенно софтеров, и других возможных действий, чтобы вас об вас как-то выходить и лишать вас денег</em></strong></p></blockquote><ul><li><p>Следите за новостями в канале <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Crypto Fortochka</strong></a></p></li></ul><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/f696ef0b97091dc511aedb35f487d90bcab0f616a7f5caf356a352c2e4287f66.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Babylon. Запустилась 4-я фаза тестнета]]></title>
            <link>https://paragraph.com/@sosew/babylon-4</link>
            <guid>Nhwh7nduTyCXfdX0rTzo</guid>
            <pubDate>Tue, 28 May 2024 09:16:05 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Babylon — это новый проект Cosmos, видение которого заключается в использовании безопасности биткоина для повышения безопасности зон Cosmos и других PoS-сетей, также как и Celestia, в данном случае они строят DeFi на BitcoinИнвестировали: $26 000 000Инвесторы: Polychain Capital, OKX Ventures, Binance и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Babylon</strong> — это новый проект <strong>Cosmos</strong>, видение которого заключается в использовании безопасности биткоина для повышения безопасности зон <strong>Cosmos</strong> и других <strong>PoS-сетей</strong>, также как и <strong>Celestia</strong>, в данном случае они строят <strong>DeFi</strong> на <strong>Bitcoin</strong></p><ul><li><p><strong>Инвестировали:</strong> $26 000 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, OKX Ventures, Binance и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Это тот самый проект, который уже раздал и будет еще раздавать. Ранее мы участвовали в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto/622"><strong>третьей фазе</strong></a>, где нужно было взаимодействовать с краном и стейкинг платформой в сети <strong>Babylon</strong> и <strong>Bitcoin</strong>. За это нам выдали памятные <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto/644"><strong>NFT</strong></a> в сети <strong>Polygon</strong>, их всего <strong>100 000 штук</strong>, стоимость каждой <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.okx.com/web3/marketplace/nft/collection/polygon/bitcoin-staking-pioneer-pass">NFT</a> оценивается в <strong>130–140 $MATIC = $100</strong></p><p>Сегодня утром стартовала <strong>4-я фаза тестнета</strong>, где нам нужно делать всё тоже самое, и на данном этапе можно запросить монеты <strong>$sBTC</strong> с крана и застейкать в любого валидатора</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/%D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D0%B5%D0%BA-okx/mcohilncbfahbmgdjkbpemcciiolgcge"><strong>OKX Wallet</strong></a><strong> и</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap">Keplr</a></p></li><li><p>В кошельке <strong>OKX Wallet</strong> в верхнем правом углу жмём на значок</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f72ad126eaa343a200230b906cd6dd4019402bbc9d2c1212b32c6e1d2ed29e36.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/afe5d8c3e486902bb3ec9a75477752f34acc7da38aa06d7e9deaebe47297ee46.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нажимаем на <strong>Все сети</strong> и появится сеть <strong>Bitcoin</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f7fc8ff22fc8717c3ebd3e48d15e73da08847c9209d77c75c8f8aec77e1e592b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В основной вкладке спускаемся вниз, нажимаем на <strong>Управлять</strong></p></li><li><p>Вбиваем токен <strong>$sBTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9242fdfcd7e2f24789ef25b693453a3ebdc792e52ada3a957010b08d51e8cacf.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем наш адрес <strong>$sBTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7fe3e62a706d91c1af3aca47103eac4a293ce9616cc9a17b58ef0e9526d9b0ab.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/babylonglobal"><strong>Discord</strong></a></p></li><li><p>Ветка <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/babylonglobal"><strong>#faucet-signet-btc</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6551a73f8b52702c7dd4c31796c99f6ca9b474dbc0542e8b9fe3205c8345f471.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Запрашиваем тестовые <strong>$sBTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5bab8df6bfdf92b0385fbb11335350a4a8ac926718ce2a0504eaf1f896287121.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://btcstaking.testnet.babylonchain.io/"><strong>стейкинг платформу</strong></a> и привязываем <strong>OKX Wallet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/18744897f9ad6d0ca2dd1966b2d2a872758535c34e2d1557d7000ec949bbb5f9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Слева выбираем любого валидатора, которому мы будет стейкать наши <strong>$sBTC</strong></p></li><li><p>Справа вписываем любое количество и жмём на <strong>Preview</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fcc901abf2974b057ab9f9df16c4406ba9829ce9579c92ed5c48e567991db2e6.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Снизу мы увидим историю стейкинга</p></li><li><p><strong>Status</strong> будет <strong>Pending</strong>, спустя некоторое время, блоки дойдут и наши монеты застейкаются</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c48f33e08b07841ed35a8e78d48180cc5500f27769ca0dd10f47b85f3eb7e01c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выполняем задания на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Babylon/GCrantzwAV?referral_code=GRFr2JxmbGm80n6mptPDpy1qBrw5XeEndA3HTGgi9p7MWbR">Galxe</a> </p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/c5e2344bc02497cdbf07b8f6fdce9ee90752a9460c51f50bcba134efa98fa972.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Botanix Labs. Выполняем тестнет]]></title>
            <link>https://paragraph.com/@sosew/botanix-labs</link>
            <guid>ExUFZQK7HPD1ZLU6t4Px</guid>
            <pubDate>Mon, 27 May 2024 16:56:36 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Botanix Labs — Layer2, эквивалентный EVM, на Биткойне, чтобы использовать его безопасность и децентрализацию для разработки децентрализованных приложенийИнвестировали: $11 500 000Инвесторы: Polychain Capital, Placeholder Ventures и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatНа Twitter проекта подписаны фаун...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Botanix Labs</strong> — <strong>Layer2</strong>, эквивалентный <strong>EVM</strong>, на <strong>Биткойне</strong>, чтобы использовать его безопасность и децентрализацию для разработки децентрализованных приложений</p><ul><li><p><strong>Инвестировали:</strong> $11 500 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, Placeholder Ventures и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>На <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/BotanixLabs"><strong>Twitter</strong></a> проекта подписаны фаундеры <strong>Arrington Capital</strong> и <strong>Mechanism Capital.</strong> Проект, еще c 2023 года был в медвежьей спячки, собрал дополнительные <strong>$8,5M</strong> инвестиций от <strong>Polychain</strong> и другие фондов</p><p>Сейчас можем пройти тестнет, с возможными наградами в дальнейшем. Многие инфлы пишут, что уже был снепшот и уже поздно делать, но благо амбассадоры пишут, что снепшотов еще никаких не было, значит можно делать</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Добавляем тестовую сеть <strong>Botanix</strong></p></li></ul><pre data-type="codeBlock" text="Network Name: Botanix Testnet
New RPC URL: https://node.botanixlabs.dev
Chain ID: 3636
Currency Symbol: BTC
Block Explorer URL: https://blockscout.botanixlabs.dev/
"><code><span class="hljs-attr">Network Name:</span> <span class="hljs-string">Botanix</span> <span class="hljs-string">Testnet</span>
<span class="hljs-attr">New RPC URL:</span> <span class="hljs-string">https://node.botanixlabs.dev</span>
<span class="hljs-attr">Chain ID:</span> <span class="hljs-number">3636</span>
<span class="hljs-attr">Currency Symbol:</span> <span class="hljs-string">BTC</span>
<span class="hljs-attr">Block Explorer URL:</span> <span class="hljs-string">https://blockscout.botanixlabs.dev/</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2368247eec107b85caa6dd24d78b1b3a4608237897d62586262a23a8405d9eb5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Устанавливаем кошелек <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge?hl=en"><strong>OKX Wallet</strong></a></p></li><li><p>Создаем новый кошелек и делаем как на скринах</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/93a09088605def81c1f3999a21f28f4ace36e352b5f5af64f0d189dea5855fd3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем наш <strong>$sBTC</strong> адрес</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f6aec02d7d2f999e26903e5333fee44bd1ac007dc66c5e91abf6d25513e9533e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://botanix.5thweb.io/"><strong>крану</strong></a> и подключаем <strong>EVM</strong> в тестовой сети</p></li><li><p>Нужно верифицировать почту — на почту придет код — копируем и вставляем его на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://botanix.5thweb.io/"><strong>сайте</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/df88841ad25a3d31881b5e80dba9b530f65f40b770db12ac1df6e7c8bb1fa2bb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее запрашиваем в этом <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.botanixlabs.dev/"><strong>кране</strong></a></p></li><li><p>Также <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dripdripdrip.xyz/botanix"><strong>здесь</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/081c54176cd4a695dda69b3469057944c78827a2ad828ff5c75c72037950d4f3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В итоге мы получим тестовые <strong>$BTC</strong> в тестовой сети <strong>Botanix</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e509be7c89523fe520be3be526adb4ec5b76b0aa38719a4cf76fe260afefeb5a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Устанавливаем приложение — кошелек <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/ppbibelpcjmhbdihakflkdcoccbgbkpo?hl=en"><strong>UniSat Wallet</strong></a></p></li><li><p>Создаем аккаунт и тыкаем на <strong>шестерёнка</strong> и ставим <strong>Testnet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/666c4eb2e2d7f301e4ef578edf30e8adf4c350f8e62542e4d541a128b1567663.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.botanixlabs.dev/"><strong>бриджу</strong></a></p></li><li><p>Копируем адрес кошелька и вставляем его под <strong>Receive Address (этот, где в кошельке OKX)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/baa16b79058e87089ecb9f55f76c65bd8e65d200044002e0164c4189acbdbb8a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>И делаем всё тоже самое, только с <strong>Bicoin Signet</strong> в сеть <strong>Botanix</strong></p></li><li><p>Также можете запросить <strong>$sBTC</strong> в дискорде <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.gg/babylonglobal"><strong>Babylon</strong></a> в ветке <strong>#faucet-signet-btc</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3554b5c35e7e75cdc92fa4ce65ada488bc45f3b0888e372f4fbda05411ef2ee9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим сверху на <strong>Deposit</strong> и тыкаем на <strong>Copy</strong> (копируем адрес <strong>sBTC</strong>) и отправляем на него <strong>$sBTC c нашего OKX Wallet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b11c766d553ed707001735a1e855e18a4a50b58f47100c247e5c0381eb547760.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://botanixlabs.xyz/en/testnet"><strong>сюда</strong></a> и подключаем аккаунт и нужно вписать код</p></li><li><p>Вводим код <strong>S@t0sh1_2024 (если попросят)</strong></p></li><li><p>Делаем свап битка</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c298350a452f4a11c26b61036584494f63c770e2ebb8902efa30c0aae7e47740.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим в кладку <strong>Pool — Create New Pool</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1418738835012bd662537ed8aca5fb999ba57594ebb287235fbd0323fdc5201a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Ставим как на скрине</p></li><li><p>Добавляем любое количество активов в пул <strong>USDT/BTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/66a3787c3b03fb94a48b4fdf7d34746072c8bdb08e8a7433da80111db46cbfe9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/87e012c9fc67ac7e4c7d6fb9fe6276713764791a2acae0ca37eae264c4a1530e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f62148219d1339f5f619367cbc35c25f0e118b8d0711ea193ed4e83aacbfa883.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее нам нужно отправиться к свапалке <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://avocadoswap.io/#/swap"><strong>Avocado</strong></a> и привязать <strong>EVM</strong> в сети <strong>Botanix</strong></p></li><li><p>Свапаем <strong>$BTC</strong> на любой актив — например <strong>$DOGE</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cfb3236aaa40e9f38321b17606fbc8499562e0c00db4ce05d114b23a1cc533ab.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Предоставляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://avocadoswap.io/#/pool"><strong>ликвидность</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d98e52c89658306d135dc8995fc213a4d18e9a66457d7068d85661fe1b2c4afa.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-razvorachivaem-smart-contract" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Разворачиваем Smart Contract</strong></h1><ul><li><p>Переходим в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://remix.ethereum.org/#lang=en&amp;optimize=false&amp;runs=200&amp;evmVersion=null&amp;version=soljson-v0.8.25+commit.b61c2a91.js"><strong>Remix</strong></a></p></li><li><p><strong>Если вы ранее делали на нем деплой, то сбрасываем куки</strong></p></li><li><p>Создаем папку <strong>botanix-token.sol</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7ac288c73a53a2a144f9e037ee5fd5523e2fa5fdf68c849888b448dc42d2003b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Справа появится консолька, нам нужно будет вставить команду снизу</p></li></ul><blockquote><p><em>В командной строке снизу, нужно будет заменить </em><strong><em>[YOUR_METAMASK_WALLET_ADDRESS]</em></strong><em> на свой </em><strong><em>EVM</em></strong><em> адрес, с которого делаете тестнет — из всего </em><strong><em>2</em></strong><em>, также по желанию </em><strong><em>symbol, name, decimals, totalSupply</em></strong></p></blockquote><pre data-type="codeBlock" text="pragma solidity ^0.4.24;

//Safe Math Interface

contract SafeMath {

    function safeAdd(uint a, uint b) public pure returns (uint c) {
        c = a + b;
        require(c &gt;= a);
    }

    function safeSub(uint a, uint b) public pure returns (uint c) {
        require(b &lt;= a);
        c = a - b;
    }

    function safeMul(uint a, uint b) public pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }

    function safeDiv(uint a, uint b) public pure returns (uint c) {
        require(b &gt; 0);
        c = a / b;
    }
}


//ERC Token Standard #20 Interface

contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


//Contract function to receive approval and execute function in one call

contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}

//Actual token contract

contract QKCToken is ERC20Interface, SafeMath {
    string public symbol;
    string public  name;
    uint8 public decimals;
    uint public _totalSupply;

    mapping(address =&gt; uint) balances;
    mapping(address =&gt; mapping(address =&gt; uint)) allowed;

    constructor() public {
        symbol = &quot;CF&quot;;
        name = &quot;CFBOTANIX&quot;;
        decimals = 2;
        _totalSupply = 100000;
        balances[YOUR_METAMASK_WALLET_ADDRESS] = _totalSupply;
        emit Transfer(address(0), YOUR_METAMASK_WALLET_ADDRESS, _totalSupply);
    }

    function totalSupply() public constant returns (uint) {
        return _totalSupply  - balances[address(0)];
    }

    function balanceOf(address tokenOwner) public constant returns (uint balance) {
        return balances[tokenOwner];
    }

    function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = safeSub(balances[msg.sender], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }

    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }

    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = safeSub(balances[from], tokens);
        allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        emit Transfer(from, to, tokens);
        return true;
    }

    function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }

    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }

    function () public payable {
        revert();
    }
}
"><code><span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.4.24;</span>

<span class="hljs-comment">//Safe Math Interface</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">SafeMath</span> </span>{

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">safeAdd</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> a, <span class="hljs-keyword">uint</span> b</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> c</span>) </span>{
        c <span class="hljs-operator">=</span> a <span class="hljs-operator">+</span> b;
        <span class="hljs-built_in">require</span>(c <span class="hljs-operator">></span><span class="hljs-operator">=</span> a);
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">safeSub</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> a, <span class="hljs-keyword">uint</span> b</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> c</span>) </span>{
        <span class="hljs-built_in">require</span>(b <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> a);
        c <span class="hljs-operator">=</span> a <span class="hljs-operator">-</span> b;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">safeMul</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> a, <span class="hljs-keyword">uint</span> b</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> c</span>) </span>{
        c <span class="hljs-operator">=</span> a <span class="hljs-operator">*</span> b;
        <span class="hljs-built_in">require</span>(a <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">0</span> <span class="hljs-operator">|</span><span class="hljs-operator">|</span> c <span class="hljs-operator">/</span> a <span class="hljs-operator">=</span><span class="hljs-operator">=</span> b);
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">safeDiv</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> a, <span class="hljs-keyword">uint</span> b</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">pure</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> c</span>) </span>{
        <span class="hljs-built_in">require</span>(b <span class="hljs-operator">></span> <span class="hljs-number">0</span>);
        c <span class="hljs-operator">=</span> a <span class="hljs-operator">/</span> b;
    }
}


<span class="hljs-comment">//ERC Token Standard #20 Interface</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">ERC20Interface</span> </span>{
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">totalSupply</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">constant</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span></span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">balanceOf</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> tokenOwner</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">constant</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> balance</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">allowance</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> tokenOwner, <span class="hljs-keyword">address</span> spender</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">constant</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> remaining</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">transfer</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> to, <span class="hljs-keyword">uint</span> tokens</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">approve</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> spender, <span class="hljs-keyword">uint</span> tokens</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">transferFrom</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> <span class="hljs-keyword">from</span>, <span class="hljs-keyword">address</span> to, <span class="hljs-keyword">uint</span> tokens</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>)</span>;

    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">Transfer</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> <span class="hljs-keyword">indexed</span> <span class="hljs-keyword">from</span>, <span class="hljs-keyword">address</span> <span class="hljs-keyword">indexed</span> to, <span class="hljs-keyword">uint</span> tokens</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">Approval</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> <span class="hljs-keyword">indexed</span> tokenOwner, <span class="hljs-keyword">address</span> <span class="hljs-keyword">indexed</span> spender, <span class="hljs-keyword">uint</span> tokens</span>)</span>;
}


<span class="hljs-comment">//Contract function to receive approval and execute function in one call</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">ApproveAndCallFallBack</span> </span>{
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">receiveApproval</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> <span class="hljs-keyword">from</span>, <span class="hljs-keyword">uint256</span> tokens, <span class="hljs-keyword">address</span> token, <span class="hljs-keyword">bytes</span> data</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span></span>;
}

<span class="hljs-comment">//Actual token contract</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">QKCToken</span> <span class="hljs-keyword">is</span> <span class="hljs-title">ERC20Interface</span>, <span class="hljs-title">SafeMath</span> </span>{
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">public</span> symbol;
    <span class="hljs-keyword">string</span> <span class="hljs-keyword">public</span>  name;
    <span class="hljs-keyword">uint8</span> <span class="hljs-keyword">public</span> decimals;
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">public</span> _totalSupply;

    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">uint</span>) balances;
    <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">mapping</span>(<span class="hljs-keyword">address</span> <span class="hljs-operator">=</span><span class="hljs-operator">></span> <span class="hljs-keyword">uint</span>)) allowed;

    <span class="hljs-function"><span class="hljs-keyword">constructor</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        symbol <span class="hljs-operator">=</span> <span class="hljs-string">"CF"</span>;
        name <span class="hljs-operator">=</span> <span class="hljs-string">"CFBOTANIX"</span>;
        decimals <span class="hljs-operator">=</span> <span class="hljs-number">2</span>;
        _totalSupply <span class="hljs-operator">=</span> <span class="hljs-number">100000</span>;
        balances[YOUR_METAMASK_WALLET_ADDRESS] <span class="hljs-operator">=</span> _totalSupply;
        <span class="hljs-keyword">emit</span> Transfer(<span class="hljs-keyword">address</span>(<span class="hljs-number">0</span>), YOUR_METAMASK_WALLET_ADDRESS, _totalSupply);
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">totalSupply</span>(<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">constant</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span></span>) </span>{
        <span class="hljs-keyword">return</span> _totalSupply  <span class="hljs-operator">-</span> balances[<span class="hljs-keyword">address</span>(<span class="hljs-number">0</span>)];
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">balanceOf</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> tokenOwner</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">constant</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> balance</span>) </span>{
        <span class="hljs-keyword">return</span> balances[tokenOwner];
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">transfer</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> to, <span class="hljs-keyword">uint</span> tokens</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>) </span>{
        balances[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">=</span> safeSub(balances[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>], tokens);
        balances[to] <span class="hljs-operator">=</span> safeAdd(balances[to], tokens);
        <span class="hljs-keyword">emit</span> Transfer(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, to, tokens);
        <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">approve</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> spender, <span class="hljs-keyword">uint</span> tokens</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>) </span>{
        allowed[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][spender] <span class="hljs-operator">=</span> tokens;
        <span class="hljs-keyword">emit</span> Approval(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, spender, tokens);
        <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">transferFrom</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> <span class="hljs-keyword">from</span>, <span class="hljs-keyword">address</span> to, <span class="hljs-keyword">uint</span> tokens</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>) </span>{
        balances[<span class="hljs-keyword">from</span>] <span class="hljs-operator">=</span> safeSub(balances[<span class="hljs-keyword">from</span>], tokens);
        allowed[<span class="hljs-keyword">from</span>][<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>] <span class="hljs-operator">=</span> safeSub(allowed[<span class="hljs-keyword">from</span>][<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>], tokens);
        balances[to] <span class="hljs-operator">=</span> safeAdd(balances[to], tokens);
        <span class="hljs-keyword">emit</span> Transfer(<span class="hljs-keyword">from</span>, to, tokens);
        <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">allowance</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> tokenOwner, <span class="hljs-keyword">address</span> spender</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">constant</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">uint</span> remaining</span>) </span>{
        <span class="hljs-keyword">return</span> allowed[tokenOwner][spender];
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">approveAndCall</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> spender, <span class="hljs-keyword">uint</span> tokens, <span class="hljs-keyword">bytes</span> data</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">returns</span></span> (<span class="hljs-params"><span class="hljs-keyword">bool</span> success</span>) </span>{
        allowed[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>][spender] <span class="hljs-operator">=</span> tokens;
        <span class="hljs-keyword">emit</span> Approval(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, tokens, <span class="hljs-built_in">this</span>, data);
        <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> <span class="hljs-title"><span class="hljs-keyword">payable</span></span> </span>{
        <span class="hljs-keyword">revert</span>();
    }
}
</code></pre><ul><li><p>Пример</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f0ccd6cac74bdd8e9d72c4d2cec5118eb0b82ba5a003f0dc24349c72581b7e6f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Слева тыкаем на значок <strong>Solidity compier —</strong> сверху ставим последнюю сеть и снизу тыкаем на <strong>Compile botanix-token.sol</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6131baa4f9a58df19294bb7180a99dc691c55f0e625eea7d852ac622457fa589.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нажимаем на <strong>Deploy &amp; Run transcations</strong></p></li><li><p>Сверху ставим <strong>Metamask</strong></p></li><li><p>Contract ставим <strong>QCKToken (название вашего contract токена)— botanix-token.sol —</strong> жмём <strong>Deploy</strong></p></li><li><p>Не забудьте поставить сеть <strong>Botanix</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/87ead32a28c233398649b16ae3104aa1476418c17ffdb1fdcdce2a331709f833.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Перед тем как нажать <strong>Confirm</strong>, повысьте газ</p></li><li><p>Подтверждаем транзакцию в <strong>EVM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9b9ed7e1b9ab01c24b2e13bd79acfeca96aacc0815cefb70c7ab9b84f55de27c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем адрес (<strong>как на скрине</strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3a97483b2435dc8c25aa14f256f4b2d81c9cf82f6cfe8f94d50787410e4fedd3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Это адрес нашего токена</p></li><li><p>Импортируем его в <strong>метамаск</strong> — в сети <strong>Botanix</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/507d097c8520ee50b5bb2cebabc570ac8566b7bffc3b7859dc1ae57337689f1b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://avocadoswap.io/#/swap"><strong>свапалке</strong></a></p></li><li><p>Тыкаем на <strong>Select a currency</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f310bae1e39ca68d24814b4549af291c94b510d023f09c0a1578f05b94d46a05.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Вставляем наш адрес контракта</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a57b798932a88b4c323c6ab0b021a91fc9fd7fc2aaf8523237d0da48613019ec.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Предоставляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://avocadoswap.io/#/pool"><strong>ликвидность</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/94d2e0cd39746cdd9e7d01c926cd456c358d0615dd661e263d711c4cf13e09d9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Если запрашивает большой газ, отредактируйте при подтверждение транзакции</em></p></blockquote><ul><li><p>Готово</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/17046576facee74c804ddc23d4913d9b12bb161d68a04d19afe8af7e7dc8e0d0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выполняем квесты в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/botanixlabs"><strong>Galxe</strong></a> и <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://zealy.io/cw/botanix/questboard"><strong>Zealy</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/06f76262d528184d241929a31875842aaf20a4a77e6e4d9f8dd771f616ed4b23.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[AlienX. Оплачиваемый тестнет]]></title>
            <link>https://paragraph.com/@sosew/alienx</link>
            <guid>EYtzn6xsyr6cvnRUHLN7</guid>
            <pubDate>Fri, 24 May 2024 18:14:21 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты ALIENX — единственный EVM-совместимый и высокопроизводительный блокчейн, управляемый узлами искусственного интеллекта и призванный способствовать массовому внедрению NFT и игрИнвестировали: $20 000 000Инвесторы: OKX, C² Ventures и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatСейчас расскажу последовательность...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>ALIENX</strong> — <em>единственный </em><strong><em>EVM-совместимый</em></strong><em> и высокопроизводительный блокчейн, управляемый узлами искусственного интеллекта и призванный способствовать массовому внедрению </em><strong><em>NFT</em></strong><em> и игр</em></p><ul><li><p><strong>Инвестировали:</strong> $20 000 000</p></li><li><p><strong>Инвесторы:</strong> OKX, C² Ventures и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Сейчас расскажу последовательность. Совсем недавно, мы выполняли фармилку с открытиями боксов, и нам падали токены <strong>$vAIX,</strong> позже мы участвовали в сейле нод, где команда собрала <strong>$3M</strong>, также они запустили стейкинг на свой платформе, где уже нормально застейкано активов, около <strong>$60M</strong>, остался предпоследний шаг — <strong>Тестнет</strong></p><p>Тестовая сеть <strong>ALIENX HAL</strong> продлится 3 недели — <strong>оплачиваемая</strong>. Вы можете заработать <strong>$ALIEN</strong>, выполняя такие задачи, как мост, кран, минт, обмен, торговля <strong>NFT</strong>, стейкинг и развертывание контрактов</p><p>Задания смешаны с тестовой сетью и основной сетью — это как дополнительный фарминг, который способствует увеличению вашей аллокации дропа</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Переходим по <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://hal.alienxchain.io/quest?ref=HA5QS3"><strong>ссылке</strong></a> и проходим авторизацию через <strong>EVM</strong></p></li><li><p>Перед нами будет список всех заданий, который нам нужно выполнить</p></li><li><p>Начнём с первого задания</p></li><li><p>Тыкаем на <strong>Go Now!</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/627ce202c7d2071981a9d02916f93d4750dfc635270fa2e02fa564213dd3b92d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выполняем задания с соц. сетями и получаем тестовые 0.01 <strong>$ETH</strong> и 2 <strong>$ALIEN</strong> в тестовой сети <strong>ALIENX HAL</strong></p></li><li><p>Его мы делаем <strong>ежедневно</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/26765f0370156e5e92069caf8d049e40be90610d78fa51f9b1ec69e49791a31f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Во втором задания нам нужно будет минтить <strong>NFT</strong> и попросят добавить сеть <strong>ALIENX HAL — делаем</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5fb3811581047eaeeb83e670d23b3dd27c0f6557f3d74f2e88148ba20dd63751.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f50f1f303b63eb4ae5ade64f7f1a031e7d871262e951fe9caffa0f750f7477b6.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подтверждаем задание и нам за это дают <strong>5 $ALIEN</strong></p></li><li><p>В левом углу вы увидите свое количество <strong>$ALIEN</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d3ed0197a0b8dfc711b43fd8db1788f331fd448901e97fee8ebf8a3363592c36.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся к крану <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.alchemy.com/faucets/ethereum-sepolia"><strong>Sepolia</strong></a> и запрашиваем тестовые <strong>$ETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b40f63bc693cb95820d8aec0d8a9640ce094558764161e128846f24721e9a314.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отравляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://hal-bridge.alienxchain.io/"><strong>бриджу</strong></a> и делаем бридж из <strong>Sepolia</strong> в сеть <strong>ALIENX HAL</strong></p></li><li><p>Любое количество <strong>$ETH</strong></p></li></ul><blockquote><p><strong><em>Делаем 5 бриджов в сеть ALIENX HAL</em></strong></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8cd241c3f689fdb31a015bfe6883539e92ad8959838c1d5dc03c00e850103a4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся на сайт и подтверждаем задание</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0fdfc16fedc5630e61106dffd263d9d92b21aa480aa50232e68c43c88863267e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://remix.ethereum.org/#lang=en&amp;optimize=false&amp;runs=200&amp;evmVersion=null&amp;version=soljson-v0.8.25+commit.b61c2a91.js"><strong>Remix</strong></a></p></li><li><p>Сбрасываем куки и протыкаем кнопку <strong>Start Coding</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e23a634e486a9dc572d74ac60c9362f99dbd8185b491cbc284f09f5026732dfd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Слева тыкаем на <strong>Solidity compier</strong> — сверху ставим <strong>последнюю версию</strong> — снизу <strong>Compile HelloWorld.sol</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/975a4099c73adf3dba0391389967912f577f8d97a788b6e5ab754db0e7e806d0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Ставим как на скрине</p></li><li><p>Перед нажатием на <strong>Delpoy</strong>, не забудьте поставить сеть <strong>Alien</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/abc7b4905fb6296a28271a47cd9bda270840945ee0092422e50da0390f04f547.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Появится транзакция — <strong>подтверждаем</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4d38c0ecdbcb4957ee18dc50dbed5d06b6b0bfe62dc87469781ca85461cd1e1c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Так делаем </em><strong><em>2 раза</em></strong><em> — возвращаемся на сайт и нам засчитает за </em><strong><em>2 деплоя</em></strong></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4caad58d090330e053e7230febc85f92064e1a2df9e978f8beb7505f0dd18c89.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-bonusnoe-zadanie-s-vlozheniyami-neobyazatelno" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Бонусное задание (с вложениями) — необязательно</strong></h1><ul><li><p>Идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://spellguru.ai/"><strong>сюда</strong></a> и выполняем социальные задания и минтим ключ</p></li><li><p>Для минта понадобиться $0,3 в сети <strong>Arbitrum</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3d745e8995ae0e2765b6842035f9a41f95c6509708b5354fdaa384f15910e7ff.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к стейкингу и стейкаем минимум от <strong>$20</strong> и за каждые <strong>$20</strong> вам будут давать по <strong>5 $ALIEN</strong> — максимум 100 <strong>$ALIEN</strong> на адрес</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e395ea3adbe7d0defd4cec6dc6c50227742e5e56af31a1aca73b844f32c88ad8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Торгуйте <strong>NFT</strong> на торговой площадке <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://alienswap.xyz/"><strong>AlienSwap NFT</strong></a></p></li><li><p>За каждую завершенную транзакцию <strong>NFT</strong> получите 2 тестовых токена <strong>$ALIEN</strong> — максимум <strong>10 $ALIEN</strong> на адрес</p></li></ul><h2 id="h-itog-32-dollaralien" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Итог 32 $ALIEN</strong></h2><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bf0001f893f03403ec34df6354a09dcd2bf3c97a3770dffb4d11a3b5fd6f459e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/159df0a4b122a35502c5ae3b7331e40b021f832d8ac95970f35fdaf00805512c.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[BUILD. Аирдроп в сети Base]]></title>
            <link>https://paragraph.com/@sosew/build-base</link>
            <guid>ViwxFb42ylTGE3LvjWpM</guid>
            <pubDate>Wed, 22 May 2024 10:34:59 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты BUILD — это знак признательности Base и социальная игра, которая вознаграждает разработчиков ончейн посредством номинаций от коллег. Проект от Talent Protocol На радаре появился новый проект на Base (очень сильно схожий на Degen), также работающий с Warpcast и Talent Protocol ▶️В чем суть? Это повторение истории щитка Degen, запустили первый сезон аирдроп кампании и платформу, где нужно будет ежедневно номинировать других пользователей, и так в...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>BUILD</strong> — это знак признательности Base и социальная игра, которая вознаграждает разработчиков ончейн посредством номинаций от коллег. Проект от <strong>Talent Protocol</strong></p><p>На радаре появился новый проект на <strong>Base</strong> (<strong>очень сильно схожий на Degen</strong>), также работающий с <strong>Warpcast</strong> и <strong>Talent Protocol</strong></p><p>▶️<strong>В чем суть?</strong> Это повторение истории щитка <strong>Degen</strong>, запустили первый сезон аирдроп кампании и платформу, где нужно будет ежедневно номинировать других пользователей, и так вплоть до июня</p><p>Под первый сезон выделили <strong>15%</strong> всего саплая и он закончится <strong>11</strong> июня. Всего будет 3 сезона и под каждый выделено <strong>15–20%</strong> от всего саплая</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Для начало нам понадобиться <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto/931"><strong>Farcaster</strong></a> или <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://passport.talentprotocol.com/profile"><strong>Talent Passport</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/~/invite-page/188294?id=05502eb7"><strong>Farcaster</strong></a> — $5 за вход в социальную сеть</p></li><li><p><strong>Talent</strong> — бесплатный вход, переходим по ссылке и проходим авторизацию по <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://passport.talentprotocol.com/profile"><strong>Github</strong></a></p></li><li><p>Привязываем все возможные проекты, и получаем наш <strong>Builder</strong> <strong>Score</strong>, который будет влиять на дроп и т.д</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/191bf26e14ac3864f9ff0b65118865ce102f3d09bc9e9fa0d06158a039c50366.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.build.top/nominate/0x05Bb279648e4e4cbCdeCF2D4d6ec310999d444e7"><strong>BUILD</strong></a> и нужно пройти авторизацию через <strong>EVM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/30498e16da2a392f2a9d80e887b92fadc071209c51405a4063c81c633d215166.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим по этой <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.build.top/nominate/0x05Bb279648e4e4cbCdeCF2D4d6ec310999d444e7"><strong>ссылке</strong></a> и делаем первую номинацию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b1068a86bb7e2372f192335f0c242a21ab208d0aea996b1df471f666cb0b3c98.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нам всего дают <strong>3 номинации в сутки</strong>, (если нет кнопки <strong>Confirm</strong>, ждём минут 10–15 и повторяем заново)</p></li><li><p>Ищем по <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.build.top/"><strong>поиску</strong></a> кого хотим номинировать (нужно это делать 3 раза в день)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a3d86a44a935c076fa1dca5af212ee82fb3d8840bad208682bc04fac7ca900db.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Воспользуйтесь нашим <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/followbackdebank"><strong>чатом взаимных подписок и номинаций</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/853676ff9b838f9f6a634d7d1c7d1f135284d06b9ed96b9d02b59851f0f57630.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>В день можно номинировать только трех разных билдеров. Каждый назначенный билдер получит 90% вашего ежедневного бюджета </em><strong><em>$BUILD</em></strong></p></blockquote><p>Активность бесплатная, но также есть у них есть щиток <strong>$BUILD</strong>, который также приносит дополнительные очки <strong>BUILD</strong></p><blockquote><p><em>Очки </em><strong><em>BUILD</em></strong><em> конвертируются в токены </em><strong><em>$BUILD</em></strong><em> после завершения </em><strong><em>Airdrop</em></strong><em> 1 в июне. </em><strong><em>$BUILD</em></strong><em> на </em><strong><em>100%</em></strong><em> принадлежит сообществу. Никакой команды или распределения инвесторов</em></p></blockquote><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/sosew.eth"><strong>Mirror</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/32cc4862eee803993050a6e5c71d2d7ff9b30845a9debe4469a69b89c3e3acb4.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Artela. Renaissance Campaign]]></title>
            <link>https://paragraph.com/@sosew/artela-renaissance-campaign</link>
            <guid>3XHdX7wUdpwpFJ7o6qdy</guid>
            <pubDate>Tue, 21 May 2024 09:43:42 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Artela — это новый L1 блокчейн, которое предоставляет разработчикам уникальную возможность создавать пользовательские расширения и динамические dAppИнвестировали: $6 000 000Инвесторы: Shima Capital, A&T Capital и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatЭтот тот самый проект, о котором я ранее делал гайды...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Artela</strong> — это новый <strong>L1</strong> блокчейн, которое предоставляет разработчикам уникальную возможность создавать пользовательские расширения и динамические <strong>dApp</strong></p><ul><li><p><strong>Инвестировали:</strong> $6 000 000</p></li><li><p><strong>Инвесторы:</strong> Shima Capital, A&amp;T Capital и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Этот тот самый проект, о котором я ранее делал гайды по тестнету и ноде, кстати, нода еще актуальна. Сегодня утром, после 3-х месячной спячки, анонсировали новую кампанию <strong>Artela Renaissance Campaign</strong> — оплачиваемую</p><p><strong>Artela Renaissance</strong> — это масштабная поощрительная тестовая кампания перед <strong>Artela TGE</strong></p><p>Кампания <strong>Artela Renaissance</strong> разделена на три этапа и каждом этапе будут разные виды квестов</p><ul><li><p><strong>Cornerstone</strong> — 1 этап (начало 20 мая и продлиться до Июня)</p></li><li><p><strong>Enlightenment</strong> — 2 этап (начало в Июле)</p></li><li><p><strong>Renaissance</strong> — 3 этап (начало в Августе)</p></li></ul><p>Простым языком, запустили платформу с квестами, где есть фармилка и взаимодействие с дапками в сети <strong>Artela Testnet</strong>, за это мы будем получать поинты, который в будущем будут конвертироваться в награды</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Добавляем сеть <strong>Artela Testnet</strong> в <strong>EVM</strong></p></li><li><br></li></ul><p><strong>Network Name:</strong> Artela Testnet<strong>New RPC URL:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://betanet-rpc1.artela.network/">https://betanet-rpc1.artela.network/</a><strong>ChainID:</strong> 11822<strong>Symbol:</strong> ART<strong>Block Explorer URL:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://betanet-scan.artela.network/">https://betanet-scan.artela.network/</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5053a71aa19bb7fe2a4be3f2e339889d3ef9816143e40e4d90f7d60b87007561.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим по <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://artela.network/"><strong>ссылке</strong></a></p></li><li><p>Перед нами будет выбор <strong>E-Beggar Mode</strong> или <strong>Vision Mode</strong></p></li><li><p><strong>E-Beggar Mode</strong> — это фармилка с активностями в <strong>Тестовой сети Artela</strong></p></li><li><p><strong>Vision Mode</strong> — это просто фармилка</p></li><li><p>Давайте начнем с <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://renaissance.artela.network/vision?R=d3YZus"><strong>Vision Mode</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/626d6d24c2ce581b4abffc606fb4f46ce7e27131f08bae51b7688a6a0d444672.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Привязываем <strong>EVM</strong> аккаунт</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a7d2ad35c1f909325f283fba0f1c50abd51694ec39afa92e8dedf07ea1e082b9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нужно будет пообщаться в <strong>AI Chat</strong>, тыкаем на первый пункт</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2474821bfb6cb20de5a32533a62da2a8f5680075e8bd9bde38922b625c4a19a1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее просто натыкиваем</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d1db7b9f73befecc1cbc7eed8dc4f29bf7f08a0cf7a2cc243eef5fb9412d9f86.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>У нас потребуют сделать ретвит— делаем и копируем ссылку ретвита</p></li><li><p>Проходим верификацию по ретвиту — Вставляем ссылку и жмём на <strong>Verify</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8df83b2274ef6bf31308edae6dc889169b722858683e85415ddf8cc8280afa9c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Такие действия нужно будет проделывать ежедневно, каждый день нам будут давать по </em><strong><em>15 Кристаллов</em></strong></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8f139b84e1b5d266e78ca196c0aa934e5056ba0bd0dd9dfcf14c12a98359eabf.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся к квестам <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://renaissance.artela.network/e-beggar"><strong>E-Bagger</strong></a></p></li><li><p>Начинаем с первого квеста <strong>Meet Artela Testnet</strong></p></li><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://artela-faucet-prod.vercel.app/?taskId=1"><strong>крану</strong></a> — привязываем <strong>EVM</strong> — запрашиваем тестовые токены <strong>$ART</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/32588f45d006b271b4ff0bbdfaff3efab2ce0eba81fa26f3bb03cf3f49bcf9a8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://i.tbook.com/art/46260383513372"><strong>сюда</strong></a> и привязываем <strong>EVM</strong> и подписываемся на твиттер — подтверждаем задание</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/198dea4dc668941a745cf135e04c063c8d8545332bca00dd90565ca5db8c7b97.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://i.tbook.com/art/46260550513382"><strong>сюда</strong></a> и подписываемся на их <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.gg/artela"><strong>дискорд</strong></a> и возвращаемся к фармилке и тыкаем везде на <strong>verify</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/086cbe3c5ce4c50cf16a5474d12fea3e1c4f02301c3bbe909d0f3e8c4833b446.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://renaissance.artela.network/e-beggar/6"><strong>второму заданию</strong></a> и сразу же подписываемся на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/artexswap"><strong>твиттер</strong></a></p></li><li><p>Далее отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.artexswap.xyz/#/swap"><strong>свапалке</strong></a> и подключаем <strong>EVM</strong> в сети <strong>Artela Testnet</strong></p></li><li><p>Делаем свап <strong>$ART</strong> на <strong>$USDT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b1e0647778bc7b64efe1ddf8eb97a386324bf1d9dbd019b63ba8994d622b98b9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Предоставляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.artexswap.xyz/#/pool"><strong>ликвидность</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e627c64296b84db47806b4f698ec853cebbf29f0eba80b9ca15b0ef8a33444e4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong><em>CryptoFortochka</em></strong></a> — гайды, ноды, новости, тестнеты</p></blockquote><ul><li><p>Возвращаемся к фармилке и проверяем задания</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2d0e0046428236f3db0bc403614d634a3ef967d54e4602b9ec9dc332442ecc1f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://i.tbook.com/art/46260299513366">сюда</a> и подписываемся на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/intent/follow?screen_name=ConftApp"><strong>Twitter</strong></a> аккаунт</p></li><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://conft.app/artela/collections/0x0c68ddb95b0916b66bfb8fc5b6dbce899f00453f/nft"><strong>маркетплейсу</strong></a> и привязываем <strong>EVM</strong></p></li><li><p>Минтим <strong>NFT</strong> в сети <strong>Artela Testnet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4810750bb1425d07079d1db01f34d6f284e12ff0437c217ad392fe0a894b06f0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к своему профилю (в правом верхнем углу)</p></li><li><p>Тыкаем на <strong>NFT — My NFTs — List via Conft</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/417618b936f4f5eea6c6bdd2c4bcbf4f63b616752e0cc206d0b13d0842896d22.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Ставим любой прайс и время — тыкаем на <strong>List for sale</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7cf103f3c1d5a8dddbcadb83c0b76e2e43c06bb0f11ead82d33644a75664fbca.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся к фармилке и проверяем задания</p></li><li><p><strong>Последнее задание может не верифицироваться</strong>, но по факту они системой видятся как выполненные и баллы начислены. Есть эстетический дискомфорт, будто не сделано</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d112d340c3c5faddb94e54a60b9b1c6bac6556e1d4be30103472a340b1b27e51.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://i.tbook.com/art/46260073513351">сюда</a> и подписываемся на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/intent/follow?screen_name=0xSymmetric"><strong>Twitter</strong></a> аккаунт</p></li><li><p>Далее отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://artela-betanet.symm.fi/#/artela-betanet/swap"><strong>свапалке</strong></a> и подключаем <strong>EVM</strong> в сети <strong>Artela Testnet</strong></p></li><li><p>Делаем свап <strong>$ART</strong> на <strong>$wART</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a0b4fc4fb0e9be8349cf93e6303f3c549089c82b71299d7648749f99ca0379fa.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь свапаем <strong>$wART</strong> на <strong>$aSYMM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0ade06a2322b61084a61cbe7bca6651193ae96c1a2e11c5bbc0b1fbb19b9541c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Предоставляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://artela-betanet.symm.fi/#/artela-betanet/pool/0xd91a286f125f7da111010163b31e0b045811be1a000200000000000000000003"><strong>ликвидность</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/07df43fe3db009fdae937a22dfcda0fda0a0b0682256ab074dc8bdd0b4e36d41.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся к фармилке и проверяем задания</p></li><li><p><strong>Последнее задание может не верифицироваться</strong>, но по факту они системой видятся как выполненные и баллы начислены. Есть эстетический дискомфорт, будто не сделано</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/aa1de9865de53474ee5a2ca096ca90f01ab5ed657dd43fb041d67b4d19747b2e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://i.tbook.com/art/46260157513356">сюда</a> и подписываемся на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/intent/follow?screen_name=art404xyz"><strong>Twitter</strong></a> аккаунт</p></li><li><p>Теперь идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://i.tbook.com/art/46260466513377513356">сюда</a> и подписываемся на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/art404chat"><strong>Telegram</strong></a> аккаунт</p></li><li><p>Отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://art-404.xyz/"><strong>сюда</strong></a> и коннектим <strong>EVM</strong> в сети <strong>Artela</strong> <strong>Testnet</strong></p></li><li><p>Минтим любую <strong>NFT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d9e049deca7e6df145fc5ce0cb7f33ae8bbb9d02af8aabf03b73218a0dbf7e3a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Возвращаемся к фармилке и проверяем задания</p></li><li><p><strong>Последнее задание может не верифицироваться</strong>, но по факту они системой видятся как выполненные и баллы начислены. Есть эстетический дискомфорт, будто не сделано</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6ed024af762ceea17202dec86b75a86b4f5be8722bab52b6fb9e21056f3a9283.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://renaissance.artela.network/e-beggar"><strong>главному списку</strong></a> и вы можем увидеть <strong>400 Stones</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b4d179a30ead91c280dd4b064cc6e75106dd59a264209770fb19580a365a611.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также на <strong>Stones</strong> и <strong>Crystals</strong> мы можем видеть <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://renaissance.artela.network/vision"><strong>здесь</strong></a><strong> (в правом верхнем углу</strong>)</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/9af52157cdc195e1e8c8ea4e3d3c8bb500a41661a054dbbaa04e87dc52771d6f.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Hyperlane. Выполняем все активности]]></title>
            <link>https://paragraph.com/@sosew/hyperlane-3</link>
            <guid>sUfkglbougnYRawjxGrt</guid>
            <pubDate>Mon, 20 May 2024 13:46:17 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Hyperlane — это платформа для разработчиков , создающих межцепочную вселенную, предлагающая внутрисетевой API для безопасной связи между блокчейнами. Он работает в модульном мире без разрешений, позволяя любому подключиться к любой цепочке, поддерживая различные виртуальные машины и предоставляя настраиваемые параметры безопасности для межцепочных приложенийИнвестировали: $18 500 000Инвесторы: Circle, Variant, CoinFund, Galaxy и другиеАрендоват...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Hyperlane</strong> — это платформа для разработчиков , создающих межцепочную вселенную, предлагающая внутрисетевой <strong>API</strong> для безопасной связи между блокчейнами. Он работает в модульном мире без разрешений, позволяя любому подключиться к любой цепочке, поддерживая различные виртуальные машины и предоставляя настраиваемые параметры безопасности для межцепочных приложений</p><ul><li><p><strong>Инвестировали:</strong> $18 500 000</p></li><li><p><strong>Инвесторы:</strong> Circle, Variant, CoinFund, Galaxy и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>За Твиттером следят</strong>: Coinbase, A16Z, Delphi, Pantera Capital, Fabric, Egirl, Coinfund и другие</p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Сам проект один из первых, кто присоединился к системи <strong>Celestia</strong> и внедрил <strong>Celestia Rollup Bridge.</strong> Однозначно стоит делать, если не хотите повторить историю с <strong>Wormhole</strong>. Учимся на ошибках, гоняем везде, достаточно всего пару десятков баксов, чтобы прогреть аккаунт. <strong>Wormhole</strong> дал понять, что даже за 1–2 транзакции с оборотом в пару баксов (может насыпать)</p><p>Проект уже собрал большую сумму и заколабился с <strong>Celestia, AltLayer, Fuel, Caldera</strong>. Также умельцы в коде на <strong>Github</strong> уже нашли, что будут награды и скорее всего <strong>дроп</strong>. Исходя из этого делаем все возможные активности в проекте, для потенциального <strong>Airdrop</strong>. Это проект который работает по верх <strong>Celestia</strong>, и условно объединяет все проекты экосистемы <strong>Celestia</strong> бриджом</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Нам потребуется <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.keplr.app/download"><strong>Keplr</strong></a> и <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en"><strong>EVM</strong></a> кошелек</p></li><li><p>Пополняем токены <strong>$TIA</strong> на <strong>Keplr</strong>, желательно хотя бы <strong>1–2</strong> и более <strong>$TIA</strong></p></li><li><p>Жмём на стрелочки снизу</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b9e18c0dd447ee49e394edd203053eb3d0226d8e7b9b7cc1a2c42ef16f1a14ae.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем бридж-свап токенов <strong>$TIA</strong> из сети <strong>Celestia</strong> на токены <strong>$NTRN</strong> в сеть <strong>Neutron (буквально 1–2 бакса на комсу для активности)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8714aa447b6b5a84f598cad245fe1e4750d4595c04fcf9a55a753f9fa457509.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь у нас есть <strong>$NTRN</strong> в сети <strong>Neutron</strong> для оплаты комсы</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b17a3b85e2306ba028b119e654aae9b3abc84759c040202f327391847972953d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.usenexus.org/"><strong>Usenexus</strong></a> и подключаем кошелек</p></li><li><p>Делаем бридж из сети <strong>Celestia</strong> в сеть <strong>Neutron</strong></p></li><li><p>Во пустом поле вставляем адрес <strong>Neutron address</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/91841bf72635f648d0f18feb3c0e6a61fb8e8c018aac515ebbe3ef90a9c72daa.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c821692599c959b3632efcf1915b69e10f3c256d8ca41f6c213cc902db9fd72c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее из сети <strong>Neutron</strong> бриджим в сеть <strong>Manta Pacific</strong> (нужно будет заплатить за газ <strong>0,27</strong> <strong>$TIA</strong>)</p></li><li><p>В пустом поле вставляем ваш <strong>EVM address</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9c5742f3edebfb6edcd7d2bb550376c9e7f9d51691d318884ba564d5d0832678.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Из <strong>Manta</strong> в сеть <strong>Neutron</strong> (нужно будет заплатить за газ <strong>$0,3</strong>)</p></li><li><p>В пустом поле вставляем <strong>Neutron address</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4af0c63d9d212bae6ced6bc338315b30b085ef9ed03b64291274e51288bd6e91.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Из <strong>Neutron</strong> в сеть <strong>Arbitrum</strong> (нужно будет заплатить за газ 0,27 <strong>$TIA</strong>)</p></li><li><p>В пустом поле вставляем <strong>EVM</strong> <strong>address</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c3e80815891a717b5eb48d2c2bfea7756eb961e7e9cc0a73da5812165cc40314.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Из <strong>Arbitrum</strong> в сеть <strong>Neutron</strong> (нужно будет заплатить за газ <strong>$1</strong> )</p></li><li><p>В пустом поле вставляем <strong>Neutron address</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/792fd362f5cc1ea16ec2e4ffb6beb06260de5d2fbaeaa2615666d4ac9c39e7a9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pancakeswap.finance/swap?chain=eth"><strong>PancakeSwap</strong></a> и покупаем токены <strong>$ZBC</strong> в сети BNB (лучше покупать от <strong>$15)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/94ffcc42a7bb209fa245d930c5d85d8d14edc1469a5efea1e5706d20d0273497.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Идём на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.nautilusbridge.com/"><strong>Nautilus Bridge</strong></a> и делаем бридж токена <strong>$ZBC</strong> из сети <strong>BNB</strong> в сеть <strong>Nautilus</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/501da15ad580fcca48066be0c88d093bc3f0d6561b1c1770ea0b1942b2c02b5a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b12db16d521b7150bbc3aa38e8401d90682e231ba840058010983692c07456f9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Жмём на <strong>Wallets</strong> в правом верхнем углу и добавляем <strong>Solana-кошелек</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/86a02688e5b03f03f07476ab518b3872c23187591729382b549879a8eb7d18a8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь бриджим из сети <strong>Nautilus</strong> в сети <strong>Solana</strong> (оставьте на газ 100 токенов <strong>$ZBC</strong>)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/45c4df013fff321958c30b5f6e6f8ac58545bed4dd2f3554082c9f42b7692786.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Из <strong>Solona</strong> в сеть <strong>Nautilus</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7f0e15e4c269be43c82b31f07b52150e2f64d678bbbc0edd065ca1c89eab5a1a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.inevm.com/"><strong>сюда</strong></a>, нам понадобиться токены <strong>$INJ</strong> в сети <strong>Injective</strong></p></li><li><p>Делаем бриджи между сетями <strong>Injective — Cosmos</strong> и <strong>Injective — EVM</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/532545f68b2ea6c3069891d2abee4fd41cdf83117c4db27a0b389d9895126af0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://galxe.com/superform/campaign/GCMVxt4yiy"><strong>Galxe</strong></a> и выполняем <strong>соц. задания</strong> — минтим <strong>NFT</strong> и поинты в сети <strong>Arbitrum</strong> (Нам это нужно, что получить доступ к платформе <strong>SuperForm</strong>)</p></li><li><p>Как склеймили <strong>NFT</strong>, переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.superform.xyz/"><strong>SuperForm</strong></a> и выбираем нужный протокол, в моем случаи (я выберу <strong>$WETH</strong> в сети <strong>Optimism</strong>, как на скрине)</p></li><li><p>Жмём <strong>Deposit</strong> и снизу появится кнопка <strong>Bind</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/31d4b22fe6a64d7eaec1a5b2a458d16ee8620ed4ed0a2686072fda659006674b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В правом нижнем углу жмём на <strong>Select your funding token</strong></p></li><li><p>Далее выбираем какое количество токенов мы будем депозитеть</p></li><li><p>Справа внизу жмём на шестеренку и видим, что <strong>Included Data Bridges</strong> выставлен <strong>Hyperlane</strong></p></li><li><p>Делаете депозит в сети <strong>Optimism</strong></p></li></ul><p><strong>ВАЖНО!</strong> Не все сети могут быть в критериях под дроп, но мы возьмём те, который были в критериях дропа от <strong>Wormhole: Optimism, Arbitrum, BSC, MoonBeam, Polygon, Celo. </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wormhole.com/ecosystem/"><strong>Полный список</strong></a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d481674934eac28e8a2d987bc89d5c168f022538ca153e1bbea42f446c22a03a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Наш депозит мы можем наблюдать в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.superform.xyz/portfolio/"><strong>портфолио</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/255e86bbe0d827b20eb2e545eeec7f1c3584e95638d37a67a1360999a2aed868.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Если у вас есть <strong>$TIA</strong> , то можно застейкать в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wallet.keplr.app/chains/celestia"><strong>валидаторов</strong></a></p></li><li><p>Только не берите биржи — высокие комиссии максимум до <strong>5%</strong> и валидаторов из <strong>топ 20</strong></p></li><li><p>Подаем заявку на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSd_l0sAZVDOo0uv1yAaIXm9zxc5ec1gaOJ_ac0DrftWzRTl-Q/viewform"><strong>амбассадорства</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/sosew.eth"><strong>Mirror</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/bb6a3add37e61a7364b27fd9fa7d04c9beb76c10ef898a0ee9f9e4dfd5e1c04e.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Babylon. Четвертая фаза тестнета]]></title>
            <link>https://paragraph.com/@sosew/babylon-3</link>
            <guid>LlQelowQQNBBW2ACBSbl</guid>
            <pubDate>Fri, 17 May 2024 15:57:31 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Babylon — это новый проект Cosmos, видение которого заключается в использовании безопасности биткоина для повышения безопасности зон Cosmos и других PoS-сетей, также как и Celestia, в данном случае они строят DeFi на BitcoinИнвестировали: $26 000 000Инвесторы: Polychain Capital, OKX Ventures, Binance и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Babylon</strong> — это новый проект <strong>Cosmos</strong>, видение которого заключается в использовании безопасности биткоина для повышения безопасности зон <strong>Cosmos</strong> и других <strong>PoS-сетей</strong>, также как и <strong>Celestia</strong>, в данном случае они строят <strong>DeFi</strong> на <strong>Bitcoin</strong></p><ul><li><p><strong>Инвестировали:</strong> $26 000 000</p></li><li><p><strong>Инвесторы:</strong> Polychain Capital, OKX Ventures, Binance и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Запустили 4-ю прелаунчевскую тестовую сеть <strong>Babylon</strong>. На данном этапе работает только краны, далее заработает стейкинг, минт NFT, и много различных заданий</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/%D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D0%B5%D0%BA-okx/mcohilncbfahbmgdjkbpemcciiolgcge"><strong>OKX Wallet</strong></a><strong> и</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap">Keplr</a></p></li><li><p>В кошельке <strong>OKX Wallet</strong> в верхнем правом углу жмём на значок</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7340cfc974fc733d7d372173f561656fb317a907811318cdb5f262e7d1bcdc4a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нажимаем на <strong>Все сети</strong> и появится сеть <strong>Bitcoin</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4aa2d0127c9937a53ea883b70308b488c3a9ed0647d03022ad44f8f86e796e12.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В основной вкладке спускаемся вниз, нажимаем на <strong>Управлять</strong></p></li><li><p>Вбиваем токен <strong>$sBTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/77801403632876b870b3dbfd8ac1e403c1043614870aefd5dc3902d24a9582e1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Копируем наш адрес <strong>$sBTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d76d6f94cc26da15a402992420abae7b7c77136d78b3d9273880d036ecf24875.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/babylonglobal"><strong>Discord</strong></a></p></li><li><p>Ветка <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/babylonglobal"><strong>#faucet-signet-btc</strong></a></p></li><li><p>Запрашиваем тестовые <strong>$sBTC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/03c2a020f0b66621afc13e8dc1a657ec2005c79802359d268e551971decb4e76.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Теперь ждём, пока добавят стейкинг и другие дексы, протоколы на базе </em><strong><em>Babylon</em></strong><em>. Будет еще минт памятной </em><strong><em>NFT. Обязательно буду держать вас в курсе всех событий в телеграм канале </em></strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong><em>Crypto Fortochka</em></strong></a></p></blockquote>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/d2a06d9ecd648ec45d06b58e31b289f9fba553ccd70654d9fec9fa1927b44fe8.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Initia. Устанавливаем ноду]]></title>
            <link>https://paragraph.com/@sosew/initia-2</link>
            <guid>D7fdxjnvZhjqZclbt25z</guid>
            <pubDate>Wed, 15 May 2024 19:24:52 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Initia — это совместимая сеть, в которой используется MoveVM, первая интеграция языка интеллектуальных контрактов MoveИнвестировали: $7 500 000Инвесторы: Binance Labs, Delphi Digital и другиеХарактеристики: 4CPU/16RAM/1TBSSD — минимальныеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatUbuntu: 20.04На XorekCloud можно ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Initia</strong> — это совместимая сеть, в которой используется <strong>MoveVM</strong>, первая интеграция языка интеллектуальных контрактов <strong>Move</strong></p><ul><li><p><strong>Инвестировали:</strong> $7 500 000</p></li><li><p><strong>Инвесторы:</strong> Binance Labs, Delphi Digital и другие</p></li><li><p><strong>Характеристики: 4</strong>CPU/16RAM/1TBSSD — <strong>минимальные</strong></p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li><li><p><strong>Ubuntu:</strong> 20.04</p></li></ul><p>На <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767"><strong>XorekCloud</strong></a> можно арендовать подходящий сервер за <strong>1399</strong> рублей в месяц + в поддержке вам могут добавить <strong>GB</strong> по цене <strong>1GB = 3рубля</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8778387d05e179e7765678085cb6e5248864ab52ea1985b90f8526183704ca86.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Устанавливаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mobaxterm.mobatek.net/"><strong>MobaXterm</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/076906625b19ac86868fdef1bf051f8ac37e2d44d9b8e4ff4696ae0c485823bd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подключаемся на арендованный сервер через <strong>root</strong></p></li><li><p>Выполняем команды по списку</p></li><li><p>Обновляем и устанавливаем необходимые пакеты</p></li></ul><pre data-type="codeBlock" text="sudo apt update
sudo apt install curl git jq build-essential gcc unzip wget lz4 -y
"><code>sudo apt update
sudo apt install curl git jq build<span class="hljs-operator">-</span>essential gcc unzip wget lz4 <span class="hljs-operator">-</span>y
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6505c69ea3b026144ae9e946b7a7969ee9a78e91df5c27ab3e392114652081b4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Устанавливаем <strong>GO</strong></p></li></ul><pre data-type="codeBlock" text="cd $HOME &amp;&amp; \
ver=&quot;1.21.3&quot; &amp;&amp; \
wget &quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&quot; &amp;&amp; \
sudo rm -rf /usr/local/go &amp;&amp; \
sudo tar -C /usr/local -xzf &quot;go$ver.linux-amd64.tar.gz&quot; &amp;&amp; \
rm &quot;go$ver.linux-amd64.tar.gz&quot; &amp;&amp; \
echo &quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&quot; &gt;&gt; $HOME/.bash_profile &amp;&amp; \
source $HOME/.bash_profile &amp;&amp; \
go version
"><code>cd $HOME <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
ver<span class="hljs-operator">=</span><span class="hljs-string">"1.21.3"</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
wget <span class="hljs-string">"https://golang.org/dl/go$ver.linux-amd64.tar.gz"</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
sudo rm <span class="hljs-operator">-</span>rf <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local<span class="hljs-operator">/</span>go <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
sudo tar <span class="hljs-operator">-</span>C <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local <span class="hljs-operator">-</span>xzf <span class="hljs-string">"go$ver.linux-amd64.tar.gz"</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
rm <span class="hljs-string">"go$ver.linux-amd64.tar.gz"</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
echo <span class="hljs-string">"export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin"</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> $HOME<span class="hljs-operator">/</span>.bash_profile <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
source $HOME<span class="hljs-operator">/</span>.bash_profile <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
go version
</code></pre><ul><li><p>Ставим бинарик</p></li></ul><pre data-type="codeBlock" text="git clone https://github.com/initia-labs/initia.git
cd initia
git checkout v0.2.12
make install
"><code>git <span class="hljs-built_in">clone</span> https://github.com/initia-labs/initia.git
<span class="hljs-built_in">cd</span> initia
git checkout v0.2.12
make install
</code></pre><ul><li><p>Настраиваем переменные</p></li></ul><pre data-type="codeBlock" text="echo &apos;export MONIKER=&quot;My_Node&quot;&apos; &gt;&gt; ~/.bash_profile
echo &apos;export CHAIN_ID=&quot;initiation-1&quot;&apos; &gt;&gt; ~/.bash_profile
echo &apos;export WALLET_NAME=&quot;wallet&quot;&apos; &gt;&gt; ~/.bash_profile
source $HOME/.bash_profile
"><code>echo <span class="hljs-string">'export MONIKER="My_Node"'</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.bash_profile
echo <span class="hljs-string">'export CHAIN_ID="initiation-1"'</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.bash_profile
echo <span class="hljs-string">'export WALLET_NAME="wallet"'</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.bash_profile
source $HOME<span class="hljs-operator">/</span>.bash_profile
</code></pre><ul><li><p>Инициализируем ноду</p></li></ul><pre data-type="codeBlock" text="cd $HOME
initiad init $MONIKER --chain-id $CHAIN_ID
"><code><span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
initiad init <span class="hljs-variable">$MONIKER</span> --chain-id <span class="hljs-variable">$CHAIN_ID</span>
</code></pre><ul><li><p>Устанавливаем гинезиз</p></li></ul><pre data-type="codeBlock" text="wget https://initia.s3.ap-southeast-1.amazonaws.com/initiation-1/genesis.json -O $HOME/.initia/config/genesis.json
"><code>wget https://initia.s3.ap-southeast-1.amazonaws.com/initiation-1/genesis.json -O <span class="hljs-variable">$HOME</span>/.initia/config/genesis.json
</code></pre><ul><li><p>Добавляем сиды и пиры в <strong>config.toml</strong></p></li></ul><pre data-type="codeBlock" text="PEERS=&quot;a63a6f6eae66b5dce57f5c568cdb0a79923a4e18@peer-initia-testnet.trusted-point.com:26628,439fe02b731d7f99a62e44ac5b2e1b02353ca631@38.242.251.179:39656,4db605b6f399a173cfc30e843a7d6a10cd3222a3@158.220.86.6:17956,fd14410d3d6ba362a20d47c02e077da86017cadf@65.21.244.157:17956,a8638b4701f2d11e9269dfd4c2ed0509bd7b12d9@194.163.191.117:39656,0ce5a28686d961d0f1315069c03adb74c6fccc80@37.60.244.91:24556,de31968f3b35942b5a1123998ff0c4ebd3c3aae5@88.99.193.146:26656,f396faca04598721481e714dcb0e3c8ed05a406c@49.12.209.114:15656,fd06e3e5f03b31757ee2ce78d0bf85bb1c71a2d9@65.109.166.136:26656,0d5b90a3b620a7e602f099eb4da99fc03995874e@165.22.245.86:17956,028999a1696b45863ff84df12ebf2aebc5d40c2d@37.27.48.77:26656,7033bed7fa79360e24d5d0cf2f5fee8a683766a9@154.26.129.223:17956,1376a7400ee5400e226ebab384ad89de408163dc@62.171.179.87:13656,23251217584bc066c8027cc735ca1b2893896178@185.197.251.195:17956,277ae7258c9ac789262ef125cfdbf1c02958510a@37.27.71.199:22656,32fece76b6d278672fb73059764f5d6f77086f3a@148.251.3.125:19656,c612c1c6ad4a59fb62a31428782921591e8bb684@42.117.19.109:10656,fa69efe26762f987a1e1eaf4ea053b35380838dc@80.65.211.232:17956,0d6437ca9242b5878f6c784b88e918ba12f12c08@89.58.63.240:53456,f24e92c2b15ea8f212ec63ebae5451d8fcc7da8b@81.0.248.152:39656,ba053d26fe5c30842ddcc2c34c9893d78204ced0@157.90.154.36:17956,32f59b799e6e840fb47b363ba59e45c3519b3a5f@136.243.104.103:24556,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.221.9:26686,862d16bec51e4e2751b00605416df94b7440b7f3@49.13.147.156:39656,1813a8de79d48674f184553800122f7bf794cd57@213.199.52.16:26656,a633694e4f10060023b3c8319ae130fa927f706b@207.180.251.85:17956,22c876f711032026c54d2ccfe81cb2cfe1ec9ac1@37.60.243.170:26656,15a9693fbcdd9d8aea48030be3b520b1d69e8d66@193.34.213.228:14656,98f0f8e9209aa0a8abad39b94b0d2663a3be24ec@95.216.70.202:26656,c2a36ef8b4aaef3acc7d7cbfd77d10cf4cedaa3d@77.237.235.205:53456,8999ddce339185140913a64c623d0cb2a0e104f5@185.202.223.117:17956,04538a79c786a781345533aecff034379023e661@65.108.126.173:53456,670d532665a0f93ccbba6d132109c207301d6353@194.163.170.113:17956,4d98be9bf94c8ec06f7bbd96a9b4de507d2035b8@37.60.252.43:39656,7d097908682ef4f4e168f2136da2612ec43da27c@85.215.181.21:26656,7f194243f4d9ffbe15412fc5a11eec5c914c9300@167.86.114.207:17956,a3f2bd6fcf79eec06a5f384b3edaf1fe6e4ac9ce@82.208.22.54:17956,6dbb770a4b19f685c1cfe3a16738022eb9ca12e2@101.44.82.135:53456,ef4a25ea7000773cb6094dd5d905686ab7426541@158.220.122.90:14656,2bc4ca9a821b56e5786378a4167c57ef6e0d174f@167.235.200.43:17956,e3ee807b6f4e5a5f76e3e3b73da23a07488f01fb@5.75.170.27:17956,9228bbd89be619dd943e44633585c1657051a7d0@173.212.193.103:17956,cbba1ec1e228e01b31d22864c36fb7039088a5aa@194.163.152.41:53456,ae241bcfd5fffef3173c5bd4c72b0b384db5db88@49.13.213.52:26656&quot; &amp;&amp; \
sed -i \
    -e &quot;s/^persistent_peers *=.*/persistent_peers = \&quot;$PEERS\&quot;/&quot; \
    &quot;$HOME/.initia/config/config.toml&quot;
"><code>PEERS=<span class="hljs-string">"a63a6f6eae66b5dce57f5c568cdb0a79923a4e18@peer-initia-testnet.trusted-point.com:26628,439fe02b731d7f99a62e44ac5b2e1b02353ca631@38.242.251.179:39656,4db605b6f399a173cfc30e843a7d6a10cd3222a3@158.220.86.6:17956,fd14410d3d6ba362a20d47c02e077da86017cadf@65.21.244.157:17956,a8638b4701f2d11e9269dfd4c2ed0509bd7b12d9@194.163.191.117:39656,0ce5a28686d961d0f1315069c03adb74c6fccc80@37.60.244.91:24556,de31968f3b35942b5a1123998ff0c4ebd3c3aae5@88.99.193.146:26656,f396faca04598721481e714dcb0e3c8ed05a406c@49.12.209.114:15656,fd06e3e5f03b31757ee2ce78d0bf85bb1c71a2d9@65.109.166.136:26656,0d5b90a3b620a7e602f099eb4da99fc03995874e@165.22.245.86:17956,028999a1696b45863ff84df12ebf2aebc5d40c2d@37.27.48.77:26656,7033bed7fa79360e24d5d0cf2f5fee8a683766a9@154.26.129.223:17956,1376a7400ee5400e226ebab384ad89de408163dc@62.171.179.87:13656,23251217584bc066c8027cc735ca1b2893896178@185.197.251.195:17956,277ae7258c9ac789262ef125cfdbf1c02958510a@37.27.71.199:22656,32fece76b6d278672fb73059764f5d6f77086f3a@148.251.3.125:19656,c612c1c6ad4a59fb62a31428782921591e8bb684@42.117.19.109:10656,fa69efe26762f987a1e1eaf4ea053b35380838dc@80.65.211.232:17956,0d6437ca9242b5878f6c784b88e918ba12f12c08@89.58.63.240:53456,f24e92c2b15ea8f212ec63ebae5451d8fcc7da8b@81.0.248.152:39656,ba053d26fe5c30842ddcc2c34c9893d78204ced0@157.90.154.36:17956,32f59b799e6e840fb47b363ba59e45c3519b3a5f@136.243.104.103:24556,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.221.9:26686,862d16bec51e4e2751b00605416df94b7440b7f3@49.13.147.156:39656,1813a8de79d48674f184553800122f7bf794cd57@213.199.52.16:26656,a633694e4f10060023b3c8319ae130fa927f706b@207.180.251.85:17956,22c876f711032026c54d2ccfe81cb2cfe1ec9ac1@37.60.243.170:26656,15a9693fbcdd9d8aea48030be3b520b1d69e8d66@193.34.213.228:14656,98f0f8e9209aa0a8abad39b94b0d2663a3be24ec@95.216.70.202:26656,c2a36ef8b4aaef3acc7d7cbfd77d10cf4cedaa3d@77.237.235.205:53456,8999ddce339185140913a64c623d0cb2a0e104f5@185.202.223.117:17956,04538a79c786a781345533aecff034379023e661@65.108.126.173:53456,670d532665a0f93ccbba6d132109c207301d6353@194.163.170.113:17956,4d98be9bf94c8ec06f7bbd96a9b4de507d2035b8@37.60.252.43:39656,7d097908682ef4f4e168f2136da2612ec43da27c@85.215.181.21:26656,7f194243f4d9ffbe15412fc5a11eec5c914c9300@167.86.114.207:17956,a3f2bd6fcf79eec06a5f384b3edaf1fe6e4ac9ce@82.208.22.54:17956,6dbb770a4b19f685c1cfe3a16738022eb9ca12e2@101.44.82.135:53456,ef4a25ea7000773cb6094dd5d905686ab7426541@158.220.122.90:14656,2bc4ca9a821b56e5786378a4167c57ef6e0d174f@167.235.200.43:17956,e3ee807b6f4e5a5f76e3e3b73da23a07488f01fb@5.75.170.27:17956,9228bbd89be619dd943e44633585c1657051a7d0@173.212.193.103:17956,cbba1ec1e228e01b31d22864c36fb7039088a5aa@194.163.152.41:53456,ae241bcfd5fffef3173c5bd4c72b0b384db5db88@49.13.213.52:26656"</span> &#x26;&#x26; \
sed -i \
    -e <span class="hljs-string">"s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/"</span> \
    <span class="hljs-string">"$HOME/.initia/config/config.toml"</span>
</code></pre><ul><li><p>Ставим минимальный гайд</p></li></ul><pre data-type="codeBlock" text="sed -i -e &quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&quot;0.15uinit,0.01uusdc\&quot;/&quot; $HOME/.initia/config/app.toml
"><code>sed <span class="hljs-operator">-</span>i <span class="hljs-operator">-</span>e <span class="hljs-string">"s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.15uinit,0.01uusdc\"/"</span> $HOME<span class="hljs-operator">/</span>.initia/config<span class="hljs-operator">/</span>app.toml
</code></pre><ul><li><p>Ставим прунинг</p></li></ul><pre data-type="codeBlock" text="sed -i \
    -e &quot;s/^pruning *=.*/pruning = \&quot;custom\&quot;/&quot; \
    -e &quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&quot;100\&quot;/&quot; \
    -e &quot;s/^pruning-interval *=.*/pruning-interval = \&quot;10\&quot;/&quot; \
    &quot;$HOME/.initia/config/app.toml&quot;
"><code>sed <span class="hljs-operator">-</span>i \
    <span class="hljs-operator">-</span>e <span class="hljs-string">"s/^pruning *=.*/pruning = <span class="hljs-subst">\"</span>custom<span class="hljs-subst">\"</span>/"</span> \
    <span class="hljs-operator">-</span>e <span class="hljs-string">"s/^pruning-keep-recent *=.*/pruning-keep-recent = <span class="hljs-subst">\"</span>100<span class="hljs-subst">\"</span>/"</span> \
    <span class="hljs-operator">-</span>e <span class="hljs-string">"s/^pruning-interval *=.*/pruning-interval = <span class="hljs-subst">\"</span>10<span class="hljs-subst">\"</span>/"</span> \
    <span class="hljs-string">"$HOME/.initia/config/app.toml"</span>
</code></pre><ul><li><p>Создаем сервисный файл</p></li></ul><pre data-type="codeBlock" text="sudo tee /etc/systemd/system/initiad.service &gt; /dev/null &lt;&lt;EOF
[Unit]
Description=initia node
After=network-online.target

[Service]
User=$USER
ExecStart=$(which initiad) start
Restart=on-failure
RestartSec=10
LimitNOFILE=10000

[Install]
WantedBy=multi-user.target
EOF
"><code>sudo tee <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>systemd<span class="hljs-operator">/</span>system<span class="hljs-operator">/</span>initiad.service <span class="hljs-operator">></span> <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">&#x3C;</span>EOF
[Unit]
Description<span class="hljs-operator">=</span>initia node
After<span class="hljs-operator">=</span>network<span class="hljs-operator">-</span>online.target

[Service]
User<span class="hljs-operator">=</span>$USER
ExecStart<span class="hljs-operator">=</span>$(which initiad) start
Restart<span class="hljs-operator">=</span>on<span class="hljs-operator">-</span>failure
RestartSec<span class="hljs-operator">=</span><span class="hljs-number">10</span>
LimitNOFILE<span class="hljs-operator">=</span><span class="hljs-number">10000</span>

[Install]
WantedBy<span class="hljs-operator">=</span>multi<span class="hljs-operator">-</span>user.target
EOF
</code></pre><ul><li><p>Запускам ноду</p></li></ul><pre data-type="codeBlock" text="sudo systemctl daemon-reload
sudo systemctl enable initiad 
sudo systemctl start initiad &amp;&amp; sudo journalctl -u initiad -f -o cat
"><code>sudo systemctl daemon<span class="hljs-operator">-</span>reload
sudo systemctl enable initiad 
sudo systemctl start initiad <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> sudo journalctl <span class="hljs-operator">-</span>u initiad <span class="hljs-operator">-</span>f <span class="hljs-operator">-</span>o cat
</code></pre><ul><li><p>Пойдут <strong>height</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/135498971fc50b823d4fe3eeaa0736056403efb0db0a2233ea83c9419fb9065a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>Жмём </em><strong><em>Cntrc+C, и дальше продолжаем по гайду</em></strong></p></blockquote><ul><li><p>Устанавливаем снепшот</p></li></ul><pre data-type="codeBlock" text="wget https://snapshots.kjnodes.com/initia-testnet/snapshot_latest.tar.lz4 -O latest_snapshot.tar.lz4
"><code>wget https:<span class="hljs-comment">//snapshots.kjnodes.com/initia-testnet/snapshot_latest.tar.lz4 -O latest_snapshot.tar.lz4</span>
</code></pre><pre data-type="codeBlock" text="sudo systemctl stop initiad

cp $HOME/.initia/data/priv_validator_state.json $HOME/.initia/priv_validator_state.json.backup

initiad tendermint unsafe-reset-all --home $HOME/.initia --keep-addr-book
"><code>sudo systemctl stop initiad

cp $HOME<span class="hljs-operator">/</span>.initia/data<span class="hljs-operator">/</span>priv_validator_state.json $HOME<span class="hljs-operator">/</span>.initia/priv_validator_state.json.backup

initiad tendermint unsafe<span class="hljs-operator">-</span>reset<span class="hljs-operator">-</span>all <span class="hljs-operator">-</span><span class="hljs-operator">-</span>home $HOME<span class="hljs-operator">/</span>.initia <span class="hljs-operator">-</span><span class="hljs-operator">-</span>keep<span class="hljs-operator">-</span>addr<span class="hljs-operator">-</span>book
</code></pre><pre data-type="codeBlock" text="lz4 -d -c ./latest_snapshot.tar.lz4 | tar -xf - -C $HOME/.initia
"><code>lz4 <span class="hljs-operator">-</span>d <span class="hljs-operator">-</span>c ./latest_snapshot.tar.lz4 <span class="hljs-operator">|</span> tar <span class="hljs-operator">-</span>xf <span class="hljs-operator">-</span> <span class="hljs-operator">-</span>C $HOME<span class="hljs-operator">/</span>.initia
</code></pre><pre data-type="codeBlock" text="mv $HOME/.initia/priv_validator_state.json.backup $HOME/.initia/data/priv_validator_state.json
"><code>mv $HOME<span class="hljs-operator">/</span>.initia/priv_validator_state.json.backup $HOME<span class="hljs-operator">/</span>.initia/data<span class="hljs-operator">/</span>priv_validator_state.json
</code></pre><ul><li><p>Делаем рестарт и проверяем логи</p></li></ul><pre data-type="codeBlock" text="sudo systemctl restart initiad &amp;&amp; sudo journalctl -u initiad -f -o cat
"><code>sudo systemctl restart initiad <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> sudo journalctl <span class="hljs-operator">-</span>u initiad <span class="hljs-operator">-</span>f <span class="hljs-operator">-</span>o cat
</code></pre><ul><li><p>Проверяем командой, если пишет <strong>false</strong> — значит нода синхронизировалась, можно продолжать создание валидатора</p></li></ul><pre data-type="codeBlock" text="initiad status 2&gt;&amp;1 | jq .sync_info
"><code>initiad status <span class="hljs-number">2</span><span class="hljs-operator">></span><span class="hljs-operator">&#x26;</span><span class="hljs-number">1</span> <span class="hljs-operator">|</span> jq .sync_info
</code></pre><ul><li><p>Если статус <strong>true</strong> — значит еще рано</p></li><li><p>Проверяем командой, если пишет <strong>false</strong> — значит нода синхронизировалась, можно продолжать создание валидатора</p></li></ul><pre data-type="codeBlock" text="initiad status 2&gt;&amp;1 | jq .sync_info
"><code>initiad status <span class="hljs-number">2</span><span class="hljs-operator">></span><span class="hljs-operator">&#x26;</span><span class="hljs-number">1</span> <span class="hljs-operator">|</span> jq .sync_info
</code></pre><ul><li><p>Если статус <strong>true</strong> — значит еще рано</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1d943ccdd02de307449aeea3114712b974c44b68c4d6b3f647fc590561df028d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>В логах мы можем увидеть количество блоков и сравнить с <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://scan.testnet.initia.xyz/initiation-1/blocks"><strong>Explorer</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1317de92a95e6bbba63e3bb69cd6c4e5d49cf4b510ae813128382a703fe6c4d1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Блоки должны быстрее дойти, в статуcе будет писаться <strong>false</strong></p></li></ul><h1 id="h-sozdaem-validatora" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Создаем валидатора</strong></h1><ul><li><p>Создаем кошелек для нашего валидатора</p></li></ul><pre data-type="codeBlock" text="initiad keys add $WALLET_NAME
"><code>initiad <span class="hljs-keyword">keys</span> add $WALLET_NAME
</code></pre><ul><li><p>Если уже ранее создали кошелек, то импортируйте по сидке с помощью этой команды</p></li></ul><pre data-type="codeBlock" text="initiad keys add wallet --recover
"><code>initiad keys <span class="hljs-keyword">add</span> wallet <span class="hljs-comment">--recover</span>
</code></pre><ul><li><p>Вставляем пароль (Не вписывать, а заранее скопируйте пароль и <strong>вставьте</strong> его в <strong>белый квадратик</strong> + <strong>Enter</strong>)</p></li><li><p>Нам выдаст наш кошелек с сидкой — <strong>сохраняем в надежное место</strong></p></li><li><p>Далее идём к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.testnet.initia.xyz/"><strong>крану</strong></a> и запрашиваем тестовые токены</p></li></ul><p><strong>Вставляем адрес, который нам выдали выше</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/88dcc81f6ed80566bdcf92d0221bf13651efc3b58e442dac2376204cd81f8515.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Проверяем баланс, если токены пришли, продолжаем</p></li></ul><pre data-type="codeBlock" text="initiad q bank balances $(initiad keys show $WALLET_NAME -a) 
"><code>initiad <span class="hljs-selector-tag">q</span> bank balances $(initiad keys show $WALLET_NAME -<span class="hljs-selector-tag">a</span>) 
</code></pre><ul><li><p>Создаем валидатора</p></li><li><p>Можно заменить на свои значение <strong>moniker, details, website</strong></p></li></ul><pre data-type="codeBlock" text="initiad tx mstaking create-validator \
  --amount=10000000uinit \
  --pubkey=$(initiad tendermint show-validator) \
  --moniker=$MONIKER \
  --chain-id=$CHAIN_ID \
  --identity=&quot;keybase-id&quot; \
  --website=&quot;website-link&quot; \
  --details=&quot;CryptoFortochkaDao&quot; \
  --security-contact=&quot;email-address&quot; \
  --commission-rate=&quot;0.10&quot; \
  --commission-max-rate=&quot;0.20&quot; \
  --commission-max-change-rate=&quot;0.01&quot; \
  --from=$WALLET_NAME \
  --gas=auto \
  --gas-adjustment=1.4 \
  --fees=300000uinit \
  -y
"><code>initiad <span class="hljs-built_in">tx</span> mstaking create<span class="hljs-operator">-</span>validator \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>amount<span class="hljs-operator">=</span>10000000uinit \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>pubkey<span class="hljs-operator">=</span>$(initiad tendermint show<span class="hljs-operator">-</span>validator) \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>moniker<span class="hljs-operator">=</span>$MONIKER \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>chain<span class="hljs-operator">-</span>id<span class="hljs-operator">=</span>$CHAIN_ID \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>identity<span class="hljs-operator">=</span><span class="hljs-string">"keybase-id"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>website<span class="hljs-operator">=</span><span class="hljs-string">"website-link"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>details<span class="hljs-operator">=</span><span class="hljs-string">"CryptoFortochkaDao"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>security<span class="hljs-operator">-</span>contact<span class="hljs-operator">=</span><span class="hljs-string">"email-address"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>commission<span class="hljs-operator">-</span>rate<span class="hljs-operator">=</span><span class="hljs-string">"0.10"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>commission<span class="hljs-operator">-</span>max<span class="hljs-operator">-</span>rate<span class="hljs-operator">=</span><span class="hljs-string">"0.20"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>commission<span class="hljs-operator">-</span>max<span class="hljs-operator">-</span>change<span class="hljs-operator">-</span>rate<span class="hljs-operator">=</span><span class="hljs-string">"0.01"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-keyword">from</span><span class="hljs-operator">=</span>$WALLET_NAME \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>gas<span class="hljs-operator">=</span>auto \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>gas<span class="hljs-operator">-</span>adjustment<span class="hljs-operator">=</span><span class="hljs-number">1.4</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>fees<span class="hljs-operator">=</span>300000uinit \
  <span class="hljs-operator">-</span>y
</code></pre><ul><li><p>Делегируем самому себе</p></li><li><p>Замените <strong>AMOUNT</strong> на свои значения</p></li></ul><pre data-type="codeBlock" text="initiad tx mstaking delegate $(initiad keys show $WALLET_NAME --bech val -a)  &lt;AMOUNT&gt;uinit --from $WALLET_NAME --gas=2000000 --fees=300000uinit -y
"><code>initiad <span class="hljs-built_in">tx</span> mstaking delegate $(initiad keys show $WALLET_NAME <span class="hljs-operator">-</span><span class="hljs-operator">-</span>bech val <span class="hljs-operator">-</span>a)  <span class="hljs-operator">&#x3C;</span>AMOUNT<span class="hljs-operator">></span>uinit <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-keyword">from</span> $WALLET_NAME <span class="hljs-operator">-</span><span class="hljs-operator">-</span>gas<span class="hljs-operator">=</span><span class="hljs-number">2000000</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>fees<span class="hljs-operator">=</span>300000uinit <span class="hljs-operator">-</span>y
</code></pre><h1 id="h-dopolnitelnye-komandy" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Дополнительные команды</strong></h1><ul><li><p>Выйти из тюрьмы</p></li></ul><pre data-type="codeBlock" text="initiad tx slashing unjail --from $WALLET_NAME --gas=2000000 --fees=300000uinit -y
"><code>initiad <span class="hljs-built_in">tx</span> slashing unjail <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-keyword">from</span> $WALLET_NAME <span class="hljs-operator">-</span><span class="hljs-operator">-</span>gas<span class="hljs-operator">=</span><span class="hljs-number">2000000</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>fees<span class="hljs-operator">=</span>300000uinit <span class="hljs-operator">-</span>y
</code></pre><ul><li><p>Отредактировать своего валидатора</p></li></ul><pre data-type="codeBlock" text="initiad tx mstaking edit-validator --website=&quot;&lt;WEBSITE&gt;&quot; --details=&quot;&lt;DESCRIPTION&gt;&quot; --moniker=&quot;&lt;NEW_MONIKER&gt;&quot; --from=$WALLET_NAME --gas=2000000 --fees=300000uinit -y
"><code>initiad <span class="hljs-built_in">tx</span> mstaking edit<span class="hljs-operator">-</span>validator <span class="hljs-operator">-</span><span class="hljs-operator">-</span>website<span class="hljs-operator">=</span><span class="hljs-string">"&#x3C;WEBSITE>"</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>details<span class="hljs-operator">=</span><span class="hljs-string">"&#x3C;DESCRIPTION>"</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>moniker<span class="hljs-operator">=</span><span class="hljs-string">"&#x3C;NEW_MONIKER>"</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-keyword">from</span><span class="hljs-operator">=</span>$WALLET_NAME <span class="hljs-operator">-</span><span class="hljs-operator">-</span>gas<span class="hljs-operator">=</span><span class="hljs-number">2000000</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>fees<span class="hljs-operator">=</span>300000uinit <span class="hljs-operator">-</span>y
</code></pre><ul><li><p>Посмотреть логи</p></li></ul><pre data-type="codeBlock" text="sudo journalctl -u initiad -f -o cat
"><code>sudo journalctl <span class="hljs-operator">-</span>u initiad <span class="hljs-operator">-</span>f <span class="hljs-operator">-</span>o cat
</code></pre><ul><li><p>Сделать рестарт ноды</p></li></ul><pre data-type="codeBlock" text="sudo systemctl restart initiad
"><code></code></pre><ul><li><p>Остановить ноду</p></li></ul><pre data-type="codeBlock" text="sudo systemctl stop initiad
"><code>sudo systemctl stop initiad
</code></pre><ul><li><p>Удалить ноду</p></li></ul><pre data-type="codeBlock" text="sudo systemctl stop initiad
sudo systemctl disable initiad
sudo rm /etc/systemd/system/initiad.service
rm -rf $HOME/.initia
sudo rm /usr/local/bin/initiad
"><code>sudo systemctl stop initiad
sudo systemctl disable initiad
sudo rm <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>systemd<span class="hljs-operator">/</span>system<span class="hljs-operator">/</span>initiad.service
rm <span class="hljs-operator">-</span>rf $HOME<span class="hljs-operator">/</span>.initia
sudo rm <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local<span class="hljs-operator">/</span>bin<span class="hljs-operator">/</span>initiad
</code></pre><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/sosew.eth"><strong>Mirror</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/ec49bec30b650dd843cd180005b361484508f954983bd1db6e1e425004f92acc.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Initia. Оплачиваемый тестнет]]></title>
            <link>https://paragraph.com/@sosew/initia</link>
            <guid>HMhQnBOVqgHZaGBY3yo3</guid>
            <pubDate>Wed, 15 May 2024 11:13:56 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Initia — это совместимая сеть, в которой используется MoveVM, первая интеграция языка интеллектуальных контрактов MoveИнвестировали: $7 500 000Инвесторы: Binance Labs, Delphi Digital и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatЧувствуете? это запах сезона оплачиваемых тестнетов Вчера ночью, Initia анонсиро...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Initia</strong> — это совместимая сеть, в которой используется <strong>MoveVM</strong>, первая интеграция языка интеллектуальных контрактов <strong>Move</strong></p><ul><li><p><strong>Инвестировали:</strong> $7 500 000</p></li><li><p><strong>Инвесторы:</strong> Binance Labs, Delphi Digital и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Чувствуете? это запах сезона оплачиваемых тестнетов</p><p>Вчера ночью, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/initiaFDN/status/1790384204708258036"><strong>Initia</strong></a> анонсировали запуск вознаграждаемого тестнета, который продлиться 8 недель и позволит нам изучить экосистему Initia, и получить вознаграждения</p><p>Сама кампания достаточно нелегкая, но достаточно увлекательная, нам придется фармить XP, чтобы накормить нашего питомца. Да, и из за количество наплывших пользователей, сеть периодически падает, но более менее еще терпимо, настоятельно рекомендую участвовать</p><p>Еще можно поставить ноду (своего валидатора), ставиться не сложно, накидайте огоньков, и постараюсь выложить как можно раньше)</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Переходим на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/"><strong>сайт</strong></a> и подключаем кошелек</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9a5d07e9fbb473bdd449cbd585c7366b83d9f3b337f4b56658973c32d9319296.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.testnet.initia.xyz/?address="><strong>сюда</strong></a> и запрашиваем тестовые токены</p></li><li><p>Помните, вы можете получать деньги из крана только один раз в 24 часа!</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f28aeab6c90204953375da2b87f2c281ecbbe78bf6a06bb5eb22062914119898.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/995f0788fb5807d5acd817187e298e5389900e2ef2fbb2821750cd154e83daf1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://usernames.testnet.initia.xyz/"><strong>сюда</strong></a> и привязываем <strong>кошелек</strong></p></li><li><p>Вписываем по середине <strong>свой никнейм</strong> и жмём <strong>Enter</strong> на клавиатуре</p></li><li><p>Оплачиваем аренду домена</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c6e48ca160f7bd78aae5901fa3f6151158eb4ef432d02ef49e8096d7809a2bd3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/swap?from=INIT&amp;to=USDC"><strong>свапалке</strong></a> и меня делаем свап <strong>$INIT</strong> на <strong>$USDC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/766427f438ce1331b0994882654b8bcc5f7ba232fefcbffd3587c161a5943f96.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Тоже самое делаем с токеном <strong>$TIA и $ETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/86aa17f61fe73f53548029ad9ec67e4ab14f067c5f17a0832a8d739a5de41dc9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь идём стейкать <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake/INIT">сюда</a></p></li><li><p>Стейкаем токены <strong>$INIT — любое количество</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2d4870394d804f8859f1a7e819b8e788721daf9712404f2373aba53159b33fb5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выбираем любого валидатора</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f4fa395a24f53a918f94bbb38ab08583da64c8b30190ce4558140fd49d0ae1af.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c1460fcf1dbb80223cae37c8b3f6a86af53dfd69ba0d87e26ae98c7a98f733e5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake?fromXp=true"><strong>сюда</strong></a> и стейкаем во все пары <strong>USDC/TIA/ETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3c7cb49f9690ff195e913f576b330446342253f94242613130c50e21044d0f5d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/108deb1a83fb3c6f9bbca30665d8ce7db842132f9e51586f4ab32cc702247bf3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6d75b90c42dc4bb0f8cb7283260d558268a5aa7f188e1662b3a7417431df6703.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Наконец, вы можете проверить обновленный баланс на <strong>MyPage</strong></p></li></ul><blockquote><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong><em>Crypto Fortochka</em></strong></a> — Гайды, ноды, майннеты, вижимки, BLOG</p></blockquote><ul><li><p>После того, как вы поставили свой актив, вы можете получить вознаграждение за стейкинг на этой странице</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6ded861116308bf90d9d958ff973040ce41610cf55d84caffe172641fb100cd7.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d5e4a2b2974c7e51daae609d9ce2c56f33c17f9745c7fe437bccbfc9d35198f8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее переходим на главную страницу тестнета и минтим NFT за каждое выполненное задание</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/19f515c1ef590d8138d516e73b280a683ba470bbd654bf7964d062fdcbc57dbb.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также появятся реварды в последнем задания — протыкиваем</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/78f8a6da73100832402c985fce8fb2b9a219a50e7aecbdb1041aa116fce203d7.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/64322af68d4bf06bd75867ff0e15a5514508936550c7e5c2be220e950b2ab665.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Через некоторое время появится <strong>Mint</strong> — минтим</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/38dd90be258842c00617a0d05c1c5fe235079a8156d35b671c2cd11c11c207c4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Нам дадут последнее <strong>NFT</strong>, который даёт <strong>600XP</strong></p></li><li><p>Тыкаем на <strong>Build Jennie — подтверждаем транзакцию</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/55ce1f670cac8f559816859370cd30a52fd5e5c10bb50f8be50152c90679d692.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p><em>После того как мы сминтили последнюю </em><strong><em>NFT</em></strong><em> мы получаем питомца по имени </em><strong><em>Jennie</em></strong><em>, за которым мы должны следить, кормит правильной едой и как минимум раз в неделю</em></p></blockquote><ul><li><p>Появится наша статистика</p></li><li><p>Прожимаем на <strong>Earn more XP</strong> и забираем дополнительные <strong>XP</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0cd01b1a2edf0a980179a31d70a0df804ad9f63e0b88225ec715ecee2b2efba4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Введите реферальный код, который даст вам 50XP — <strong>AGPWELQN</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1a348705c5a338fc8c816d974c71a21590dc17e5c921fde9d69dce046a42d593.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее жмём на <strong>Feed Jennie</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f03e6b13676d3eede6950960d1f66df0ef376eb59c1ff61e7a9a8780761090aa.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Появятся дашборд нашего питомца <strong>Baby Jennie</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cf3135ef2909097616820a190204ff90013e17b874560987612235318c4b410c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>На панели с питомцем у нас есть 3 вида вкусняшек: <strong>Canned Food / Good Lunch / Filet Mignon</strong></p></li><li><p>Нам нужно будет кормить нашего питомца лучшей едой, её мы можем достать в магазине — Тыкните на <strong>Buy More Food</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8fb3e5504cbe57cba5b8ef0066da5848345b5d392400fd624b3958d7f2b534d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Чтобы купить еду, нам потребуется <strong>XP</strong></p></li><li><p>Еда распределяется на 3 вида: <strong>Common / Rare / Legendary</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/41e6c5cd43914586688b8ed632b4bf037cd5db81c5250cf5afea57985e03b2a1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>C каждой покупки, нам можем выпасть рандомная пища</p></li><li><p>Мы можем её использовать и повышать наше здоровье</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b920cf7d7b0b210231611d5c57f335a5b459ce599c566f54500c08d55214d489.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Мы также можем её <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/xp/kitchen"><strong>апгрейтнуть</strong></a> в более лучшую еду</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7577f332d13e14542c69ee7cc0933a034e11c2133daf8a9cafc2703b1e70204c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Jennie <strong>улучшается на новый уровень каждый раз</strong>, когда ей удается набрать 5 очков здоровья за счет кормления</p></li><li><p>Кормление ее <strong>Filet Mignon</strong> заставит ее мгновенно превратиться</p></li><li><p>Если не кормить <strong>Jennie</strong> в течение недели, она превратится в призрака. Вы можете вернуть ее к жизни, покормив ее <strong>Filet Mignon</strong></p></li></ul><h1 id="h-dopolnitelnyj-farming-xp" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Дополнительный фарминг XP</strong></h1><ul><li><p>Переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://init-ai.testnet.initia.xyz/">Init-Ai</a> и подключаем кошелек</p></li><li><p>Нам тут нужно будет минтить <strong>NFT</strong> и выставлять на продажу</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d9f0f757b27e73d3c780fbd7f9cb73abb46ef17171903851146df6805cad91b4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к официальному <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.testnet.initia.xyz/"><strong>бриджу</strong></a></p></li><li><p>Сверху ставим сеть <strong>Initia</strong> и токен <strong>$INIT</strong></p></li><li><p>Cнизу ставим сеть <strong>INIT AI</strong> и токен <strong>$INIT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f0e7cc8f156941273e85ff6f6b0d3c0d8a2a1b311edcd2b09bea54e620a03555.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Как сделали бриджи, отправляемся минтить <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://init-ai.testnet.initia.xyz/"><strong>NFT</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5dcd0089f093bd964981c887442f1e8862986e80a876b2842ce752204d27dcf3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отлично! Теперь нужно создать коллекцию <strong>NFT</strong></p></li><li><p>Тыкаем на главной странице кнопку <strong>Generate Collection</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5860c1b86b21bb7f7890e5442bafe666a1887395ea8a9d78d82cf054d07ec33a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Может сильно лагать, посмотреть сминченные и создание коллекцию можно <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://init-ai.testnet.initia.xyz/my"><strong>здесь</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/48c87c3fd2f7710dd1657301bc4edd227f598cda6faeaf8852e57548d9e305e4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>На главной странице можно увидеть количество <strong>Credit allocation</strong> за сутки</p></li><li><p>Одно действие — 1 кредит (<strong>всего их 5</strong>)</p></li><li><p>За все эти действия мы будем получать <strong>XP в тестенете, который будем тратить на еду для питомцев)</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/daa08b524c0dc40fdc97a34fc1568842a60fa8fb89dc66c151a31dbfe09d11ea.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся снова к официальному <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.testnet.initia.xyz/"><strong>бриджу</strong></a></p></li><li><p>Сверху ставим сеть <strong>Initia</strong> и токен <strong>$INIT</strong></p></li><li><p>Снизу ставим сеть <strong>Tucana</strong> и токен <strong>$TUC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/51293d23782a7d3875ed061d7af08003749dd0fe469934ed94b6fcfdf6f044df.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся переходим к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://birdee.ag.tucana.zone/swap"><strong>дексу</strong></a> построенный на <strong>Initia</strong></p></li><li><p>Подключаем кошелек</p></li><li><p>Делаем свап <strong>$INIT</strong> на <strong>$USDC</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3c98fac0b8238d39fc85f51891da067844f249c93856940539e92aaf5ef33f28.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее добавляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://birdee.ag.tucana.zone/pools/liquidity/0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9/0x29824d952e035490fae7567deea5f15b504a68fa73610063c160ab1fa87dd609/2500"><strong>ликвидность</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8c0345f8b81a02f25381fa7266b2bc1cc91d543b1c8f78d739497b7b879f6e5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим во вкладку <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://birdee.perp.tucana.zone/liquidity"><strong>Perps</strong></a> — <strong>Liquidity</strong> и конвертируем токен <strong>$TUC</strong> в <strong>$TLP</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/200c0c6fcab64c2568a296934ea451a42b1d40ded10c80fea4778fea9704a10b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>По желанию закидываем ликвидность в <strong>Blackwing</strong></p></li><li><p>Инвайты</p></li></ul><p><strong>blackwing.fi/pzlgxhblackwing.fi/w5rm6iblackwing.fi/p1o1ek</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c41e6e6ce080a88506d0c75e943a08f9511d52aad780876bbea3c40e558db9ae.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Также выполняем квесты на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.lunchlunch.xyz/"><strong>Lunch</strong></a> — нужно будет установить приложение на телефон и выполнять квесты</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ad3a335f9c7e02cac76807a88a1c1729b89e9753185276429cc669c4df634628.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-vtoraya-nedelya-bonusnye-zadaniya" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Вторая неделя. Бонусные задания</strong></h1><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/37b80dea519c622158797b51167145681c78d9aa2c4f5bf1cd32f3420db892e0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Клеймим <strong>XP</strong> за первую неделю</p></li><li><p>Отправляем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=initiation-1"><strong>сюда</strong></a> и отправляем <strong>1 $INIT</strong> на другой <strong>L1</strong> адрес</p></li><li><p>Можете отправить на мой адрес <strong>init1tvq6vp4atau3dtagzrsasvla0k8xds3mth6zsz</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/359e9f51065c58780704d89bdb1dc9b9624dc7600dc90f73891d1c424800ec45.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Кормим нашего питомца, если до этого не кормили</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/894ff1ad93f9f5769f83361ddcdfff778ab76839fe18538a01afc9873e07891e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/swap"><strong>сюда</strong></a> и свапаем <strong>$INIT</strong> на <strong>$USDC</strong></p></li><li><p>Затем делаем свап <strong>$INIT</strong> на <strong>$TIA</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ba0a1c137bc366dc43b07466c995c312396971bea75c2d633b66d18f343728dc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6730fe6d48171cae7026b97d6416309d11fd4b7566d17f5eb2f3318995369a96.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Третий свап <strong>$INIT</strong> на <strong>$ETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2f7ab364cf0d172acaae82d52cc035d983c62dec23c5382cd9b3a7a2ee6c540c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake/USDC-INIT"><strong>сюда</strong></a> и стекаем пару <strong>$USDC — $INIT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bef3c8bfaf064bbe7c25f9a7623465f25c7701c9dcf4ba7aea25c4a26d2ce38e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выбираем любого валидатора и подтверждаем транзакцию</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a68e36a38ec95f33b0a4e74458d80949ff7417b6388b2f8867794ad3c718d685.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake/TIA-INIT"><strong>Здесь</strong></a> стейкаем <strong>$TIA-$INIT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5603484888830e7e3c86f5bfde24980f362d1b4a6646e53d0fab9207f5b740ad.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake/ETH-INIT"><strong>Здесь</strong></a> стейкаем <strong>$ETH-$INIT</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ef2bf29df6f2239d9e602a8bab08b4e18363192d88c90b80e56dea3abd6cc361.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 id="h-ne-zabyvaem-kormit-svoih-pitomcov-i-pokupat-edu" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Не забываем кормить своих питомцов и покупать еду</strong></h2><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/008f14bf8f763f9521c7f61675481deb9484b101dbfb754d1e3b53e5361c556f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/223dae426a4472d6194f3bc56d5e5a3fea5e3327dd131d8df3b1e1091b705b24.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Morph. Делаем вторую фазу тестнета]]></title>
            <link>https://paragraph.com/@sosew/morph-2</link>
            <guid>h5rbnkCW8KVvo3aEU5c3</guid>
            <pubDate>Sun, 12 May 2024 10:28:58 GMT</pubDate>
            <description><![CDATA[CryptoFortochka — гайды, ноды, новости, тестнеты Morph — это модульный Layer2, объединяющий в себе сильные стороны Optimistic и ZK роллапов с целью масштабировать, уменьшить барьер входа и повысить безопасность сетиИнвестировали: $16 000 000Инвесторы: Tribe Capital, Balaji Srinivasan, Wintermute и другиеАрендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, ContaboНадежные прокси и антик: Proxyline / Travchisproxies / DolphinЧат с поддержкой: https://t.me/fortochatРанее мы выполн...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>CryptoFortochka</strong></a> — гайды, ноды, новости, тестнеты</p><p><strong>Morph</strong> — это модульный <strong>Layer2</strong>, объединяющий в себе сильные стороны <strong>Optimistic</strong> и <strong>ZK роллапов</strong> с целью масштабировать, уменьшить барьер входа и повысить безопасность сети</p><ul><li><p><strong>Инвестировали:</strong> $16 000 000</p></li><li><p><strong>Инвесторы:</strong> Tribe Capital, Balaji Srinivasan, Wintermute и другие</p></li><li><p><strong>Арендовать сервер:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xorek.cloud/?from=4767">XorekCloud</a><strong>,</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://aeza.net/?ref=379357">AEZA</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://accounts.hetzner.com/">Hetzner</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pq.hosting/?from=540715">PqHosting</a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vdsina.ru/?partner=ec75ts1brd">VDsina</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://contabo.com/en/vps/">Contabo</a></p></li><li><p><strong>Надежные прокси и антик:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxyline.net/?ref=273183%2F">Proxyline</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://travchisproxies.com/billing/aff.php?aff=47">Travchisproxies</a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dolphin-anty.com/a/39233">Dolphin</a></p></li><li><p><strong>Чат с поддержкой:</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/fortochat">https://t.me/fortochat</a></p></li></ul><p>Ранее мы выполняли первую <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto/705"><strong>фазу тестнета</strong></a>, и позавчера запустили новую тестовую фазу, на этот с <strong>Ethereum Holesky</strong>, команда сообщает, что это последний этап перед запуском в основную сеть <strong>Morph</strong>, которая скоро будет запущена</p><p>Также в дискорде появилась система ролей. Пишут, что в будущем за роли в дискорде будут разные награды. Участников, выбивающих роли пока мало, но нужно около 100 сообщений и уже в топ400 сервера</p><h1 id="h-chto-delat" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Что делать?</strong></h1><ul><li><p>Переходим к крану <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://stakely.io/en/faucet/ethereum-holesky-testnet-eth">Holesky</a> и запрашиваем тестовые <strong>$ETH</strong></p></li><li><p>Список кранов <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.quicknode.com/ethereum/holesky"><strong>1</strong></a> / <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.quicknode.com/ethereum/holesky"><strong>2</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1c45d630a77f156cf97e6f16ca1d227ca5cb9acef5ad19d1e0e1ad2e89070d49.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0ae636e2734fcf87e9137600aaa11c7892eac3cb11a3eb489bc8b70c936a2307.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Делаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge-holesky.morphl2.io/"><strong>бридж</strong></a> из <strong>Holesky</strong> в сеть <strong>Morph Testnet</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0ee948f068e49326043328cc05f0fb91a80a8a8c700c1bd8f5145f76cb8725c0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Переходим в <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.gg/morphl2"><strong>дискорд</strong></a> и тыкаем на <strong>#role-selection</strong> — забираем все роли</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2d7cc8dcdafb218fceac8910729d2e26708b0c43dc3c6c39b4c5b04e682630cf.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся в канал <strong>#discord-faucet</strong></p></li><li><p>Запрашиваем тестовые <strong>$ETH</strong> в сеть <strong>Morph Holesky</strong></p></li><li><p>Получаем <strong>0,3 $ETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/16d2ee34b079700e04a9e3daaac6d332371c5f173c3d87be524b2f09bedbc1e4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Теперь тыкаем на <strong>Withdraw</strong> и нас попросят сменить сеть на <strong>Morph Holesky</strong></p></li><li><p>Делаем <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge-holesky.morphl2.io/">бридж</a> из <strong>Morph Holesky</strong> в сеть <strong>Holesky</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c3f31c7b0d6198b0ecc425401646cfc89d80bb89772ef72754b142613ececadc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Отправляемся к <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.bulbaswap.io/swap/"><strong>свапалке</strong></a> и делаем свап <strong>$ETH</strong> на <strong>$WETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0d4fb9552bec79c4729c70e3935a1e539d879337fe3bc77fe1926c67b9495516.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Далее идём <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.abra.finance/dashboard/"><strong>сюда</strong></a> и коннектим</p></li><li><p>Делаем <strong>Borrow</strong> и <strong>Supply</strong> токенов <strong>$WETH</strong></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a362ef8a7782ece1e3bff18cf6c14f1cfcaed0b6d0a94a655e4c739cfd720e1d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Выполняем задания на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Morph/GCPcDtzk5V"><strong>Galxe</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/798b2d3e202f187110f328ae73a0d45b346735adc7c55893ed778605be38787c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Заполняем форму на <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSfG20q1ecLj-ozeVPy_jDs5SkIt43uU4WQDVNpHF4gAvetzfw/viewform"><strong>амбассадора</strong></a></p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4b85e8c4bc1cec6d4003b3ce27bfcb49d027bdaa597a86a832baeb5bc3b8fa23.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/cryptoforto"><strong>Телеграм канал с гайдами</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/profile/0x05bb279648e4e4cbcdecf2d4d6ec310999d444e7?t=1696236908255&amp;r=994"><strong>DeBank Profile</strong></a></p></li></ul>]]></content:encoded>
            <author>sosew@newsletter.paragraph.com (CryptoFortochka)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/75fe4a2ad2ac2920e01648114ad80289b77a63f4107b5b701f57fc29c52af1a0.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>