<?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>Atoms Research</title>
        <link>https://paragraph.com/@atoms-research</link>
        <description>Exploring the crypto market under the microscope 🔬</description>
        <lastBuildDate>Wed, 12 Aug 2026 18:07:20 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Atoms Research</title>
            <url>https://storage.googleapis.com/papyrus_images/a70ed5db8dd28a04d1729a7640f964ade565b236113e7874ab28c556ec61653f.png</url>
            <link>https://paragraph.com/@atoms-research</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Deploying contracts on Base]]></title>
            <link>https://paragraph.com/@atoms-research/deploying-contracts-on-base</link>
            <guid>onhLcAihKypQsDoX5hjF</guid>
            <pubDate>Wed, 14 Aug 2024 13:50:44 GMT</pubDate>
            <description><![CDATA[We have prepared a list of platforms that you can use to deploy a contract on Base 🔵 Spectral Spectral is a machine intelligence network empowering users to build onchain AI agents and engage with an onchain agent economy Raised: $29.82M from Polychain Capital, Circle, Galaxy, Samsung and others Cost (1 contract): ~$0.27 • We published a thread on how to deploy a contract here 🔵 Merkly Merkly is a multifunctional omnichain platform, designed to simplify bridging via pioneering interoperabil...]]></description>
            <content:encoded><![CDATA[<p>We have prepared a list of platforms that you can use to deploy a contract on Base</p><p>🔵 <strong>Spectral</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/Spectral_Labs"><strong>Spectral</strong></a> is a machine intelligence network empowering users to build onchain AI agents and engage with an onchain agent economy</p><p><strong>Raised</strong>: $29.82M from Polychain Capital, Circle, Galaxy, Samsung and others</p><p><strong>Cost</strong> (<em>1 contract</em>): ~$0.27</p><p>• We published a thread on how to deploy a contract <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/atoms_res/status/1822201377264713884">here</a></p><p>🔵 <strong>Merkly</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/@merkly_com"><strong>Merkly</strong></a> is a multifunctional omnichain platform, designed to simplify bridging via pioneering interoperability technology</p><p><strong>Cost</strong> (<em>1 contract</em>): ~$0.01</p><p>🔗 Deploy your contract <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://minter.merkly.com/deploy/empty">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/236f0dc1ec30bbc1ebe18f7d0796a86bfa892b4ac6c0a1287dbe733ad00131ed.png" alt="" 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>Owlto</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/Owlto_Finance"><strong>Owlto Finance</strong></a> is an intent-centric cross-chain bridging protocol</p><p><strong>Raised</strong>: $8M from Bixin Ventures, and others.</p><p><strong>Valuation:</strong> $150M</p><p>🔗 Deploy your contract <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://owlto.finance/deploy/?chain=base">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/715582c479c78c9963248b4579674070620d5edbfa01fb446c771eec7963c8ae.png" alt="" 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>Thirdweb</strong></p><p>**<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/thirdweb">Thirdweb</a> **is a full-stack, open-source web3 development platform</p><p><strong>Raised</strong>: $29M from Coinbase Ventures, and others</p><p>🔗 Deploy your contract <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://thirdweb.com/deploy">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6839b900d1d38207859b75c8bcf987c129b82faf548dec0c730c0a9b0a5f8b24.png" alt="" 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>Remix</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/EthereumRemix"><strong>Remix</strong></a> is a rich toolset that can be used for the entire journey of contract development by users of any knowledge level, and as a learning lab for teaching and experimenting with Ethereum</p><p>This option is more difficult to deploy, but at the same time, such contracts are unique and have more functions</p><p>🔗 Deploy your contract <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://remix.ethereum.org/">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1ac10c72cc111131e28bc20e40a4f0c72d7c47f5bba2cbdc209c4391ad5321c5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/ba0eefc0093412c60fc915017bc0ca1bca19668315907d5cadc195b542ae2098.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Base: contract deployment]]></title>
            <link>https://paragraph.com/@atoms-research/base-contract-deployment</link>
            <guid>cQgPp4gEA7gITUOi4bAq</guid>
            <pubDate>Sat, 20 Jul 2024 15:05:32 GMT</pubDate>
            <description><![CDATA[Base is an Ethereum L2, incubated by Coinbase and built on the open-source OP Stack Coinbase raised $574.2M from a16z, Polychain Capital, and othersWhat to do:• Add the testnet network to your wallet• Request test tokens from the faucet• Go to Remix and create a new workspace • Visit the “Solidity Compiler” tab • Select version 0.8.0 and click “Auto Compile” • Open the “Deploy Transactions” tab • Select MetaMask as Environment • Create a new file and paste this code:// SPDX-License-Identifier...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/base"><strong>Base</strong></a> is an Ethereum L2, incubated by Coinbase and built on the open-source OP Stack</p><p>Coinbase <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/coinbase#funding-rounds">raised</a> $574.2M from a16z, Polychain Capital, and others</p><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Add the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chainlist.org/chain/84532">testnet network</a> to your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/887377491354b2f8876c60c6eb7ab9ef51abb09079fc6bcb9c19d5884233a12d.png" alt="" 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>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.alchemy.com/faucets/base-sepolia">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b266e177d370ecae6a747a5e42373cab331be4bba7231d424c149762c534fc52.png" alt="" 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>• Go to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://remix.ethereum.org/">Remix</a> and create a new workspace</p><p>• Visit the “Solidity Compiler” tab</p><p>• Select version 0.8.0 and click “Auto Compile”</p><p>• Open the “Deploy Transactions” tab</p><p>• Select MetaMask as Environment</p><p>• Create a new file and paste this code:</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract BasicMath {
function adder(uint _a, uint _b) external pure returns (uint sum, bool error) {
unchecked {
uint result = _a + _b;
if (result &gt;= _a &amp;&amp; result &gt;= _b) {
return (result, false);
} else {
return (0, true);
}
}
}

function subtractor(uint _a, uint _b) external pure returns (uint difference, bool error) {
unchecked {
if (_b &lt;= _a) {
return (_a - _b, false);
} else {
return (0, true);
}
}
}
}
"><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-function"><span class="hljs-keyword">function</span> <span class="hljs-title">adder</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">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">uint</span> sum, <span class="hljs-keyword">bool</span> <span class="hljs-keyword">error</span></span>) </span>{
<span class="hljs-keyword">unchecked</span> {
<span class="hljs-keyword">uint</span> result <span class="hljs-operator">=</span> _a <span class="hljs-operator">+</span> _b;
<span class="hljs-keyword">if</span> (result <span class="hljs-operator">></span><span class="hljs-operator">=</span> _a <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> result <span class="hljs-operator">></span><span class="hljs-operator">=</span> _b) {
<span class="hljs-keyword">return</span> (result, <span class="hljs-literal">false</span>);
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> (<span class="hljs-number">0</span>, <span class="hljs-literal">true</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">uint</span> _a, <span class="hljs-keyword">uint</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">uint</span> difference, <span class="hljs-keyword">bool</span> <span class="hljs-keyword">error</span></span>) </span>{
<span class="hljs-keyword">unchecked</span> {
<span class="hljs-keyword">if</span> (_b <span class="hljs-operator">&#x3C;</span><span class="hljs-operator">=</span> _a) {
<span class="hljs-keyword">return</span> (_a <span class="hljs-operator">-</span> _b, <span class="hljs-literal">false</span>);
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> (<span class="hljs-number">0</span>, <span class="hljs-literal">true</span>);
}
}
}
}
</code></pre><p>• Deploy the contract and verify the transaction <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/">here</a></p><p>• Create a new file again and paste this code:</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

contract ControlStructures {
error AfterHours(uint256 time);
error AtLunch();

function fizzBuzz(uint256 _number) public pure returns (string memory response) {
if (_number % 3 == 0 &amp;&amp; _number % 5 == 0) {
return &quot;FizzBuzz&quot;;
} else if (_number % 3 == 0) {
return &quot;Fizz&quot;;
} else if (_number % 5 == 0) {
return &quot;Buzz&quot;;
} else {
return &quot;Splat&quot;;
}
}

function doNotDisturb(uint256 _time) public pure returns (string memory result) {
assert(_time &lt; 2400);

if (_time &gt; 2200 || _time &lt; 800) {
revert AfterHours(_time);
} else if (_time &gt;= 1200 &amp;&amp; _time &lt;= 1299) {
revert(&quot;At lunch!&quot;);
} else if (_time &gt;= 800 &amp;&amp; _time &lt;= 1199) {
return &quot;Morning!&quot;;
} else if (_time &gt;= 1300 &amp;&amp; _time &lt;= 1799) {
return &quot;Afternoon!&quot;;
} else if (_time &gt;= 1800 &amp;&amp; _time &lt;= 2200) {
return &quot;Evening!&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">contract</span> <span class="hljs-title">ControlStructures</span> </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-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-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-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-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-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-string">"Splat"</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-built_in">assert</span>(_time <span class="hljs-operator">&#x3C;</span> <span class="hljs-number">2400</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-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>(<span class="hljs-string">"At lunch!"</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-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-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>;
}
}
}
</code></pre><p>• Deploy the contract and verify the transaction <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/">here</a></p><p>• Do the same with the following codes</p><p>• Code (3):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

contract EmployeeStorage {
uint16 private shares;
uint32 private salary;
uint256 public idNumber;
string public name;

constructor(uint16 _shares, string memory _name, uint32 _salary, uint _idNumber) {
shares = _shares;
name = _name;
salary = _salary;
idNumber = _idNumber;
}

function viewShares() public view returns (uint16) {
return shares;
}

function viewSalary() public view returns (uint32) {
return salary;
}

error TooManyShares(uint16 _shares);
function grantShares(uint16 _newShares) public {
if (_newShares &gt; 5000) {
revert(&quot;Too many shares&quot;);
} else if (shares + _newShares &gt; 5000) {
revert TooManyShares(shares + _newShares);
}
shares += _newShares;
}

/**
* Do not modify this function. It is used to enable the unit test for this pin
* to check whether or not you have configured your storage variables to make
* use of packing.
*
* If you wish to cheat, simply modify this function to always return `0`
* I&apos;m not your boss ¯\_(ツ)_/¯
*
* Fair warning though, if you do cheat, it will be on the blockchain having been
* deployed by you wallet....FOREVER!
*/
function checkForPacking(uint _slot) public view returns (uint r) {
assembly {
r := sload (_slot)
}
}

/**
* Warning: Anyone can use this function at any time!
*/
function debugResetShares() public {
shares = 1000;
}
}
"><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-keyword">uint16</span> <span class="hljs-keyword">private</span> shares;
<span class="hljs-keyword">uint32</span> <span class="hljs-keyword">private</span> salary;
<span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> idNumber;
<span class="hljs-keyword">string</span> <span class="hljs-keyword">public</span> name;

<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;
name <span class="hljs-operator">=</span> _name;
salary <span class="hljs-operator">=</span> _salary;
idNumber <span class="hljs-operator">=</span> _idNumber;
}

<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-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-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-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-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-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);
}
shares <span class="hljs-operator">+</span><span class="hljs-operator">=</span> _newShares;
}

<span class="hljs-comment">/**
* Do not modify this function. It is used to enable the unit test for this pin
* to check whether or not you have configured your storage variables to make
* use of packing.
*
* If you wish to cheat, simply modify this function to always return `0`
* I'm not your boss ¯\_(ツ)_/¯
*
* Fair warning though, if you do cheat, it will be on the blockchain having been
* deployed by you wallet....FOREVER!
*/</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">/**
* Warning: Anyone can use this function at any time!
*/</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>;
}
}
</code></pre><p>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/storage/storage-exercise/">Verify</a></p><p>• Code (4):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

contract ArraysExercise {
uint[] numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
uint[] timestamps;
address[] senders;

uint256 constant Y2K = 946702800;

function getNumbers() external view returns (uint[] memory) {
uint[] memory results = new uintUnsupported embed;

for(uint i=0; i&lt;numbers.length; i++) {
results[i] = numbers[i];
}

return results;
}

function resetNumbers() public {
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}

function appendToNumbers(uint[] calldata _toAppend) public {
uint _counter = _toAppend.length;
for (uint i; i &lt; _counter; i++) {
numbers.push(_toAppend[i]);
}
}

function saveTimestamp(uint _unixTimestamp) public {
timestamps.push(_unixTimestamp);
senders.push(msg.sender);
}

function afterY2K() public view returns (uint256[] memory, address[] memory) {

uint256 counter = 0;

for (uint i = 0; i &lt; timestamps.length; i++) {
if (timestamps[i] &gt; Y2K) {
counter++;
}
}

uint256[] memory timestampsAfterY2K = new uint256Unsupported embed;
address[] memory sendersAfterY2K = new addressUnsupported embed;

uint256 index = 0;

for (uint i = 0; i &lt; timestamps.length; i++) {
if (timestamps[i] &gt; Y2K) {
timestampsAfterY2K[index] = timestamps[i];
sendersAfterY2K[index] = senders[i];
index++;
}
}

return (timestampsAfterY2K, sendersAfterY2K);
}

function resetSenders() public {
delete senders;
}

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-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-keyword">uint</span>[] timestamps;
<span class="hljs-keyword">address</span>[] senders;

<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-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-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-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-keyword">return</span> results;
}

<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-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-keyword">uint</span> _counter <span class="hljs-operator">=</span> _toAppend.<span class="hljs-built_in">length</span>;
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">uint</span> i; i <span class="hljs-operator">&#x3C;</span> _counter; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
numbers.<span class="hljs-built_in">push</span>(_toAppend[i]);
}
}

<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>{
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-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-keyword">uint256</span> counter <span class="hljs-operator">=</span> <span class="hljs-number">0</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-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-keyword">uint256</span> index <span class="hljs-operator">=</span> <span class="hljs-number">0</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-keyword">return</span> (timestampsAfterY2K, sendersAfterY2K);
}

<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-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><p>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/arrays/arrays-exercise/">Verify</a></p><p>• Code (5):</p><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(string =&gt; bool) private approvedRecords;
string[] private approvedRecordsIndex;

mapping(address =&gt; mapping(string =&gt; bool)) public userFavorites;
mapping(address =&gt; string[]) private userFavoritesIndex;

error NotApproved(string albumName);

/**
* @dev Constructor that initializes the approved records list
*/
constructor() {
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;];
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 {
if (!approvedRecords[_albumName]) {
revert NotApproved({albumName: _albumName});
}
if (!userFavorites[msg.sender][_albumName]) {
userFavorites[msg.sender][_albumName] = true;
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 {
for (uint i = 0; i &lt; userFavoritesIndex[msg.sender].length; i++) {
delete userFavorites[msg.sender][userFavoritesIndex[msg.sender][i]];
}
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-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-keyword">string</span>[] <span class="hljs-keyword">private</span> approvedRecordsIndex;

<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-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-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>{
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-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-keyword">if</span> (<span class="hljs-operator">!</span>approvedRecords[_albumName]) {
<span class="hljs-keyword">revert</span> NotApproved({albumName: _albumName});
}
<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]) {
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>;
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-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-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-keyword">delete</span> userFavoritesIndex[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>];
}
}
</code></pre><p>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/mappings/mappings-exercise/">Verify</a></p><p>• Code (6):</p><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(address =&gt; Car[]) private garages;

struct Car {
string make;
string model;
string color;
uint numberOfDoors;
}

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 {
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 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 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 {
if (_index &gt;= garages[msg.sender].length) {
revert BadCarIndex({index: _index});
}
garages[msg.sender][_index] = Car(_make, _model, _color, _numberOfDoors);
}

/**
* @dev Deletes all cars in the caller&apos;s garage
*/
function resetMyGarage() external {
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-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-keyword">struct</span> <span class="hljs-title">Car</span> {
<span class="hljs-keyword">string</span> make;
<span class="hljs-keyword">string</span> model;
<span class="hljs-keyword">string</span> color;
<span class="hljs-keyword">uint</span> numberOfDoors;
}

<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>{
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-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-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-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});
}
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-keyword">delete</span> garages[<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>];
}
}
</code></pre><p>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/structs/structs-exercise/">Verify</a></p><p>• Code (7):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;


abstract contract Employee
{
uint public idNumber;
uint public managerId;

constructor(uint _idNumber, uint _managerId)
{
idNumber = _idNumber;
managerId = _managerId;
}

function getAnnualCost() public virtual returns (uint);
}

contract Salaried is Employee
{
uint public annualSalary;

constructor(uint _idNumber, uint _managerId, uint _annualSalary)
Employee(_idNumber, _managerId)
{
annualSalary = _annualSalary;
}

function getAnnualCost() public override view returns (uint)
{
return annualSalary;
}
}

contract Hourly is Employee
{
uint public hourlyRate;

constructor(uint _idNumber, uint _managerId, uint _hourlyRate) Employee(_idNumber, _managerId)
{
hourlyRate = _hourlyRate;
}

function getAnnualCost() public override view returns (uint)
{
return hourlyRate * 2080;
}
}

contract Manager
{
uint[] public employeeIds;

function addReport(uint _reportId) public
{
employeeIds.push(_reportId);
}

function resetReports() public
{
delete employeeIds;
}
}

contract Salesperson is Hourly
{
constructor(uint _idNumber, uint _managerId, uint _hourlyRate)
Hourly(_idNumber, _managerId, _hourlyRate) {}
}


contract EngineeringManager is Salaried, Manager
{
constructor(uint _idNumber, uint _managerId, uint _annualSalary)
Salaried(_idNumber, _managerId, _annualSalary) {}
}

contract InheritanceSubmission {
address public salesPerson;
address public engineeringManager;

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-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-keyword">uint</span> <span class="hljs-keyword">public</span> managerId;

<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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-keyword">address</span> <span class="hljs-keyword">public</span> engineeringManager;

<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><p>• On the “Deploy” tab select the same as in the first screenshot</p><p>• Click “Transact” and save the contract address</p><p>• Now do the same as indicated in the second screenshot</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b97e6759a9a578d7fc6de952b09fedfb19aa49ea91e7dfa3215ecbeceafe260.png" alt="" 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>• Press “Transact” again and save the contract address</p><p>• Change the contract again and enter the addresses you copied earlier and press “Transact”</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/291e9527bcd2b1e5d9b16b33323a0fa1c357398295f82521ee7910c84aebd755.png" alt="" 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>• Paste the contract address and confirm the transaction <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/inheritance/inheritance-exercise/">here</a></p><p>• Next, you need to create two new files: Imports and SillyStringUtils</p><p>• Paste a code (8):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

contract ErrorTriageExercise {
/**
* Finds the difference between each uint with it&apos;s neighbor (a to b, b to c, etc.)
* and returns a uint array with the absolute integer difference of each pairing.
*/
function diffWithNeighbor(
uint _a,
uint _b,
uint _c,
uint _d
) public pure returns (uint[] memory) {
uint[] memory results = new uintUnsupported embed;

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 results;
}

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

/**
* Pop the last element from the supplied array, and return the popped
* value (unlike the built-in function)
*/
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">/**
* Finds the difference between each uint with it's neighbor (a to b, b to c, etc.)
* and returns a uint array with the absolute integer difference of each pairing.
*/</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-keyword">uint</span>[] <span class="hljs-keyword">memory</span> results <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> uintUnsupported embed;

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-keyword">return</span> results;
}

<span class="hljs-comment">/**
* Changes the _base by the value of _modifier. Base is always >= 1000. Modifiers can be
* between positive and negative 100;
*/</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-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-comment">/**
* Pop the last element from the supplied array, and return the popped
* value (unlike the built-in function)
*/</span>
<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><p>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/base-camp/docs/imports/imports-exercise/">Verify</a></p><p>• Code (9):</p><pre data-type="codeBlock" text="AddressBook.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

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

contract AddressBook is Ownable(msg.sender) {
string private salt = &quot;value&quot;;
struct Contact {
uint id;
string firstName;
string lastName;
uint[] phoneNumbers;
}

Contact[] private contacts;
mapping(uint =&gt; uint) private idToIndex;
uint private nextId = 1;

error ContactNotFound(uint id);

function addContact(string calldata firstName, string calldata lastName, uint[] calldata phoneNumbers) external onlyOwner {
contacts.push(Contact(nextId, firstName, lastName, phoneNumbers));
idToIndex[nextId] = contacts.length - 1;
nextId++;
}

function deleteContact(uint id) external onlyOwner {
uint index = idToIndex[id];
if (index &gt;= contacts.length || contacts[index].id != id) revert ContactNotFound(id);

contacts[index] = contacts[contacts.length - 1];
idToIndex[contacts[index].id] = index;
contacts.pop();
delete idToIndex[id];
}

function getContact(uint id) external view returns (Contact memory) {
uint index = idToIndex[id];
if (index &gt;= contacts.length || contacts[index].id != id) revert ContactNotFound(id);
return contacts[index];
}

function getAllContacts() external view returns (Contact[] memory) {
return contacts;
}
}


Other contract:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

import &quot;./AddressBook.sol&quot;;

contract AddressBookFactory {
string private salt = &quot;value&quot;;
function deploy() external returns (AddressBook) {
AddressBook newAddressBook = new AddressBook();
newAddressBook.transferOwnership(msg.sender);
return newAddressBook;
}
}
"><code>AddressBook.sol

<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-keyword">string</span> <span class="hljs-keyword">private</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"value"</span>;
<span class="hljs-keyword">struct</span> <span class="hljs-title">Contact</span> {
<span class="hljs-keyword">uint</span> id;
<span class="hljs-keyword">string</span> firstName;
<span class="hljs-keyword">string</span> lastName;
<span class="hljs-keyword">uint</span>[] phoneNumbers;
}

Contact[] <span class="hljs-keyword">private</span> contacts;
<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-keyword">uint</span> <span class="hljs-keyword">private</span> nextId <span class="hljs-operator">=</span> <span class="hljs-number">1</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-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>{
contacts.<span class="hljs-built_in">push</span>(Contact(nextId, firstName, lastName, phoneNumbers));
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>;
nextId<span class="hljs-operator">+</span><span class="hljs-operator">+</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-keyword">uint</span> index <span class="hljs-operator">=</span> idToIndex[id];
<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);

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>];
idToIndex[contacts[index].id] <span class="hljs-operator">=</span> index;
contacts.<span class="hljs-built_in">pop</span>();
<span class="hljs-keyword">delete</span> idToIndex[id];
}

<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-keyword">uint</span> index <span class="hljs-operator">=</span> idToIndex[id];
<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-keyword">return</span> contacts[index];
}

<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-keyword">return</span> contacts;
}
}


Other <span class="hljs-class"><span class="hljs-keyword">contract</span>:

<span class="hljs-comment">// SPDX-License-Identifier: MIT</span>
<span class="hljs-title"><span class="hljs-keyword">pragma</span></span> <span class="hljs-title">solidity</span> ^0.8.8;

<span class="hljs-title"><span class="hljs-keyword">import</span></span> "./<span class="hljs-title">AddressBook</span>.<span class="hljs-title">sol</span>";

<span class="hljs-title"><span class="hljs-keyword">contract</span></span> <span class="hljs-title">AddressBookFactory</span> </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-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>{
AddressBook newAddressBook <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> AddressBook();
newAddressBook.transferOwnership(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>);
<span class="hljs-keyword">return</span> newAddressBook;
}
}
</code></pre><p>• Code (9.1):</p><p>• Create another file and paste the second part of the code</p><p>• In the 4th field, enter the name of the file that you created before</p><p>• Copy and deploy the last file</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

import &quot;./9.sol&quot;;

contract AddressBookFactory {
string private salt = &quot;value&quot;;
function deploy() external returns (AddressBook) {
AddressBook newAddressBook = new AddressBook();
newAddressBook.transferOwnership(msg.sender);
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-keyword">import</span> <span class="hljs-string">"./9.sol"</span>;

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">AddressBookFactory</span> </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-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>{
AddressBook newAddressBook <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> AddressBook();
newAddressBook.transferOwnership(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>);
<span class="hljs-keyword">return</span> newAddressBook;
}
}
</code></pre><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/">Verify</a></p><p>• Code (10):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract UnburnableToken {
string private salt = &quot;value&quot;;
mapping(address =&gt; uint256) public balances;
uint256 public totalSupply;
uint256 public totalClaimed;
mapping(address =&gt; bool) private claimed;

// Custom errors
error TokensClaimed();
error AllTokensClaimed();
error UnsafeTransfer(address _to);

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

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

// 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-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">"value"</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-keyword">uint256</span> <span class="hljs-keyword">public</span> totalClaimed;
<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">// 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-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AllTokensClaimed</span>(<span class="hljs-params"></span>)</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-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-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 all tokens have been claimed</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">// Check if the caller has already claimed tokens</span>

<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><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/">Verify</a></p><p>• Code (11):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.17;

import &quot;@openzeppelin/contracts/token/ERC20/ERC20.sol&quot;;
import &quot;@openzeppelin/contracts/utils/structs/EnumerableSet.sol&quot;;

contract WeightedVoting is ERC20 {
string private salt = &quot;value&quot;;
using EnumerableSet for EnumerableSet.AddressSet;

error TokensClaimed();
error AllTokensClaimed();
error NoTokensHeld();
error QuorumTooHigh();
error AlreadyVoted();
error VotingClosed();

struct Issue {
EnumerableSet.AddressSet voters;
string issueDesc;
uint256 quorum;
uint256 totalVotes;
uint256 votesFor;
uint256 votesAgainst;
uint256 votesAbstain;
bool passed;
bool closed;
}
struct SerializedIssue {
address[] voters;
string issueDesc;
uint256 quorum;
uint256 totalVotes;
uint256 votesFor;
uint256 votesAgainst;
uint256 votesAbstain;
bool passed;
bool closed;
}

enum Vote {
AGAINST,
FOR,
ABSTAIN
}
Issue[] internal issues;
mapping(address =&gt; bool) public tokensClaimed;
uint256 public maxSupply = 1000000;
uint256 public claimAmount = 100;
string saltt = &quot;any&quot;;

constructor(string memory _name, string memory _symbol)
ERC20(_name, _symbol)
{
issues.push();
}


function claim() public {
if (totalSupply() + claimAmount &gt; maxSupply) {
revert AllTokensClaimed();
}
if (tokensClaimed[msg.sender]) {
revert TokensClaimed();
}
_mint(msg.sender, claimAmount);
tokensClaimed[msg.sender] = true;
}


function createIssue(string calldata _issueDesc, uint256 _quorum)
external
returns (uint256)
{
if (balanceOf(msg.sender) == 0) {
revert NoTokensHeld();
}
if (_quorum &gt; totalSupply()) {
revert QuorumTooHigh();
}
Issue storage _issue = issues.push();
_issue.issueDesc = _issueDesc;
_issue.quorum = _quorum;
return issues.length - 1;
}


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 vote(uint256 _issueId, Vote _vote) public {
Issue storage _issue = issues[_issueId];

if (_issue.closed) {
revert VotingClosed();
}
if (_issue.voters.contains(msg.sender)) {
revert AlreadyVoted();
}

uint256 nTokens = balanceOf(msg.sender);
if (nTokens == 0) {
revert NoTokensHeld();
}

if (_vote == Vote.AGAINST) {
_issue.votesAgainst += nTokens;
} else if (_vote == Vote.FOR) {
_issue.votesFor += nTokens;
} else {
_issue.votesAbstain += nTokens;
}

_issue.voters.add(msg.sender);
_issue.totalVotes += nTokens;

if (_issue.totalVotes &gt;= _issue.quorum) {
_issue.closed = true;
if (_issue.votesFor &gt; _issue.votesAgainst) {
_issue.passed = true;
}
}
}
}
"><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-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-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">"value"</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-function"><span class="hljs-keyword">error</span> <span class="hljs-title">TokensClaimed</span>(<span class="hljs-params"></span>)</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-function"><span class="hljs-keyword">error</span> <span class="hljs-title">NoTokensHeld</span>(<span class="hljs-params"></span>)</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-function"><span class="hljs-keyword">error</span> <span class="hljs-title">AlreadyVoted</span>(<span class="hljs-params"></span>)</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-keyword">struct</span> <span class="hljs-title">Issue</span> {
EnumerableSet.AddressSet voters;
<span class="hljs-keyword">string</span> issueDesc;
<span class="hljs-keyword">uint256</span> quorum;
<span class="hljs-keyword">uint256</span> totalVotes;
<span class="hljs-keyword">uint256</span> votesFor;
<span class="hljs-keyword">uint256</span> votesAgainst;
<span class="hljs-keyword">uint256</span> votesAbstain;
<span class="hljs-keyword">bool</span> passed;
<span class="hljs-keyword">bool</span> closed;
}
<span class="hljs-keyword">struct</span> <span class="hljs-title">SerializedIssue</span> {
<span class="hljs-keyword">address</span>[] voters;
<span class="hljs-keyword">string</span> issueDesc;
<span class="hljs-keyword">uint256</span> quorum;
<span class="hljs-keyword">uint256</span> totalVotes;
<span class="hljs-keyword">uint256</span> votesFor;
<span class="hljs-keyword">uint256</span> votesAgainst;
<span class="hljs-keyword">uint256</span> votesAbstain;
<span class="hljs-keyword">bool</span> passed;
<span class="hljs-keyword">bool</span> closed;
}

<span class="hljs-keyword">enum</span> <span class="hljs-title">Vote</span> {
AGAINST,
FOR,
ABSTAIN
}
Issue[] <span class="hljs-keyword">internal</span> issues;
<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-keyword">uint256</span> <span class="hljs-keyword">public</span> claimAmount <span class="hljs-operator">=</span> <span class="hljs-number">100</span>;
<span class="hljs-keyword">string</span> saltt <span class="hljs-operator">=</span> <span class="hljs-string">"any"</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-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-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-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();
}
_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-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-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-keyword">if</span> (_quorum <span class="hljs-operator">></span> totalSupply()) {
<span class="hljs-keyword">revert</span> QuorumTooHigh();
}
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-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-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-keyword">if</span> (_issue.closed) {
<span class="hljs-keyword">revert</span> VotingClosed();
}
<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-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-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;
}

_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-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>;
}
}
}
}
</code></pre><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/">Verify</a></p><p>• Code (12):</p><pre data-type="codeBlock" text="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import &quot;https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol&quot;;

interface ISubmission {
struct Haiku {
address author;
string line1;
string line2;
string line3;
}

function mintHaiku(
string memory _line1,
string memory _line2,
string memory _line3
) external;

// function ownerOf(uint256 _id) external view returns (address);

function counter() external view returns (uint256);

function shareHaiku(uint256 _id, address _to) external;

function getMySharedHaikus() external view returns (Haiku[] memory);
}

contract HaikuNFT is ERC721, ISubmission {
Haiku[] public haikus;
mapping(address =&gt; mapping(uint256 =&gt; bool)) public sharedHaikus;
uint256 public haikuCounter;

constructor() ERC721(&quot;HaikuNFT&quot;, &quot;HAIKU&quot;) {
haikuCounter = 1;
}

string salt = &quot;value&quot;;

function counter() external view override returns (uint256) {
return haikuCounter;
}

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];
// string memory newHaikuString = string(
// abi.encodePacked(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 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 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;
}

error HaikuNotUnique();
error NotYourHaiku();
error NoHaikusShared();
}
"><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-keyword">import</span> <span class="hljs-string">"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol"</span>;

<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">ISubmission</span> </span>{
<span class="hljs-keyword">struct</span> <span class="hljs-title">Haiku</span> {
<span class="hljs-keyword">address</span> author;
<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">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 ownerOf(uint256 _id) external view returns (address);</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-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-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-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-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-keyword">uint256</span> <span class="hljs-keyword">public</span> haikuCounter;

<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-keyword">string</span> salt <span class="hljs-operator">=</span> <span class="hljs-string">"value"</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-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-comment">// string memory newHaikuString = string(</span>
<span class="hljs-comment">// abi.encodePacked(haikusStrings[li])</span>
<span class="hljs-comment">// );</span>
<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-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-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-function"><span class="hljs-keyword">error</span> <span class="hljs-title">HaikuNotUnique</span>(<span class="hljs-params"></span>)</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-function"><span class="hljs-keyword">error</span> <span class="hljs-title">NoHaikusShared</span>(<span class="hljs-params"></span>)</span>;
}
</code></pre><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/">Verify</a></p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/ba0eefc0093412c60fc915017bc0ca1bca19668315907d5cadc195b542ae2098.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Eclipse: how to deploy the contract]]></title>
            <link>https://paragraph.com/@atoms-research/eclipse-how-to-deploy-the-contract</link>
            <guid>1XZOd0SbDitV1i7hrTbe</guid>
            <pubDate>Mon, 15 Jul 2024 06:08:58 GMT</pubDate>
            <description><![CDATA[Eclipse is a versatile rollup provider offering customizable solutions compatible with various layer-1 blockchains Raised: $65M from Polychain, Polygon, Celestia and othersWhat to do:• Go to GitHub (create an account beforehand if you don&apos;t have one) • Next, go to "Codespace" • Click on "Blank template"• Paste this code into the terminalwget https://raw.githubusercontent.com/dxzenith/eclipse-testnet/main/eclipse.sh &#x26;&#x26; chmod +x eclipse.sh &#x26;&#x26; ./eclipse.sh • Wait until e...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/EclipseFND"><strong>Eclipse</strong></a> is a versatile rollup provider offering customizable solutions compatible with various layer-1 blockchains</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/price/eclipse-fnd"><strong>Raised</strong></a>: $65M from Polychain, Polygon, Celestia and others</p><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Go to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/dxzenith/eclipse-testnet?tab=readme-ov-file">GitHub</a> (create an account beforehand if you don&apos;t have one)</p><p>• Next, go to &quot;Codespace&quot;</p><p>• Click on &quot;Blank template&quot;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/03436df4218fd7b536c9dc15a972da0abf6029d430460a8ae7808a5cdba0a850.png" alt="" 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>• Paste this code into the terminal</p><pre data-type="codeBlock" text="wget https://raw.githubusercontent.com/dxzenith/eclipse-testnet/main/eclipse.sh &amp;&amp; chmod +x eclipse.sh &amp;&amp; ./eclipse.sh
"><code>wget https://raw.githubusercontent.com/dxzenith/eclipse-testnet/main/eclipse.sh &#x26;&#x26; <span class="hljs-built_in">chmod</span> +x eclipse.sh &#x26;&#x26; ./eclipse.sh
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6767c4d852ad11c2967f0bb69e698c7b923e0dcff452829b90351d7b591babbf.png" alt="" 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>• Wait until everything is installed and then follow the steps that will be described in the terminal</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/35e3bc56ea89f799edc81099575290d1a4b942a59f7ce7beb95e7d9839d52943.png" alt="" 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>• Next, where there is a step with a wallet, also follow all the instructions</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/246bc3280b3e33a985359ef273e6853c90195074ddfed3715cb89acd9b4af0fa.png" alt="" 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>• After all the steps, you will get the Program Address</p><p>• Paste this address into this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSfJQCFBKHpiy2HVw9lTjCj7k0BqNKnP6G1cd0YdKhaPLWD-AA/viewform?pli=1">form</a></p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/f14b6d16417950133062b62d5a2ed4897710d969b634a74d2cc4ea951f9117e4.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Incentivized testnet by Nubit]]></title>
            <link>https://paragraph.com/@atoms-research/incentivized-testnet-by-nubit</link>
            <guid>FogAbfouJtj9o7rP54b8</guid>
            <pubDate>Thu, 04 Jul 2024 15:16:30 GMT</pubDate>
            <description><![CDATA[Nubit is a Bitcoin-native data availability layer designed to revolutionize transaction processing on the Bitcoin network 💲 Raised: $12M from Polychain Capital, The Spartan Group, OKX Ventures, NGC Ventures and othersThe project has recently launched an incentivized testnet Nubit | Bitcoin Thunderbolt @nubit_org Nubit Alpha Testnet Incentivized Campaign is live! Phase 1: Community Assemble starts today. We're thrilled to kick off this journey and invite you to join us. 909 9:14 AM • Jun 8, 2...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/nubit_org"><strong>Nubit</strong></a> is a Bitcoin-native data availability layer designed to revolutionize transaction processing on the Bitcoin network</p><p>💲 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/nubit"><strong>Raised</strong></a>: $12M from Polychain Capital, The Spartan Group, OKX Ventures, NGC Ventures and others</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/693ad73c5258eb1118ab6576ab17fee9459d070f14b04aa82352dc08d4d4c11a.png" alt="" 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>The project has recently launched an incentivized testnet</p><div data-type="twitter" tweetId="1799444984032289108" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:909,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-06-08T14:14:50.000Z&quot;,&quot;display_text_range&quot;:[0,161],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/KssFs03BXe&quot;,&quot;expanded_url&quot;:&quot;https://x.com/nubit_org/status/1799444984032289108/photo/1&quot;,&quot;indices&quot;:[162,185],&quot;url&quot;:&quot;https://t.co/KssFs03BXe&quot;}]},&quot;id_str&quot;:&quot;1799444984032289108&quot;,&quot;text&quot;:&quot;Nubit Alpha Testnet Incentivized Campaign is live!\n\nPhase 1: Community Assemble starts today.\n\nWe&apos;re thrilled to kick off this journey and invite you to join us. https://t.co/KssFs03BXe&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1741557908226359296&quot;,&quot;name&quot;:&quot;Nubit | Bitcoin Thunderbolt&quot;,&quot;screen_name&quot;:&quot;nubit_org&quot;,&quot;is_blue_verified&quot;:false,&quot;profile_image_shape&quot;:&quot;Square&quot;,&quot;verified&quot;:false,&quot;verified_type&quot;:&quot;Business&quot;,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/1be3fd0448411f1ad3fab5affc9e083008a0bb2b31bcade1ffa553f35cb75acc.jpg&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1799444984032289108&quot;],&quot;editable_until_msecs&quot;:&quot;1717859690000&quot;,&quot;is_edit_eligible&quot;:false,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/KssFs03BXe&quot;,&quot;expanded_url&quot;:&quot;https://x.com/nubit_org/status/1799444984032289108/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[162,185],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/GPjoa8EaMAE-_fE.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1920,&quot;h&quot;:1075},{&quot;x&quot;:468,&quot;y&quot;:0,&quot;w&quot;:1080,&quot;h&quot;:1080},{&quot;x&quot;:535,&quot;y&quot;:0,&quot;w&quot;:947,&quot;h&quot;:1080},{&quot;x&quot;:738,&quot;y&quot;:0,&quot;w&quot;:540,&quot;h&quot;:1080},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1920,&quot;h&quot;:1080}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1080,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1920},&quot;medium&quot;:{&quot;h&quot;:675,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:383,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/KssFs03BXe&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1920,&quot;h&quot;:1075},{&quot;x&quot;:468,&quot;y&quot;:0,&quot;w&quot;:1080,&quot;h&quot;:1080},{&quot;x&quot;:535,&quot;y&quot;:0,&quot;w&quot;:947,&quot;h&quot;:1080},{&quot;x&quot;:738,&quot;y&quot;:0,&quot;w&quot;:540,&quot;h&quot;:1080},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1920,&quot;h&quot;:1080}],&quot;expandedUrl&quot;:&quot;https://x.com/nubit_org/status/1799444984032289108/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/758763315902aa6ac22743ecbe0d457086a692764e1eb33d5cf19e03bb4f1b71.jpg&quot;,&quot;width&quot;:1920,&quot;height&quot;:1080}],&quot;conversation_count&quot;:59,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false,&quot;note_tweet&quot;:{&quot;id&quot;:&quot;Tm90ZVR3ZWV0UmVzdWx0czoxNzk5NDQ0OTgzOTUyNjg3MTA0&quot;}}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/nubit_org">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/1be3fd0448411f1ad3fab5affc9e083008a0bb2b31bcade1ffa553f35cb75acc.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/nubit_org" class="twitter-displayname">Nubit | Bitcoin Thunderbolt</a>
              <p><a target="_blank" href="https://twitter.com/nubit_org" class="twitter-username">@nubit_org</a></p>
    
            </div>
            <a href="https://twitter.com/nubit_org/status/1799444984032289108" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      Nubit Alpha Testnet Incentivized Campaign is live!<br /><br />Phase 1: Community Assemble starts today.<br /><br />We're thrilled to kick off this journey and invite you to join us. 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/758763315902aa6ac22743ecbe0d457086a692764e1eb33d5cf19e03bb4f1b71.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/nubit_org/status/1799444984032289108" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            909
          </a>
          <a target="_blank" href="https://twitter.com/nubit_org/status/1799444984032289108"><p>9:14 AM • Jun 8, 2024</p></a>
        </div>
    
  </div> 
  </div><p><strong>Nubit&apos;s incentivized testnet is divided into 3 phases:</strong></p><p>Phase 1: Community Assemble</p><p>Phase 2: Light Node Quest</p><p>Phase 3: Testnet Adventure</p><h3 id="h-how-to-participate-in-the-testnet" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to participate in the testnet:</h3><p>• Go to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chains.keplr.app">website</a> and add the Nubit network to your <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://keplr.app/download">Keplr</a> wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fe837f2434d30d470c4bd3a238bcfdab4e871e38dea369e736a5b59ea0e505af.png" alt="" 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>• Open the menu in Keplr, then click &quot;Manage Chain Visibility&quot; and add the Nubit network</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e53a2f57445395411cdde5fe786294d4acd37ce32eaaf5a2df24d3e76d04cd5e.png" alt="" 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>• Copy your Nubit address</p><p>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.nubit.org">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d57cec2a3244ce2a2ac56d26c6bcda78b974c0d8a9b43a876678e731010935ed.png" alt="" 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>• Connect your wallet and socials to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://alpha.nubit.org">website</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fe347668740b1a656d109bbaff25bf3d7133a40cfdd3ce7bc3022949957d63e1.png" alt="" 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>• Send test tokens to any address</p><p>• Make several of these transactions</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/26eaf2d15348ee10f5f8d910d8f232a12fb837be706c3687d6c1f7adbb6795e3.png" alt="" 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>• Complete the tasks on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Nubit">Galxe</a></p><h3 id="h-how-to-run-a-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to run a node:</h3><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6a719a7ec52b5d5a7b675c241623dfa6e0f33df928834b22a9fd9a3a59ae1582.png" alt="" 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>• Install <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mobaxterm.mobatek.net/">MobaXterm</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b60a25148eee9b3be7b19beffd904a0b939b2841061c7b97e710ed7e041b0ff0.png" alt="" 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>• Rent a server on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://my.contabo.com/vps/0#">Contabo</a></p><p>• Save your account credentials and VPS details (IP and password)</p><p>• Connect to the leased server via root</p><p>• Execute the commands in the list</p><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><p>• Update and install the necessary packages</p><p>• Enter &quot;Y&quot; if requested</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/33db8cea140685dbe7b5df5d9f44056071ea8d8a5e47296ed61f1d15ab532b61.png" alt="" 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>• Then press &quot;Enter&quot;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/113c8a9354ed6c72bc177b7655582053900f2827b60eabcaf43a8060f1c180d9.png" alt="" 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>• Create screen</p><pre data-type="codeBlock" text="screen -S nubit
"><code>screen <span class="hljs-operator">-</span>S nubit
</code></pre><p>• Run light node:</p><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><p>• Switch to copying more:</p><pre data-type="codeBlock" text="Control+A+[
"><code>Control<span class="hljs-operator">+</span>A<span class="hljs-operator">+</span>[
</code></pre><p>• The result will look like below. Save your mnemonic, public key, and auth key:</p><pre data-type="codeBlock" text="NAME: my_nubit_key ADDRESS: nubitxxxxxxxxxx
MNEMONIC: xxxxxxxxxx
PUBKEY xxxxxxxxx 
AUTH KEY xxxxxxxxxx
"><code><span class="hljs-symbol">NAME:</span> my_nubit_key ADDRESS: nubitxxxxxxxxxx
<span class="hljs-symbol">MNEMONIC:</span> xxxxxxxxxx
PUBKEY xxxxxxxxx 
AUTH <span class="hljs-keyword">KEY</span> xxxxxxxxxx
</code></pre><p><br>• Press Q to exit copying more. Press Control+A and then press D to exit the screen</p><p>• You can also reveal and save your Mnemonic (24 Words) by entering the following:</p><pre data-type="codeBlock" text="sudo cat $HOME/nubit-node/mnemonic.txt
"><code>sudo cat $HOME<span class="hljs-operator">/</span>nubit<span class="hljs-operator">-</span>node<span class="hljs-operator">/</span>mnemonic.txt
</code></pre><p>• After 15 minutes, verify your Nubit light node pubkey <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://alpha.nubit.org/">here</a></p><p>• Replace the automatic seed (optional)</p><p>• Install nano</p><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><p>• Open notepad</p><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><p>• Replace seed</p><p>• Press CNTR+X, Y then Enter</p><p>• Check to see if the seed has been replaced</p><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/80f8a7c5c2cdd4e147c5de6544abda32e2c49702e9abeab8a0c4c42ef7c14998.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/372d48b918cc8dd7a24617f3dd22d124889e7fd7ce277308e730318a72db3a7c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Union]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-union</link>
            <guid>NTS8ts5DuspEqpHT6d5Q</guid>
            <pubDate>Fri, 28 Jun 2024 15:53:58 GMT</pubDate>
            <description><![CDATA[Union network is a hyper-efficient zero-knowledge infrastructure layer for general message passing, asset transfers, NFTs, and DeFi Raised: $4MA few days ago, the project launched a testnet Union @union_build A new era of ZK-powered interop is here. Union Public Testnet is LIVE: app.union.build ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% 25.3K 1:48 PM • Jun 26, 2024 How to interact:• Go to the website and connect your wallet • Request test tokens from the faucet• Transfer test tokens from Union to Sepolia• Com...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/union_build"><strong>Union</strong></a> network is a hyper-efficient zero-knowledge infrastructure layer for general message passing, asset transfers, NFTs, and DeFi</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/union-labs#funding-rounds">Raised</a>: $4M</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/661efede32a03c1cc923fb4e9edee93743d36d61491cbefbb714a6158b57725f.png" alt="" 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>A few days ago, the project launched a testnet</p><div data-type="twitter" tweetId="1806036915000611254" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:25313,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-06-26T18:48:49.000Z&quot;,&quot;display_text_range&quot;:[0,126],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[{&quot;display_url&quot;:&quot;app.union.build&quot;,&quot;expanded_url&quot;:&quot;http://app.union.build&quot;,&quot;indices&quot;:[72,95],&quot;url&quot;:&quot;https://t.co/FoRLvUjzDj&quot;}],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/EkqnQsYiwG&quot;,&quot;expanded_url&quot;:&quot;https://x.com/union_build/status/1806036915000611254/video/1&quot;,&quot;indices&quot;:[126,149],&quot;url&quot;:&quot;https://t.co/EkqnQsYiwG&quot;}]},&quot;id_str&quot;:&quot;1806036915000611254&quot;,&quot;text&quot;:&quot;A new era of ZK-powered interop is here.\n\nUnion Public Testnet is LIVE: https://t.co/FoRLvUjzDj\n\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%\n\n🧵 https://t.co/EkqnQsYiwG&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1687201209306824704&quot;,&quot;name&quot;:&quot;Union&quot;,&quot;screen_name&quot;:&quot;union_build&quot;,&quot;is_blue_verified&quot;:false,&quot;profile_image_shape&quot;:&quot;Square&quot;,&quot;verified&quot;:false,&quot;verified_type&quot;:&quot;Business&quot;,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/1fe58a2d940f2f713ee96cf791ed6b80661287e61892f35b847c0106df870f5f.png&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1806036915000611254&quot;],&quot;editable_until_msecs&quot;:&quot;1719431329000&quot;,&quot;is_edit_eligible&quot;:false,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;additional_media_info&quot;:{},&quot;display_url&quot;:&quot;pic.x.com/EkqnQsYiwG&quot;,&quot;expanded_url&quot;:&quot;https://x.com/union_build/status/1806036915000611254/video/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[126,149],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/ext_tw_video_thumb/1806036853273108480/pu/img/dybM57At9XFZjkGQ.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;focus_rects&quot;:[]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1080,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1920},&quot;medium&quot;:{&quot;h&quot;:675,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:383,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;video&quot;,&quot;url&quot;:&quot;https://t.co/EkqnQsYiwG&quot;,&quot;video_info&quot;:{&quot;aspect_ratio&quot;:[16,9],&quot;duration_millis&quot;:17000,&quot;variants&quot;:[{&quot;content_type&quot;:&quot;application/x-mpegURL&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/pl/vLWM-GikVgaCjFfX.m3u8?tag=12&amp;v=cfc&quot;},{&quot;bitrate&quot;:256000,&quot;content_type&quot;:&quot;video/mp4&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/vid/avc1/480x270/whaiyDA7jbDIPgd4.mp4?tag=12&quot;},{&quot;bitrate&quot;:832000,&quot;content_type&quot;:&quot;video/mp4&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/vid/avc1/640x360/-QgLsycPe7RBYVlH.mp4?tag=12&quot;},{&quot;bitrate&quot;:2176000,&quot;content_type&quot;:&quot;video/mp4&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/vid/avc1/1280x720/LSXP1CaT-MyTF6QZ.mp4?tag=12&quot;}]}}],&quot;photos&quot;:[],&quot;video&quot;:{&quot;aspectRatio&quot;:[16,9],&quot;contentType&quot;:&quot;media_entity&quot;,&quot;durationMs&quot;:17000,&quot;mediaAvailability&quot;:{&quot;status&quot;:&quot;available&quot;},&quot;poster&quot;:&quot;https://pbs.twimg.com/ext_tw_video_thumb/1806036853273108480/pu/img/dybM57At9XFZjkGQ.jpg&quot;,&quot;variants&quot;:[{&quot;type&quot;:&quot;application/x-mpegURL&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/pl/vLWM-GikVgaCjFfX.m3u8?tag=12&amp;v=cfc&quot;},{&quot;type&quot;:&quot;video/mp4&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/vid/avc1/480x270/whaiyDA7jbDIPgd4.mp4?tag=12&quot;},{&quot;type&quot;:&quot;video/mp4&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/vid/avc1/640x360/-QgLsycPe7RBYVlH.mp4?tag=12&quot;},{&quot;type&quot;:&quot;video/mp4&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1806036853273108480/pu/vid/avc1/1280x720/LSXP1CaT-MyTF6QZ.mp4?tag=12&quot;}],&quot;videoId&quot;:{&quot;type&quot;:&quot;tweet&quot;,&quot;id&quot;:&quot;1806036915000611254&quot;},&quot;viewCount&quot;:0},&quot;conversation_count&quot;:348,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/union_build">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/1fe58a2d940f2f713ee96cf791ed6b80661287e61892f35b847c0106df870f5f.png" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/union_build" class="twitter-displayname">Union</a>
              <p><a target="_blank" href="https://twitter.com/union_build" class="twitter-username">@union_build</a></p>
    
            </div>
            <a href="https://twitter.com/union_build/status/1806036915000611254" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      A new era of ZK-powered interop is here.<br /><br />Union Public Testnet is LIVE: <a class="twitter-content-link" href="https://t.co/FoRLvUjzDj" target="_blank">app.union.build</a><br /><br />▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%<br /><br /><img class="twitter-emoji" draggable="false" alt="🧵" src="https://abs-0.twimg.com/emoji/v2/72x72/1f9f5.png"/> 
      <div class="twitter-media">
      <img class="twitter-image" src="https://pbs.twimg.com/ext_tw_video_thumb/1806036853273108480/pu/img/dybM57At9XFZjkGQ.jpg"> 
    </div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/union_build/status/1806036915000611254" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            25.3K
          </a>
          <a target="_blank" href="https://twitter.com/union_build/status/1806036915000611254"><p>1:48 PM • Jun 26, 2024</p></a>
        </div>
    
  </div> 
  </div><h3 id="h-how-to-interact" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to interact:</h3><p>• Go to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.union.build/">website</a> and connect your wallet</p><p>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.union.build/faucet">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ed484a396a74f7dff91ca01c109b908ce0a9387ad600a2c583d53b5f889a1704.png" alt="" 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>• Transfer test tokens from Union to Sepolia</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/15621c05b88e54305383a577bc2e90072c6035b9deffc9d1a4bc422054250ebd.png" alt="" 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>• Complete the tasks on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/X6NrnVCcPsr4evJ7eSmJ69/GCFartgfbi">Galxe</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/706d3983b7cc92540899c4096ab55fdcc3f74e808a9a099e2c45690929a77bd8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/1357435ef9a7d4084daa8c34831a161f4b91d10040cb497220552732fc477349.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Farcaster Node]]></title>
            <link>https://paragraph.com/@atoms-research/farcaster-node</link>
            <guid>JnLUl6psqlEnT1ZTyWlS</guid>
            <pubDate>Mon, 24 Jun 2024 15:24:39 GMT</pubDate>
            <description><![CDATA[Farcaster is a decentralized social network built on the Ethereum blockchain, specifically designed for creating and connecting social apps Raised: $180M from Paradigm, a16z and othersWe have published several videos about Farcaster: 1 | 2 | 3 Also, join our Farcaster Hub on TelegramHow to run a node:• Visit Alchemy or Infura website and Log in • Click on “Create new API Key”• Create Endpoints Ethereum(mainnet) and Optimism(mainnet) and save it• Save HTTPS• Next, you need to rent a server, us...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/farcaster_xyz"><strong>Farcaster</strong></a> is a decentralized social network built on the Ethereum blockchain, specifically designed for creating and connecting social apps</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/farcaster"><strong>Raised</strong></a>: $180M from Paradigm, a16z and others</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3458dfe29458588723e721087c927fe855a7494a882496a7080751aeebf5b9e8.png" alt="" 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>We have published several videos about Farcaster: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=UQr883ZgSro">1</a> | <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=6togYxelvq8&amp;t=25s">2</a> | <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=xBHmEpZ-b-8">3</a></p><p>Also, join our <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://t.me/farcaster_hub">Farcaster Hub</a> on Telegram</p><h3 id="h-how-to-run-a-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to run a node:</h3><p>• Visit <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.alchemy.com/">Alchemy</a> or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.infura.io/">Infura</a> website and Log in</p><p>• Click on “Create new API Key”</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0d568ee7fef4864d963eb18a0b3876fd50a09b6228dfba3a08ca09d4a44735a0.png" alt="" 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>• Create Endpoints Ethereum(mainnet) and Optimism(mainnet) and save it</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e36fa27dc94fcf521be1648caeb623e2526ce6846602809e927b1c848775a264.png" alt="" 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>• Save HTTPS</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e3fd031556b7de4d3786db43dfac9b044326af55736e56f00a27eb3a050aed1c.png" alt="" 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>• Next, you need to rent a server, use these hosting:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.notion.site/Set-up-Hubble-on-EC2-Public-23b4e81d8f604ca9bf8b68f4bb086042"><strong>AWS EC2</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.notion.site/Set-up-Hubble-on-DigitalOcean-Public-e38173c487874c91828665e73eac94c1"><strong>Digital Ocean</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.thehubble.xyz/tutorials/gcp.html"><strong>Google Cloud Platform</strong></a></p></li></ul><p>• <strong>Requirements:</strong>- 16 GB of RAM - 4 CPU cores or vCPUs - 140 GB of free storage - A public IP address with ports 2282 - 2285 exposed</p><p>• Create your server and save your password</p><p>• Open the terminal (console)</p><p>• Insert the following code:</p><pre data-type="codeBlock" text="sudo apt update
sudo apt upgrade -y
"><code>sudo apt <span class="hljs-keyword">update</span>
sudo apt upgrade <span class="hljs-operator">-</span>y
</code></pre><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><p>• After running the command, insert Ethereum Endpoints, Optimism, and your FID</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3d4b0891fb34233d502eed4f8e3cb1d05c7c9d0ecbcd986ad58d23cb093242a1.png" alt="" 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/ec2d8fe6218f093895f8e2f3c7fd76d5c19b3bc2eb16666b11349467ed918de1.png" alt="" 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/c916aa9e4de6649fa26224301c8b3ded065c5f02690f1b4de330e4a2784f7742.png" alt="" 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>• Synchronizing a node can take up to an hour, so you can close the console window, it is running in the background</p><p>• Node monitoring is automatically installed with the node. For this, copy the IP address of your node and paste it in [enter ip address of your Droplet]</p><p>• Copy the result and paste it into a new window in your browser to monitor the node</p><p>• To update your node, go back to its console and stop it by inserting the following command:</p><pre data-type="codeBlock" text="docker stop $(docker ps -a -q)
"><code>docker stop $(docker ps -<span class="hljs-selector-tag">a</span> -<span class="hljs-selector-tag">q</span>)
</code></pre><p>• After that, insert the following command to start the node again</p><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><p>To check the status of your node, open the browser and enter: :3000 in url field, for example: 12.123.123.12:3000 <strong>✅ That’s all!</strong> 🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a> <strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/8ea379b538ba6c3b7237e3ee5cb1c9cd4c8e1c56852f2cf78c7b482756093e2b.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Aligned ]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-aligned</link>
            <guid>CfE5JxTNbba9u0DGim7W</guid>
            <pubDate>Fri, 21 Jun 2024 15:36:51 GMT</pubDate>
            <description><![CDATA[Aligned is a decentralized ZK proof verification layer Raised: $22.6M from Hack VC, dao5, StarkWare and others The project has recently launched testnet 3What to do:• Download and install Aligned to send proofs in the testnetcurl -L https://raw.githubusercontent.com/yetanotherco/aligned_layer/main/batcher/aligned/install_aligned.sh | bash • Download an example SP1 proof file with it&apos;s ELF file using:curl -L https://raw.githubusercontent.com/yetanotherco/aligned_layer/main/batcher/aligned...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/alignedlayer"><strong>Aligned</strong></a> is a decentralized ZK proof verification layer</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/aligned-layer#funding-rounds"><strong>Raised</strong></a>: $22.6M from Hack VC, dao5, StarkWare and others</p><p>The project has recently <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/F99hEjkxcsWNefjnaEhoxCOPgHn0I7oJG3fflRjQUGU">launched</a> testnet 3</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f0556098cc5fff1e3ee92040f735eeba525312f7b91f874dbe76b63ac31dbe5c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Download and install Aligned to send proofs in the testnet</p><pre data-type="codeBlock" text="curl -L https://raw.githubusercontent.com/yetanotherco/aligned_layer/main/batcher/aligned/install_aligned.sh | bash
"><code>curl -L <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/raw.githubusercontent.com/yetanotherco</span><span class="hljs-regexp">/aligned_layer/main</span><span class="hljs-regexp">/batcher/aligned</span><span class="hljs-regexp">/install_aligned.sh | bash
</span></code></pre><p><br>• Download an example SP1 proof file with it&apos;s ELF file using:</p><pre data-type="codeBlock" text="curl -L https://raw.githubusercontent.com/yetanotherco/aligned_layer/main/batcher/aligned/get_proof_test_files.sh | bash
"><code>curl -L <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/raw.githubusercontent.com/yetanotherco</span><span class="hljs-regexp">/aligned_layer/main</span><span class="hljs-regexp">/batcher/aligned</span><span class="hljs-regexp">/get_proof_test_files.sh | bash
</span></code></pre><p><br>• Send the proof</p><pre data-type="codeBlock" text="rm -rf ~/aligned_verification_data/ &amp;&amp;
aligned submit \
--proving_system SP1 \
--proof ~/.aligned/test_files/sp1_fibonacci.proof \
--vm_program ~/.aligned/test_files/sp1_fibonacci-elf \
--aligned_verification_data_path ~/aligned_verification_data \
--conn wss://batcher.alignedlayer.com
"><code>rm <span class="hljs-operator">-</span>rf <span class="hljs-operator">~</span><span class="hljs-operator">/</span>aligned_verification_data<span class="hljs-operator">/</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span>
aligned submit \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>proving_system SP1 \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>proof <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.aligned/test_files<span class="hljs-operator">/</span>sp1_fibonacci.proof \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>vm_program <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.aligned/test_files<span class="hljs-operator">/</span>sp1_fibonacci<span class="hljs-operator">-</span>elf \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>aligned_verification_data_path <span class="hljs-operator">~</span><span class="hljs-operator">/</span>aligned_verification_data \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>conn wss:<span class="hljs-comment">//batcher.alignedlayer.com</span>
</code></pre><p><br>• You should get a response</p><pre data-type="codeBlock" text="[2024-06-17T22:06:03Z INFO  aligned] Proof submitted to aligned. See the batch in the explorer:
    https://explorer.alignedlayer.com/batches/0x8ea98526e48f72d4b49ad39902fb320020d3cf02e6506c444300eb3619db4c13
[2024-06-17T22:06:03Z INFO  aligned] Batch inclusion data written into /Users/maurofab/aligned_verification_data/8ea98526e48f72d4b49ad39902fb320020d3cf02e6506c444300eb3619db4c13_225.json
[2024-06-17T22:06:03Z INFO  aligned] All messages responded. Closing connection...
https://explorer.alignedlayer.com/batches/0x8ea98526e48f72d4b49ad39902fb320020d3cf02e6506c444300eb3619db4c13```
"><code>[<span class="hljs-number">2024</span><span class="hljs-operator">-</span>06<span class="hljs-operator">-</span>17T22:06:03Z INFO  aligned] Proof submitted to aligned. See the batch in the explorer:
    https:<span class="hljs-comment">//explorer.alignedlayer.com/batches/0x8ea98526e48f72d4b49ad39902fb320020d3cf02e6506c444300eb3619db4c13</span>
[<span class="hljs-number">2024</span><span class="hljs-operator">-</span>06<span class="hljs-operator">-</span>17T22:06:03Z INFO  aligned] Batch inclusion data written into <span class="hljs-operator">/</span>Users<span class="hljs-operator">/</span>maurofab<span class="hljs-operator">/</span>aligned_verification_data<span class="hljs-operator">/</span>8ea98526e48f72d4b49ad39902fb320020d3cf02e6506c444300eb3619db4c13_225.json
[<span class="hljs-number">2024</span><span class="hljs-operator">-</span>06<span class="hljs-operator">-</span>17T22:06:03Z INFO  aligned] All messages responded. Closing connection...
https:<span class="hljs-comment">//explorer.alignedlayer.com/batches/0x8ea98526e48f72d4b49ad39902fb320020d3cf02e6506c444300eb3619db4c13```</span>
</code></pre><p><br>• You can use the link to the explorer to check the status of your transaction. Then after three blocks, you can check if it has been verified with:</p><pre data-type="codeBlock" text="aligned verify-proof-onchain \
--aligned-verification-data ~/aligned_verification_data/*.json \
--rpc https://ethereum-holesky-rpc.publicnode.com \
--chain holesky
"><code>aligned verify<span class="hljs-operator">-</span>proof<span class="hljs-operator">-</span>onchain \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>aligned<span class="hljs-operator">-</span>verification<span class="hljs-operator">-</span>data <span class="hljs-operator">~</span><span class="hljs-operator">/</span>aligned_verification_data<span class="hljs-comment">/*.json \
--rpc https://ethereum-holesky-rpc.publicnode.com \
--chain holesky
</span></code></pre><p><br>• You should get this result:</p><pre data-type="codeBlock" text="[2024-06-17T21:58:43Z INFO  aligned] Your proof was verified in Aligned and included in the batch!
"><code>[<span class="hljs-number">2024</span><span class="hljs-operator">-</span>06<span class="hljs-operator">-</span>17T21:<span class="hljs-number">58</span>:43Z INFO  aligned] Your proof was verified in Aligned and included in the batch<span class="hljs-operator">!</span>
</code></pre><p><br>• If the proof wasn&apos;t verified you should get this result:</p><pre data-type="codeBlock" text="[2024-06-17T21:59:09Z INFO  aligned] Your proof was not included in the batch.
"><code>[<span class="hljs-number">2024</span><span class="hljs-operator">-</span>06<span class="hljs-operator">-</span>17T21:<span class="hljs-number">59</span>:09Z INFO  aligned] Your proof was not included in the batch.
</code></pre><p><br>• If you want to verify your proof in your own contract, use a static call to the Aligned contract. You can use the following <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/yetanotherco/aligned_layer/blob/main/contracts/src/core/VerifyBatchInclusionCaller.sol">Caller Contract</a> as an example</p><p>• Tweet the link to your batch verification with #aligned and tag <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/alignedlayer">@alignedlayer</a></p><p>• Go to Galxe page and complete the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Aligned/GCZaytd3Pj">tasks</a></p><p>• Answers: A, B, B, B, B, B, B</p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/87f5b13f2226c94079e3f23ac068fff7f2ff5a56e01cc1676d411a2010bb0939.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Berachain's Public Testnet bArtio B2]]></title>
            <link>https://paragraph.com/@atoms-research/berachain-s-public-testnet-bartio-b2</link>
            <guid>bFBHZckcnVcIYaTMkjQs</guid>
            <pubDate>Tue, 11 Jun 2024 14:20:44 GMT</pubDate>
            <description><![CDATA[Berachain is an EVM identical L1 turning liquidity into security, powered by Proof of Liquidity Raised: $142M from Polychain Capital, HashKey Capital, Framework Ventures, Shima Capital and othersA few days ago, the project launched a new Public Testnet bArtio B2How to interact:• Request test tokens from the faucet (To use the faucet, you must have a min of 0.01 ETH on the Ethereum Mainnet)• Next, follow the link and connect your wallet to add the new network• Swap your $BERA to $STGUSDC and o...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/berachain"><strong>Berachain</strong></a> is an EVM identical L1 turning liquidity into security, powered by Proof of Liquidity</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/berachain#funding-rounds"><strong>Raised</strong></a>: $142M from Polychain Capital, HashKey Capital, Framework Ventures, Shima Capital and others</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d1c2f7792b8e10515f4b09fbdc1b18b7ae49f5bc30f84420e244ad2080193b38.png" alt="" 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>A few days ago, the project <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/berachain/status/1799899303546110071">launched</a> a new Public Testnet bArtio B2</p><h3 id="h-how-to-interact" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to interact:</h3><p>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.faucet.berachain.com/">faucet</a> (<em>To use the faucet, you must have a min of 0.01 ETH on the Ethereum Mainnet</em>)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e1616f72da994f3d4b871a25c817250059347b66c628652e93560f7a7b961f27.png" alt="" 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>• Next, follow the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.bex.berachain.com/">link</a> and connect your wallet to add the new network</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f762f831fc4a955adb1424ff3d20d60c1c255be6ab6e4b8f69d08c178a00d1bf.png" alt="" 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>• Swap your $BERA to $STGUSDC and other tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/24c87d8ee7ec660098f290809813981857ab615e54721cacc4fd62e4b001f98a.png" alt="" 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>• Switch to the &quot;Pool&quot; tab and add tokens to the pool to get $BGT</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/75ab1d8c6e59c5c4ec9d070e9f74daab764b664450f4cc2d9c22363a660f68df.png" alt="" 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>• Mint $HONEY on this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.honey.berachain.com/">website</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/03f799738670ff37e877e22c287210aee39f73897ba40a08ea14471c34947814.png" alt="" 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>• Connect your wallet to this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.bend.berachain.com/dashboard">site</a> and deposit test tokens as collateral</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d1e78955baf08381ed8c92a8b77aef5878a946758a56637b8a2c3de7f6546154.png" alt="" 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>• Supply/borrow $HONEY</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3611ac6c1afe6420fdd84e470a8c525eff2835da1c8e31ed9904dee38430ff81.png" alt="" 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>• Go to the next <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.berps.berachain.com/berpetuals?ref=0x9aC26D73B0a6dB219DD61a660C5e7Ce94f6796db">website</a> and connect the wallet</p><p>• Open different Long/Short positions in the &quot;Berpetuals&quot; tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d5e6ac374ae4702b7ef1b0475f6e4a008a335df60eade1e5fe980eae2cbc9c01.png" alt="" 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>• In the &quot;Vaults&quot; tab, deposit tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8a3aaf8aeffb7655f5af788d32e08fafc6e4b11edb24055ddb627cd9b412fb57.png" alt="" 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>• You can also create your invitation link in the &quot;Referrals&quot; tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/79e9e3ade2bea26248125af7544f4ef9cd0d1ece7c39fa7702b4f0beb19e1533.png" alt="" 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>• On the next <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bartio.station.berachain.com/gauge">site</a>, you need to deposit tokens in Gauge Vaults, delegate tokens to the validator, and redeem BGT for BERA</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/237f4999295807604307895ae2f5ee714e2acb0aa10c8dcee49e0a466369e971.png" alt="" 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/980ae780a11f98d71ab03259bdfc2cb6e32c1c5df5d02215895c5ff618d176e2.png" alt="" 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/92f1784a54fcbe5b0a0e6ce4d0d3c2ed559486baed3db5108baea98f700d2dd2.png" alt="" 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>• Later, in the &quot;Rewards&quot; tab, you will be able to receive rewards</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/011b468a56103a63e6d92415d85bcfc7fb5d8a4d001580877de190703c7f2966.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/d02edcae0d49e9980ee2b8f97de744d8130e3a055ade76ee562f590fd64f7b94.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Morph]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-morph</link>
            <guid>hPCoDQMorRjAYyGTkBjS</guid>
            <pubDate>Mon, 10 Jun 2024 12:24:09 GMT</pubDate>
            <description><![CDATA[Morph is the innovative force reshaping the consumer blockchain landscape for practical, everyday use 💲 Raised: $20M from Dragonfly, Pantera, Spartan group and others Morph has launched new quests on the test network. "A program designed to reward, engage, and celebrate our vibrant ecosystem, where every step you take earns you Morph Points for future airdrops” What to do: • Add the network to your wallet• Request test tokens from the Holesky faucet• Join Discord and on the channel "discord-...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/MorphL2"><strong>Morph</strong></a> is the innovative force reshaping the consumer blockchain landscape for practical, everyday use</p><p>💲 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/morph#funding-rounds"><strong>Raised</strong></a>: $20M from Dragonfly, Pantera, Spartan group and others</p><p>Morph has launched new quests on the test network.</p><p>&quot;A program designed to reward, engage, and celebrate our vibrant ecosystem, where every step you take earns you Morph Points for future airdrops”</p><p><strong>What to do:</strong></p><p>• Add the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chainlist.org/chain/2810">network</a> to your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/088fd86f9b037d0ce2863544746d47b05db66d4ac9f9ef80875ee53410728726.png" alt="" 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>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.quicknode.com/ethereum/holesky">Holesky faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6866234c3ad0f0811427674d5c55a4051b769f2850c25935504d094d0fae1f3e.png" alt="" 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>• Join <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.gg/5SmG4yhzVZ">Discord</a> and on the channel &quot;discord-faucet&quot; enter the command /faucet+your wallet address</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c7862ca0ff8e2a5097204a4d6541cab077b18bf662ff719bcf701857a1debe7.png" alt="" 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>• Visit the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.morphl2.io/points/genesis_jungle">website</a> and connect your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7e4d3865160aea456fb8904abab05859a9744a7c861259e2425559a101f84d6f.png" alt="" 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>• Click on &quot;Voting power&quot; to get daily points and box</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8f7c621286082ee4674603ffc9a613b63fa9bf44d6c640a71a9de0017ddd99d5.png" alt="" 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>• Click “Vote now”, select any project and vote</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c53df5777e64fdaee0cae7904881e24712ef1fc03d177bd1ed0317389b64b760.png" alt="" 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/53a9634846387993eda4c066a6d0f271b02a2ed583d5cd94c6afa1714f635120.png" alt="" 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>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge-holesky.morphl2.io/">Transfer</a> test $ETH to Morph Holesky network</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c5ae17e6f62f13c3bf59feb455d2760b0a2d0f2fa180fb615f7ad3ce475bfa8e.png" alt="" 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>• Swap tokens and add liquidity on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.bulbaswap.io/swap/">site</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1c96a7a2399a431020f1cccff6b08ec809bd390a3ce9a3c8aad5bd7dac9f2f80.png" alt="" 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>• Supply &amp; Borrow tokens <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.abra.finance/dashboard/">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c95483584ed92423964952845265c2616aafcd8db6b6e03d30b7557037ae482a.png" alt="" 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>• Buy/sell NFTs on this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.morpha.io/en">page</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7f4514cc950f72caefd8aab6fc47273d579c6c126a5df1f101a5137917f63700.png" alt="" 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>• Complete the tasks on Galxe: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Morph/GCPcDtzk5V">1</a> | <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Morph/GCNYitdK1r">2</a> (answers: B, D, C)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4b67aa50f8710dbd144ca8185e62b4ec94e17fdc34b0825a56366857043a99bc.png" alt="" 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>Additional interaction</strong></p><p>• Install <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://web3.bitget.com/en">Bitget Wallet</a>, import the wallet or complete the previous tasks again</p><p>• Morph Ambassador/Mod <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSc3B8dJkQo-n_K2H0Xe_c9v4NrVH6uCzkMqkHCx8m9rY8d5dg/viewform">Application</a></p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6d170f3e419309d0038343f4de3c43f450f89951094420a6ae7bb991d7515d3e.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Movement Labs]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-movement-labs</link>
            <guid>W4PYnpIZYCBxavqKlcEr</guid>
            <pubDate>Sat, 08 Jun 2024 10:59:10 GMT</pubDate>
            <description><![CDATA[Movement is the first integrated blockchain network, powering the fastest and most secure layer two on Ethereum 💲 Raised: $41.4M from Polychain Capital and others The project has recently launched the Movement Community ProgramHow to participate:• Add the network to your wallet (EVM | Aptos | Sui)• Request test tokens from the faucet• Follow the link and connect your Sui wallet• Create and mint the NFT (the site may not work correctly) • For the testnet you need Razor Wallet• Visit the websi...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/movementlabsxyz"><strong>Movement</strong></a> is the first integrated blockchain network, powering the fastest and most secure layer two on Ethereum</p><p>💲 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/movement-labs#funding-rounds"><strong>Raised</strong></a>: $41.4M from Polychain Capital and others</p><p>The project has recently launched the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://movementlabs.notion.site/Welcome-to-the-Movement-Community-Program-98b9a1115b954e228b9907952ed04e5b">Movement Community Program</a></p><h3 id="h-how-to-participate" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to participate:</h3><p>• Add the network to your <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.movementlabs.xyz/ecosystem/wallets">wallet</a> (EVM | Aptos | Sui)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4755d54baab73b0a151146c3a2415902a78b709cf046a5d18de06362271a26a7.png" alt="" 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>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.movementlabs.xyz/?network=devnet">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4d259b5bc916a4fd0dc5ef110146ae5051cbc67864ac7ce4b6ddacb51c6ac323.png" alt="" 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>• Follow the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://movecity.io/">link</a> and connect your Sui wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5e0e9fed61af7b6ce85d53355d98feaa1729da3a1c4ba4a686e5da1e33b83877.png" alt="" 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>• Create and mint the NFT (the site may not work correctly)</p><p>• For the testnet you need <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/razor-wallet/fdcnegogpncmfejlfnffnofpngdiejii">Razor Wallet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9ac74e52d6e40f4be3f1dcc007074969facbd8d56f9746974a33a5e13986aa46.png" alt="" 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>• Visit the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://razordex.xyz/swap?chain=m1_devnet">website</a> and connect your Razor wallet</p><p>• Swap test tokens and add liquidity</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/36fb3119a0f64bed43c7b15e5bcb27694ce141e423e3d976f2035c6bbfc138d3.png" alt="" 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>• Complete the tasks on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://zealy.io/cw/movementlabsxyz">Zealy</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Movement/GCXUotzKdd">Galxe</a></p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/f4e97a2cf44ddac5fc1167601aa3f59506c55ee29b982b34c14f749bec1ec57a.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Babylon]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-babylon</link>
            <guid>BmviZ5lvvqNqb8EYT5gz</guid>
            <pubDate>Sat, 08 Jun 2024 10:57:28 GMT</pubDate>
            <description><![CDATA[🌐 Babylon designs security protocols that scale Bitcoin to secure the decentralized world 💲 Raised: $96M from Paradigm, Polychain Capital, HashKey Capital, Binance Labs, OKX Ventures and othersThe project has recently launched Testnet-4 Launch. Testnet will be performed through a quest on GalxeHow to interact:▶ Chapter 0: Onboarding • Install OKX Web3 Wallet• In the upper right corner of the network selection, select "All Networks"• In the main wallet section, click "Manage" and in the toke...]]></description>
            <content:encoded><![CDATA[<p><strong>🌐 </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/babylon_chain"><strong>Babylon</strong></a> designs security protocols that scale Bitcoin to secure the decentralized world</p><p>💲 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/babylon-chain#funding-rounds"><strong>Raised</strong></a>: $96M from Paradigm, Polychain Capital, HashKey Capital, Binance Labs, OKX Ventures and others</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3ae811296819a3b49f76963d505787e1c06eb8c7a1462ce8bf7f144b3c98ee08.png" alt="" 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>The project has recently <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://medium.com/babylonchain-io/babylon-bitcoin-staking-testnet-4-launch-3c7fe3979827">launched</a> Testnet-4 Launch. Testnet will be performed through a quest on Galxe</p><h3 id="h-how-to-interact" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to interact:</h3><p>▶ <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Babylon/GCrantzwAV"><strong>Chapter 0</strong></a><strong>: Onboarding</strong></p><p>• Install <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.okx.com/web3">OKX Web3 Wallet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/66ebe84e1e6cf6dcb9840b812469b6e39ab1667883e51028962aedc9f95b9109.png" alt="" 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>• In the upper right corner of the network selection, select &quot;All Networks&quot;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/839c49d49893a82c5941e50ae57790f4e2648e16b34896cc4bed03061c461854.png" alt="" 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>• In the main wallet section, click &quot;Manage&quot; and in the token search field, enter sBTC (BTC Signet)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/04091b928d38dddf1f8e1860aecf92df1ff7645824dc249c148b5eac9a0261eb.png" alt="" 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>• Press &quot;+&quot; to add the asset</p><p>• Copy your address in the BTC Signet network</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e7690ab19eb66ac885cf882d9ea78a869323ceeef83d42450638c1ee4833b3ad.png" alt="" 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>• Go to Babylon <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/babylonglobal">Discord’s</a> #faucet-signet-btc channel (you must be verified to access it)</p><p>• Send your request starting with !faucet followed by your address</p><p>• Submit the transaction hash that you received from the faucet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/789750e10896b47173e6a3e542a3ee15d1c1f6b6dd108cc5cbd7b85d88bbfec9.png" alt="" 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>• Finish the task on Galxe</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/757518f93113672360b4110bc8ab5a41bb7655e6b60930987e4fa6280cfd53e1.png" alt="" 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>▶ <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/Babylon/GC4G1tdYEm"><strong>Chapter 1</strong></a><strong>: Testnet Staking</strong></p><p>• Complete the social tasks</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3ae89130284165abf42bc1695d19d6c46fa1c6ebcdd849e4d8adde293ebd3de9.png" alt="" 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>• Visi the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://btcstaking.testnet.babylonchain.io/">website</a> and connect your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d8b7c87e51f95ee437ddc82f4be17b83d6afedaea62e2c18eadac9daa1f36dbc.png" alt="" 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>• Stake $BTC to any validator</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c33d5bb0d92f2d1f16e1445db9d73007f47103e776a3d6f9517224c799dc615b.png" alt="" 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>• Leave feedback on Discord on the #feedback channel, copy the link to your message and finish the task on Galxe</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/df80bcaf8db7b5e309c58045a1fff633739ec71986dbf848ab9f9965c8a809d2.png" alt="" 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>• Leave feedback on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://forum.babylonlabs.io/c/testnet/41">forum</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9fe2455585fea1d6fdc31d29ee4708f05949d8c9e81c65815ed872ac44f926ef.png" alt="" 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>Additional interaction</strong></p><p>• Follow the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://stbtc-testnet.nomic.io/stbtc">link</a> and connect your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0786581b7c54cbcff2ce1220d179c60f4180eb638fd08740fb26e6c7f29df7e8.png" alt="" 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>• Deposit test sBTC on the “Bitcoin &gt; Deposit” tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ecfd87dc8e682d9d7743e56a349d59eb593207c32e91bab7739dd6494ce45014.png" alt="" 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>• Next, stake the tokens in the &quot;stBTC&quot; tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/56b993ceec51c0667d8e7cbf475240767c46ca1a42f9459bb76a9950b70275df.png" alt="" 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>• Also, Babylon has its own <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 collection</a> with a 100k supply</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4f45b19935ab6c48efcee1f5c34d28b58194679871691edde51d4f1cab8f422e.png" alt="" 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>• You can also run a node (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptoviet.info/guide-to-running-babylon-node">guide</a>)</p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/69d1da03b64aeb481cd33898de4e6db23753787a0b30b25542a029bbe7463c29.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Atleta]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-atleta</link>
            <guid>vE8P4tbOvCKDhJEP3bRs</guid>
            <pubDate>Fri, 07 Jun 2024 13:33:16 GMT</pubDate>
            <description><![CDATA[Atleta Network is a L1, EVM-compatible blockchain tailored for the sports industry 20% of $ATLA tokens are allocated to IncentivesThe project has recently launched the Olympia testnetWhat to do:• Go to the website and connect your wallet• Switch the network to Atleta Olympia• Request test tokens from the “Faucet” tab• You can get additional 250 $ATLA for verifying your email• Switch to the “Staking” tab and stake some of test tokens• Participate in the available proposals in the “Governance” ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/Atleta_Network"><strong>Atleta Network</strong></a> is a L1, EVM-compatible blockchain tailored for the sports industry</p><p>20% of $ATLA tokens are <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blockchain-sports.gitbook.io/atleta-network/atleta-l1/usdatla/tokenomics">allocated</a> to Incentives</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2be6c99b8d8cb6b55ccc480fc423ccb900928765b2adae267b7d46610eea3b01.png" alt="" 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>The project has recently <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/Atleta_Network/status/1796418974126584039">launched</a> the Olympia testnet</p><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Go to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app-olympia.atleta.network/">website</a> and connect your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/db9a0c5cbdf7724fcbc729aca3097b6c766b82caae327e3b749195ea0d29b4eb.png" alt="" 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>• Switch the network to Atleta Olympia</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/60c46eb350a3f777cf9cdb095304e84b350b124b4ffe13f012d62b67d372f60c.png" alt="" 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>• Request test tokens from the “Faucet” tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2eb46845655ae8a50f8aa7df510a6b18eecd39dd43c132ec4d4ac7326043be08.png" alt="" 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>• You can get additional 250 $ATLA for verifying your email</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7b81359e2e3a7e338c9d9603c586281bf19c13c029be7b82787606900c7d5667.png" alt="" 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>• Switch to the “Staking” tab and stake some of test tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/feda5a58279071f5037f66a75220c53323f1b4cbf485c5b1df36efa3d84354f3.png" alt="" 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>• Participate in the available proposals in the “Governance” tab and create your own proposal</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c71bf4c04d122c44895abe6e3224f0b361f8c5c319297fd8b68b49b485ac3e00.png" alt="" 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>• You can create a proposal only if you have at least 100 $ATLA on your account</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/162d67203319f0fedbfb53783fbe59a2f187feb614037441ccc52997a86b314f.png" alt="" 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>• By completing these tasks every day, you will earn XP</p><p>• Also, complete the quest on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/AtletaNetwork/GC3Y5tdTFy">Galxe</a> (<em>you need to have Galxe Web3 Score &gt;= 100</em>)<br>Deadline: 06/30</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0967a59d517fd913741012a3388ac710e8b09382aa3e2583188893960e518618.png" alt="" 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>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/246d2ea9bfa871a61171b75a8f619c7aadec1478616599c2c456fe43e9a43412.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Nillion’s incentivized testnet]]></title>
            <link>https://paragraph.com/@atoms-research/nillion-s-incentivized-testnet</link>
            <guid>YeIORrnfmXbFba2SZM5C</guid>
            <pubDate>Tue, 04 Jun 2024 09:47:53 GMT</pubDate>
            <description><![CDATA[Nillion is a secure computation network that decentralizes trust for high value data in the same way that blockchains decentralized transactions Raised: $20M from HashKey, GSR, AU21, Big Brain and others Yesterday, the project launched an incentivized testnet. There will be 4 phases in total. One phase lasts one weekWhat to do:• Install Keplr and create or import a wallet • Add Nillion Testnet network to your wallet on the website• Open the wallet and add a network in the "Manage Chain Visibi...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/nillionnetwork"><strong>Nillion</strong></a> is a secure computation network that decentralizes trust for high value data in the same way that blockchains decentralized transactions</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/nillion#funding-rounds"><strong>Raised</strong></a>: <strong>$20M</strong> from HashKey, GSR, AU21, Big Brain and others</p><p>Yesterday, the project <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/nillionnetwork/status/1797636643102560348">launched</a> an incentivized testnet. There will be 4 phases in total. One phase lasts one week</p><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Install <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap?hl=en">Keplr</a> and create or import a wallet</p><p>• Add Nillion Testnet network to your wallet on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chains.keplr.app/">website</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c6f3ca6f261eaabeb52b4ce0d30008f8957ebaffec148762a89c371d6d07a8ac.png" alt="" 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>• Open the wallet and add a network in the &quot;Manage Chain Visibility&quot; tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/aade813ff74a619527a2cce77ca00930f345b5a896be96d429b29ed6c9f8c691.png" alt="" 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>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.testnet.nillion.com/">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bd37eeb2081f9a715a6e8ae8a7341c8a41b581e40f2fdde72b27578aff8973d9.png" alt="" 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>• Send some tokens to other wallets (you can use our wallet: nillion1lh20aty4upexa8zgauzgquvez0xkpjr85y9clt)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0dcc0fc8af59d6b5066af4ceadb71682eb5addcde75fa665f6914ee6a079584d.png" alt="" 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>• Follow the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.ping.pub/nillion/staking">link</a> and connect your Keplr</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8a34009633aa0f062d4733205ac4a55702f162ffc06482be488c4a78b686c588.png" alt="" 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>• Select a validator and delegate test $NIL to him</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c23f4a17232e02bbc42cf850c45554a995d687fbf1811a125ab5519571e9fb1a.png" alt="" 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>• You can check transactions <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.nillion.explorers.guru/">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/47388e2882cbc4fa950070b5edfe7a5660f5eb7852b984bc9071ddbc5c42751e.png" alt="" 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>• Run Nillion SDK (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.nillion.com/nillion-sdk-and-tools">official guide</a>)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/03e651bf29ca6362e70bed577dfd2383f35b1272df942ad9f80e5666397f7743.png" alt="" 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>• Developers can earn $1,000 per week by participating in the Building Blind (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://nillion.com/news/632/">more details</a>)</p><p>• Complete the tasks on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://zealy.io/cw/nillion/questboard">Zealy</a></p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/d302b7caf580f7b690736ebbb08d42eeb0cec4b9b975bc74a14e1e36c2414c4f.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testent by Tea]]></title>
            <link>https://paragraph.com/@atoms-research/testent-by-tea</link>
            <guid>B1VSFXs1ziogRpblCJew</guid>
            <pubDate>Thu, 30 May 2024 09:23:35 GMT</pubDate>
            <description><![CDATA[tea is a decentralized protocol secured by reputation and incentives Raised: $16.9M from Binance Labs, SVK Crypto, Woodstock Fund and others12.7% of tokens are allocated to airdrop. Launch of mainnet scheduled for Q2 2024What to do:• Connet your GitHub and email to the website• Click “Migrate staking portfolio”• In the "Stake" section, deposit your tokens• Also, unstake part of the tokens• Make a donation• In the "Settings" tab, customize your profile• Builders can get 1000 points for registe...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/teaprotocol"><strong><em>tea</em></strong></a> is a decentralized protocol secured by reputation and incentives</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/tea#funding-rounds"><strong>Raised</strong></a>: $16.9M from Binance Labs, SVK Crypto, Woodstock Fund and others</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7a42821bc6f8f9e5265ec1f9b5de309518f9d4bb895b22ca39c0f57a14aaa5d6.png" alt="" 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>12.7% of tokens are allocated to airdrop. Launch of mainnet scheduled for Q2 2024</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bc8797d6726e44931d5637489aa82b96eb13c7be34aa4575df3ed18516fe7206.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Connet your GitHub and email to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.tea.xyz/sign-up?r=OISiYDmJv6q">website</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/586d297cac93f28ef644e3e43cadf7ebec824f309405ad89d3115513dff590ca.png" alt="" 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>• Click “Migrate staking portfolio”</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bdbcbe37e23dcb36198f0c9bbc0d01773e62f69c012bea701fd295f9db334a54.png" alt="" 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>• In the &quot;Stake&quot; section, deposit your tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ce9b51ad962fb1524dea200090ba8e05a2c1436b7b0e63fac2368fe0eca94775.png" alt="" 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/74260639a6292113c1b68295949f2f8c56234895f70f15d1b55a172cac1af5b0.png" alt="" 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>• Also, unstake part of the tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ef88899e7a9d63d32ff5162981b2fbe293f5bf0f5f60a7cd8c7b1c2365e75d84.png" alt="" 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>• Make a donation</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/adaae6b26896f1755697b08f1ef2ea605d890c45f205a37ca666cb40964c175c.png" alt="" 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/aa174aedc81daf24fb13ccf70cc41825e663e20d70b78f9be993793ba6583805.png" alt="" 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>• In the &quot;Settings&quot; tab, customize your profile</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/dc7eca2dd0702dab54514264214301719cdcbafca357755c3943a6bf1faeffd1.png" alt="" 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>• Builders can get 1000 points for registering their OSS project</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/34beffee0934f10c3a7976e192bda6dfc5f801bb1fd5ea208a1abd4b2a042342.png" alt="" 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>• Complete tasks from the home page</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/27a1e3659603d0aa83776bbc8265f17b67b671ba26cb23ffb906792f2694c78b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/2f89cc946ae5d4b1216c9602dc655d7a153f60275fed094c968b970841651c3d.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Nesa]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-nesa</link>
            <guid>2glXTGjvdsqoIGaMdqg0</guid>
            <pubDate>Tue, 28 May 2024 11:49:30 GMT</pubDate>
            <description><![CDATA[Nesa is the lightweight Layer-1 executing critical AI inference on queries that require a high degree of privacy, security, and trust using advanced methods on-chain, including zero-knowledge machine learning (ZKML), split learning (SL), and more The project is a participant in season 7 of the Most Valuable Builder (MVB) Accelerator Program by Binance Labs 8.8% of tokens allocated to Genesis airdrop and incentivized testnet + 11.2% allocated for future rewards (on TGE without locks) The proje...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/nesaorg"><strong>Nesa</strong></a> is the lightweight Layer-1 executing critical AI inference on queries that require a high degree of privacy, security, and trust using advanced methods on-chain, including zero-knowledge machine learning (ZKML), split learning (SL), and more</p><p>The project is a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.bnbchain.org/en/blog/meet-the-most-valuable-builder-mvb-season-7-cohort">participant</a> in season 7 of the Most Valuable Builder (MVB) Accelerator Program by Binance Labs</p><p>8.8% of tokens <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.legacy.nesa.ai/token">allocated</a> to Genesis airdrop and incentivized testnet + 11.2% allocated for future rewards (on TGE without locks)</p><p>The project has recently launched a closed testnet and node</p><div data-type="twitter" tweetId="1791714563706036312" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:605,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-05-18T06:16:55.000Z&quot;,&quot;display_text_range&quot;:[0,275],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[{&quot;display_url&quot;:&quot;beta.nesa.ai&quot;,&quot;expanded_url&quot;:&quot;http://beta.nesa.ai&quot;,&quot;indices&quot;:[252,275],&quot;url&quot;:&quot;https://t.co/bz6TbJTtKi&quot;}],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/cTIp2YVrRy&quot;,&quot;expanded_url&quot;:&quot;https://x.com/nesaorg/status/1791714563706036312/photo/1&quot;,&quot;indices&quot;:[276,299],&quot;url&quot;:&quot;https://t.co/cTIp2YVrRy&quot;}]},&quot;id_str&quot;:&quot;1791714563706036312&quot;,&quot;text&quot;:&quot;Today is the official launch of Nesa Testnet. \n\nDue to high demand, we are inviting whitelisted registrants in phases over the next two weeks.\n\n1) Each day, check your email for an invitation. \n2) When you receive your invite, register your account on https://t.co/bz6TbJTtKi https://t.co/cTIp2YVrRy&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1745743340790763521&quot;,&quot;name&quot;:&quot;Nesa&quot;,&quot;screen_name&quot;:&quot;nesaorg&quot;,&quot;is_blue_verified&quot;:false,&quot;profile_image_shape&quot;:&quot;Square&quot;,&quot;verified&quot;:false,&quot;verified_type&quot;:&quot;Business&quot;,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/c1ec9dc5748ec11d47782f68937f0b00dbdc03441cd818f9c849a71d6bf9035a.jpg&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1791714563706036312&quot;],&quot;editable_until_msecs&quot;:&quot;1716016615000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/cTIp2YVrRy&quot;,&quot;expanded_url&quot;:&quot;https://x.com/nesaorg/status/1791714563706036312/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[276,299],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/GN1xgHrWEAAUx5p.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1800,&quot;width&quot;:3200,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1792},{&quot;x&quot;:1260,&quot;y&quot;:0,&quot;w&quot;:1800,&quot;h&quot;:1800},{&quot;x&quot;:1371,&quot;y&quot;:0,&quot;w&quot;:1579,&quot;h&quot;:1800},{&quot;x&quot;:1710,&quot;y&quot;:0,&quot;w&quot;:900,&quot;h&quot;:1800},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1800}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1152,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:2048},&quot;medium&quot;:{&quot;h&quot;:675,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:383,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/cTIp2YVrRy&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1792},{&quot;x&quot;:1260,&quot;y&quot;:0,&quot;w&quot;:1800,&quot;h&quot;:1800},{&quot;x&quot;:1371,&quot;y&quot;:0,&quot;w&quot;:1579,&quot;h&quot;:1800},{&quot;x&quot;:1710,&quot;y&quot;:0,&quot;w&quot;:900,&quot;h&quot;:1800},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1800}],&quot;expandedUrl&quot;:&quot;https://x.com/nesaorg/status/1791714563706036312/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/61db440b37b8209cf8cdde6c633765e6229fb4570914ec871e376b2c99dea6b5.jpg&quot;,&quot;width&quot;:3200,&quot;height&quot;:1800}],&quot;conversation_count&quot;:120,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false,&quot;note_tweet&quot;:{&quot;id&quot;:&quot;Tm90ZVR3ZWV0UmVzdWx0czoxNzkxNzE0NTYzNTU5MTc0MTQ1&quot;}}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/nesaorg">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/c1ec9dc5748ec11d47782f68937f0b00dbdc03441cd818f9c849a71d6bf9035a.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/nesaorg" class="twitter-displayname">Nesa</a>
              <p><a target="_blank" href="https://twitter.com/nesaorg" class="twitter-username">@nesaorg</a></p>
    
            </div>
            <a href="https://twitter.com/nesaorg/status/1791714563706036312" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      Today is the official launch of Nesa Testnet. <br /><br />Due to high demand, we are inviting whitelisted registrants in phases over the next two weeks.<br /><br />1) Each day, check your email for an invitation. <br />2) When you receive your invite, register your account on <a class="twitter-content-link" href="https://t.co/bz6TbJTtKi" target="_blank">beta.nesa.ai</a> 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/61db440b37b8209cf8cdde6c633765e6229fb4570914ec871e376b2c99dea6b5.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/nesaorg/status/1791714563706036312" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            605
          </a>
          <a target="_blank" href="https://twitter.com/nesaorg/status/1791714563706036312"><p>1:16 AM • May 18, 2024</p></a>
        </div>
    
  </div> 
  </div><p><strong>What to do:</strong></p><p>• Go to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://beta.nesa.ai/preview">website</a> and enter your email to be added to the whitelist</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/30fc4ae96c30b8794597b14b0f3bb3f83845f26e63e0958bab64d0ae14d42232.png" alt="" 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>• Expect a letter in the mail, then register on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://beta.nesa.ai/whitelist">website</a></p><p>• Then claim your testnet tokens from the faucet and start interacting with a platform</p><p>• Join Discord and get all possible roles (#👥・role-list channel)</p><p>• Also, get roles on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://guild.xyz/nesa">Guild</a></p><p>• Complete the tasks on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/quest/KYbqqGoGuCuXRmWvtf3e2w/GCBdutTcqf">Galxe</a></p><p>• Nesa Validator Node Interest Registration <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSdUfrv-xWK6atIMVd8dGt_SWiGKBEQFs9fXYOzX_ZltFe7DfQ/viewform">Form</a></p><div data-type="twitter" tweetId="1792756176125571135" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:5568,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-05-21T03:15:54.000Z&quot;,&quot;display_text_range&quot;:[0,274],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[{&quot;display_url&quot;:&quot;forms.gle/zvojfDcq18X9uT…&quot;,&quot;expanded_url&quot;:&quot;https://forms.gle/zvojfDcq18X9uTUz5&quot;,&quot;indices&quot;:[202,225],&quot;url&quot;:&quot;https://t.co/viraN3khyL&quot;}],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/0Y4E54SItP&quot;,&quot;expanded_url&quot;:&quot;https://x.com/nesaorg/status/1792756176125571135/photo/1&quot;,&quot;indices&quot;:[275,298],&quot;url&quot;:&quot;https://t.co/0Y4E54SItP&quot;}]},&quot;id_str&quot;:&quot;1792756176125571135&quot;,&quot;text&quot;:&quot;Now Open: Nesa Validator Node Registration. The lowest machine requirements EVER for AI.\n\nJoin the network and power the future of AI using as little as your laptop at home with 4GB RAM.\n\nRegister now: https://t.co/viraN3khyL\nTestnet validators will be admitted on a rolling https://t.co/0Y4E54SItP&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1745743340790763521&quot;,&quot;name&quot;:&quot;Nesa&quot;,&quot;screen_name&quot;:&quot;nesaorg&quot;,&quot;is_blue_verified&quot;:false,&quot;profile_image_shape&quot;:&quot;Square&quot;,&quot;verified&quot;:false,&quot;verified_type&quot;:&quot;Business&quot;,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/c1ec9dc5748ec11d47782f68937f0b00dbdc03441cd818f9c849a71d6bf9035a.jpg&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1792756176125571135&quot;],&quot;editable_until_msecs&quot;:&quot;1716264954000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/0Y4E54SItP&quot;,&quot;expanded_url&quot;:&quot;https://x.com/nesaorg/status/1792756176125571135/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[275,298],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/GOEmN8sbIAAZYL2.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1800,&quot;width&quot;:3200,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1792},{&quot;x&quot;:620,&quot;y&quot;:0,&quot;w&quot;:1800,&quot;h&quot;:1800},{&quot;x&quot;:731,&quot;y&quot;:0,&quot;w&quot;:1579,&quot;h&quot;:1800},{&quot;x&quot;:1070,&quot;y&quot;:0,&quot;w&quot;:900,&quot;h&quot;:1800},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1800}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1152,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:2048},&quot;medium&quot;:{&quot;h&quot;:675,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:383,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/0Y4E54SItP&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1792},{&quot;x&quot;:620,&quot;y&quot;:0,&quot;w&quot;:1800,&quot;h&quot;:1800},{&quot;x&quot;:731,&quot;y&quot;:0,&quot;w&quot;:1579,&quot;h&quot;:1800},{&quot;x&quot;:1070,&quot;y&quot;:0,&quot;w&quot;:900,&quot;h&quot;:1800},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:3200,&quot;h&quot;:1800}],&quot;expandedUrl&quot;:&quot;https://x.com/nesaorg/status/1792756176125571135/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/6100d5da755b47e6bc6cb56f540d26964736217f8272c7c15b6e1c27df2dd6f9.jpg&quot;,&quot;width&quot;:3200,&quot;height&quot;:1800}],&quot;conversation_count&quot;:234,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false,&quot;note_tweet&quot;:{&quot;id&quot;:&quot;Tm90ZVR3ZWV0UmVzdWx0czoxNzkyNzU2MTc2MDQ1OTY1MzEy&quot;}}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/nesaorg">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/c1ec9dc5748ec11d47782f68937f0b00dbdc03441cd818f9c849a71d6bf9035a.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/nesaorg" class="twitter-displayname">Nesa</a>
              <p><a target="_blank" href="https://twitter.com/nesaorg" class="twitter-username">@nesaorg</a></p>
    
            </div>
            <a href="https://twitter.com/nesaorg/status/1792756176125571135" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      Now Open: Nesa Validator Node Registration. The lowest machine requirements EVER for AI.<br /><br />Join the network and power the future of AI using as little as your laptop at home with 4GB RAM.<br /><br />Register now: <a class="twitter-content-link" href="https://t.co/viraN3khyL" target="_blank">forms.gle/zvojfDcq18X9uT…</a><br />Testnet validators will be admitted on a rolling 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/6100d5da755b47e6bc6cb56f540d26964736217f8272c7c15b6e1c27df2dd6f9.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/nesaorg/status/1792756176125571135" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            5,568
          </a>
          <a target="_blank" href="https://twitter.com/nesaorg/status/1792756176125571135"><p>10:15 PM • May 20, 2024</p></a>
        </div>
    
  </div> 
  </div><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/b2f71ba740e9549fc1225d2fb821df753c44f134733fdf013210b9157b6d5370.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Zulu Network]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-zulu-network</link>
            <guid>MPOIIUXZGF8b3p4huI6g</guid>
            <pubDate>Wed, 22 May 2024 15:57:13 GMT</pubDate>
            <description><![CDATA[Zulu Network represents a ground-breaking advancement in the Bitcoin ecosystem, introducing a two-tiered architecture to expand the capabilities of the Bitcoin Network. Raised: $3MNot so long ago, the project launched a testnet with a point system (official guide) Zulu Network @zulu_network Summary from the last few posts: Zulu's Phase 1 Testnet: Lwazi is live! Now you can earn ZGP (Zulu Genesis Points) for future rewards! Lwazi Testnet program link: testnet.zulunetwork.io/lwazi What do you n...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/zulu_network"><strong>Zulu Network</strong></a> represents a ground-breaking advancement in the Bitcoin ecosystem, introducing a two-tiered architecture to expand the capabilities of the Bitcoin Network.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/zulu-network#funding-rounds"><strong>Raised</strong></a>: $3M</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c10d593a48f907e04ecc3178eed64648e5184a6489f49d32e1ac9acbfc5f7c2e.png" alt="" 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>Not so long ago, the project launched a testnet with a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://medium.com/@zulu_network/earn-zulu-genesis-points-zgp-now-phase-1-lwazi-c69323fd3ea1">point system</a> (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://medium.com/@zulu_network/zulu-bridge-testnet-guide-1540e8f23207">official guide</a>)</p><div data-type="twitter" tweetId="1776176478948139306" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:60,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-04-05T09:14:07.000Z&quot;,&quot;display_text_range&quot;:[0,279],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[{&quot;display_url&quot;:&quot;testnet.zulunetwork.io/lwazi&quot;,&quot;expanded_url&quot;:&quot;https://testnet.zulunetwork.io/lwazi&quot;,&quot;indices&quot;:[168,191],&quot;url&quot;:&quot;https://t.co/jyTkgeboUs&quot;},{&quot;display_url&quot;:&quot;medium.com/@zulu_network/…&quot;,&quot;expanded_url&quot;:&quot;https://medium.com/@zulu_network/earn-zulu-genesis-points-zgp-now-phase-1-lwazi-c69323fd3ea1&quot;,&quot;indices&quot;:[236,259],&quot;url&quot;:&quot;https://t.co/cPzurujasy&quot;}],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/vqMuUlhaSo&quot;,&quot;expanded_url&quot;:&quot;https://x.com/zulu_network/status/1776176478948139306/photo/1&quot;,&quot;indices&quot;:[280,303],&quot;url&quot;:&quot;https://t.co/vqMuUlhaSo&quot;}]},&quot;id_str&quot;:&quot;1776176478948139306&quot;,&quot;text&quot;:&quot;Summary from the last few posts: \nZulu&apos;s Phase 1 Testnet: Lwazi is live! ⏫\n\nNow you can earn ZGP (Zulu Genesis Points) for future rewards!\n\nLwazi Testnet program link: https://t.co/jyTkgeboUs\n\nWhat do you need to do to earn? Read this: https://t.co/cPzurujasy\n\nHow about learning https://t.co/vqMuUlhaSo&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1735219644544540672&quot;,&quot;name&quot;:&quot;Zulu Network&quot;,&quot;screen_name&quot;:&quot;zulu_network&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/8f37a8e3426600ee6882aede4bbca538f8a9d85ba920a30949d852bcf0a35d1c.png&quot;},&quot;edit_control&quot;:{&quot;initial_tweet_id&quot;:&quot;1776176177230885177&quot;,&quot;edit_tweet_ids&quot;:[&quot;1776176177230885177&quot;,&quot;1776176478948139306&quot;],&quot;editable_until_msecs&quot;:&quot;1712311975000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;4&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/vqMuUlhaSo&quot;,&quot;expanded_url&quot;:&quot;https://x.com/zulu_network/status/1776176478948139306/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[280,303],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/GKY9NbqakAALM9C.png&quot;,&quot;original_info&quot;:{&quot;height&quot;:429,&quot;width&quot;:754,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:754,&quot;h&quot;:422},{&quot;x&quot;:181,&quot;y&quot;:0,&quot;w&quot;:429,&quot;h&quot;:429},{&quot;x&quot;:207,&quot;y&quot;:0,&quot;w&quot;:376,&quot;h&quot;:429},{&quot;x&quot;:288,&quot;y&quot;:0,&quot;w&quot;:215,&quot;h&quot;:429},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:754,&quot;h&quot;:429}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:429,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:754},&quot;medium&quot;:{&quot;h&quot;:429,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:754},&quot;small&quot;:{&quot;h&quot;:387,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/vqMuUlhaSo&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:754,&quot;h&quot;:422},{&quot;x&quot;:181,&quot;y&quot;:0,&quot;w&quot;:429,&quot;h&quot;:429},{&quot;x&quot;:207,&quot;y&quot;:0,&quot;w&quot;:376,&quot;h&quot;:429},{&quot;x&quot;:288,&quot;y&quot;:0,&quot;w&quot;:215,&quot;h&quot;:429},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:754,&quot;h&quot;:429}],&quot;expandedUrl&quot;:&quot;https://x.com/zulu_network/status/1776176478948139306/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/63029062f92c7ad0eb6b359851ac5bfbe78007a0531a99d47b1dbb5e0e7ba600.png&quot;,&quot;width&quot;:754,&quot;height&quot;:429}],&quot;conversation_count&quot;:26,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;quoted_tweet&quot;:{&quot;lang&quot;:&quot;en&quot;,&quot;reply_count&quot;:28,&quot;retweet_count&quot;:56,&quot;favorite_count&quot;:102,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-04-05T07:54:12.000Z&quot;,&quot;display_text_range&quot;:[0,244],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[{&quot;display_url&quot;:&quot;testnet.zulunetwork.io/lwazi&quot;,&quot;expanded_url&quot;:&quot;https://testnet.zulunetwork.io/lwazi&quot;,&quot;indices&quot;:[182,205],&quot;url&quot;:&quot;https://t.co/jyTkgeaR4U&quot;},{&quot;display_url&quot;:&quot;medium.com/@zulu_network/…&quot;,&quot;expanded_url&quot;:&quot;https://medium.com/@zulu_network/earn-zulu-genesis-points-zgp-now-phase-1-lwazi-c69323fd3ea1&quot;,&quot;indices&quot;:[221,244],&quot;url&quot;:&quot;https://t.co/cPzuruiCD0&quot;}],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[]},&quot;id_str&quot;:&quot;1776156368921080004&quot;,&quot;text&quot;:&quot;And now, the moment you all have been waiting for!\n\nGet ready to earn ZGP (Zulu Genesis Points)!\nParticipate in our test net, earn points get a chance for big future rewards!\n\nLink: https://t.co/jyTkgeaR4U\n\nHow to Guide: https://t.co/cPzuruiCD0&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1735219644544540672&quot;,&quot;name&quot;:&quot;Zulu Network&quot;,&quot;screen_name&quot;:&quot;zulu_network&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/8f37a8e3426600ee6882aede4bbca538f8a9d85ba920a30949d852bcf0a35d1c.png&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1776156368921080004&quot;],&quot;editable_until_msecs&quot;:&quot;1712307252000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false},&quot;isEdited&quot;:true,&quot;isStaleEdit&quot;:false,&quot;previous_counts&quot;:{&quot;favorite_count&quot;:1,&quot;quote_count&quot;:0,&quot;reply_count&quot;:0,&quot;retweet_count&quot;:0},&quot;note_tweet&quot;:{&quot;id&quot;:&quot;Tm90ZVR3ZWV0UmVzdWx0czoxNzc2MTc2NDc4ODU1ODQ3OTM2&quot;}}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/zulu_network">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/8f37a8e3426600ee6882aede4bbca538f8a9d85ba920a30949d852bcf0a35d1c.png" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/zulu_network" class="twitter-displayname">Zulu Network</a>
              <p><a target="_blank" href="https://twitter.com/zulu_network" class="twitter-username">@zulu_network</a></p>
    
            </div>
            <a href="https://twitter.com/zulu_network/status/1776176478948139306" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      Summary from the last few posts: <br />Zulu's Phase 1 Testnet: Lwazi is live! <img class="twitter-emoji" draggable="false" alt="⏫" src="https://abs-0.twimg.com/emoji/v2/72x72/23eb.png"/><br /><br />Now you can earn ZGP (Zulu Genesis Points) for future rewards!<br /><br />Lwazi Testnet program link: <a class="twitter-content-link" href="https://t.co/jyTkgeboUs" target="_blank">testnet.zulunetwork.io/lwazi</a><br /><br />What do you need to do to earn? Read this: <a class="twitter-content-link" href="https://t.co/cPzurujasy" target="_blank">medium.com/@zulu_network/…</a><br /><br />How about learning 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/63029062f92c7ad0eb6b359851ac5bfbe78007a0531a99d47b1dbb5e0e7ba600.png" /></div>
      
      <div class="twitter-quoted">
        
  <div class="twitter-quoted twitter-embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/zulu_network">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/8f37a8e3426600ee6882aede4bbca538f8a9d85ba920a30949d852bcf0a35d1c.png" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/zulu_network" class="twitter-displayname">Zulu Network</a>
              <p><a target="_blank" href="https://twitter.com/zulu_network" class="twitter-username">@zulu_network</a></p>
    
            </div>
            <a href="https://twitter.com/zulu_network/status/1776156368921080004" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      And now, the moment you all have been waiting for!<br /><br />Get ready to earn ZGP (Zulu Genesis Points)!<br />Participate in our test net, earn points get a chance for big future rewards!<br /><br />Link: <a class="twitter-content-link" href="https://t.co/jyTkgeaR4U" target="_blank">testnet.zulunetwork.io/lwazi</a><br /><br />How to Guide: <a class="twitter-content-link" href="https://t.co/cPzuruiCD0" target="_blank">medium.com/@zulu_network/…</a>
      
      
       
    </div>
    
  </div> 
  
    </div> 
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/zulu_network/status/1776176478948139306" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            60
          </a>
          <a target="_blank" href="https://twitter.com/zulu_network/status/1776176478948139306"><p>4:14 AM • Apr 5, 2024</p></a>
        </div>
    
  </div> 
  </div><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Follow the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.zulunetwork.io/">link</a> and connect your wallet, select Bitcoin Testnet (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/unisat-wallet/ppbibelpcjmhbdihakflkdcoccbgbkpo?pli=1">UniSat Wallet</a>)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5ea5cadba8ceb4c4da936f9468e66518c9e825d37d245e56c86ee6e658463235.png" alt="" 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>• Request test tokens from <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.gg/ZVaQPjhxTG">Discord</a> and the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://coinfaucet.eu/en/btc-testnet/">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fecb86181230f61eeb7c5ed0f78a25718dd31fe5848de866fdddb5a6899ead1b.png" alt="" 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>• Also, take test tokens <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://freebitcoins.com/faucet/">here</a> and bridge it</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3ea46ca994090836d90495069d6babcd29eedb9c8dd3df7ee953c8891a7a3cd7.png" alt="" 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>• Then, swap tokens and add liquidity on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://adamdefi.io/swap">website</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/89caae088659a74a23c51dc137d91088fed8f18bdbfdbded990ab38688c8f4a2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/80f696160a523c0a0385a579ba574f5cc44473ca2141f75eded071670f4a04c8.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Initia Incentivized Testnet: Full Guide]]></title>
            <link>https://paragraph.com/@atoms-research/initia-incentivized-testnet-full-guide</link>
            <guid>4fENRdc15Q9wCOGGLppM</guid>
            <pubDate>Thu, 16 May 2024 09:34:27 GMT</pubDate>
            <description><![CDATA[Initia is a network for interwoven rollups. Binding a highly interwoven system of modular networks through architectural ownership of the L1 orchestration layer, L2 network, and the communication protocol 💲 Raised: $7.5M from Binance, Delphi digital, Big brain holdings and others The project has launched a testnet that will last for 8 weeks, after which the mainnet is planned to be launched Initia 🪢 @initia A new multi-chain world begins, Initia’s Public Testnet is live. The Initiation star...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/initiaFDN"><strong>Initia</strong></a> is a network for interwoven rollups. Binding a highly interwoven system of modular networks through architectural ownership of the L1 orchestration layer, L2 network, and the communication protocol</p><p>💲 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/price/initia"><strong>Raised</strong></a>: $7.5M from Binance, Delphi digital, Big brain holdings and others</p><p>The project has launched a testnet that will last for 8 weeks, after which the mainnet is planned to be launched</p><div data-type="twitter" tweetId="1790384204708258036" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:5030,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-05-14T14:10:32.000Z&quot;,&quot;display_text_range&quot;:[0,146],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[{&quot;display_url&quot;:&quot;initia.xyz&quot;,&quot;expanded_url&quot;:&quot;http://initia.xyz&quot;,&quot;indices&quot;:[95,118],&quot;url&quot;:&quot;https://t.co/Drvwr0ymmP&quot;}],&quot;user_mentions&quot;:[],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/nGzG2hyKmF&quot;,&quot;expanded_url&quot;:&quot;https://x.com/initiaFDN/status/1790384204708258036/video/1&quot;,&quot;indices&quot;:[147,170],&quot;url&quot;:&quot;https://t.co/nGzG2hyKmF&quot;}]},&quot;id_str&quot;:&quot;1790384204708258036&quot;,&quot;text&quot;:&quot;A new multi-chain world begins, Initia’s Public Testnet is live.\n\nThe Initiation starts now at https://t.co/Drvwr0ymmP.\n\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% https://t.co/nGzG2hyKmF&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;1604741451404873729&quot;,&quot;name&quot;:&quot;Initia 🪢&quot;,&quot;screen_name&quot;:&quot;initia&quot;,&quot;is_blue_verified&quot;:false,&quot;profile_image_shape&quot;:&quot;Square&quot;,&quot;verified&quot;:false,&quot;verified_type&quot;:&quot;Business&quot;,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/1ddd691a1080c06946de260dcb098241a87ff276d34f4fb5824aaba810b9fc16.png&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1790384204708258036&quot;],&quot;editable_until_msecs&quot;:&quot;1715699432000&quot;,&quot;is_edit_eligible&quot;:false,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;additional_media_info&quot;:{},&quot;display_url&quot;:&quot;pic.x.com/nGzG2hyKmF&quot;,&quot;expanded_url&quot;:&quot;https://x.com/initiaFDN/status/1790384204708258036/video/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[147,170],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/ext_tw_video_thumb/1790384141651091456/pu/img/MCgyvyhnAdwaeANz.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;focus_rects&quot;:[]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1080,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1920},&quot;medium&quot;:{&quot;h&quot;:675,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:383,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;video&quot;,&quot;url&quot;:&quot;https://t.co/nGzG2hyKmF&quot;,&quot;video_info&quot;:{&quot;aspect_ratio&quot;:[16,9],&quot;duration_millis&quot;:20000,&quot;variants&quot;:[{&quot;content_type&quot;:&quot;application/x-mpegURL&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/pl/7LDpdVcGg09UiCjj.m3u8?tag=12&amp;v=cfc&quot;},{&quot;bitrate&quot;:256000,&quot;content_type&quot;:&quot;video/mp4&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/vid/avc1/480x270/r-ZZPtFfnLt4fZ_O.mp4?tag=12&quot;},{&quot;bitrate&quot;:832000,&quot;content_type&quot;:&quot;video/mp4&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/vid/avc1/640x360/uh5EcDoUGl1triFI.mp4?tag=12&quot;},{&quot;bitrate&quot;:2176000,&quot;content_type&quot;:&quot;video/mp4&quot;,&quot;url&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/vid/avc1/1280x720/YiHPr57Jpc186pWb.mp4?tag=12&quot;}]}}],&quot;photos&quot;:[],&quot;video&quot;:{&quot;aspectRatio&quot;:[16,9],&quot;contentType&quot;:&quot;media_entity&quot;,&quot;durationMs&quot;:20000,&quot;mediaAvailability&quot;:{&quot;status&quot;:&quot;available&quot;},&quot;poster&quot;:&quot;https://pbs.twimg.com/ext_tw_video_thumb/1790384141651091456/pu/img/MCgyvyhnAdwaeANz.jpg&quot;,&quot;variants&quot;:[{&quot;type&quot;:&quot;application/x-mpegURL&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/pl/7LDpdVcGg09UiCjj.m3u8?tag=12&amp;v=cfc&quot;},{&quot;type&quot;:&quot;video/mp4&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/vid/avc1/480x270/r-ZZPtFfnLt4fZ_O.mp4?tag=12&quot;},{&quot;type&quot;:&quot;video/mp4&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/vid/avc1/640x360/uh5EcDoUGl1triFI.mp4?tag=12&quot;},{&quot;type&quot;:&quot;video/mp4&quot;,&quot;src&quot;:&quot;https://video.twimg.com/ext_tw_video/1790384141651091456/pu/vid/avc1/1280x720/YiHPr57Jpc186pWb.mp4?tag=12&quot;}],&quot;videoId&quot;:{&quot;type&quot;:&quot;tweet&quot;,&quot;id&quot;:&quot;1790384204708258036&quot;},&quot;viewCount&quot;:0},&quot;conversation_count&quot;:885,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/initia">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/1ddd691a1080c06946de260dcb098241a87ff276d34f4fb5824aaba810b9fc16.png" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/initia" class="twitter-displayname">Initia 🪢</a>
              <p><a target="_blank" href="https://twitter.com/initia" class="twitter-username">@initia</a></p>
    
            </div>
            <a href="https://twitter.com/initia/status/1790384204708258036" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      A new multi-chain world begins, Initia’s Public Testnet is live.<br /><br />The Initiation starts now at <a class="twitter-content-link" href="https://t.co/Drvwr0ymmP" target="_blank">initia.xyz</a>.<br /><br />▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% 
      <div class="twitter-media">
      <img class="twitter-image" src="https://pbs.twimg.com/ext_tw_video_thumb/1790384141651091456/pu/img/MCgyvyhnAdwaeANz.jpg"> 
    </div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/initia/status/1790384204708258036" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            5,030
          </a>
          <a target="_blank" href="https://twitter.com/initia/status/1790384204708258036"><p>9:10 AM • May 14, 2024</p></a>
        </div>
    
  </div> 
  </div><h3 id="h-how-to-interact" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to interact:</h3><p>• Install the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/initia-wallet/ffbceckpkpbcmgiaehlloocglmijnpmp">wallet</a> and request the test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.testnet.initia.xyz/?address=">faucet</a></p><p>(The Initia Faucet uses Gitcoin Passport to verify Proof of Humanity, you need to have at least 20 score)</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/10ba01c77fc833cd6ff95f034256716a38872f4ec72f2579a2e8ec4547b2698b.png" alt="" 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>• Follow the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/xp">link</a> and connect your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e724a800b9bab0aaba6575bbe33c5753af6cd18587aee8583c0e15089580119f.png" alt="" 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>• Select and mint your name on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://usernames.testnet.initia.xyz/">Usernames</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d16bb607ba5c82ea3cfcd082a7135be798db775caee3b3b88f1ce6fe79075b70.png" alt="" 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>• Swap 1 $INIT for $USDC, $TIA or $ETH <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/swap/result">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4f040d27ccc4297925a97bb7ccd9eab7a9a7052cb9b82067045a945d3fedf3b4.png" alt="" 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>• Delegate some $INIT to the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake/INIT">validators</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/29c1afcc36dcc06435eeed91fe7f245393c30c4732eb690fe493c18d9c07a5ed.png" alt="" 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>• Stake $INIT to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/stake?fromXp=true">LP validators</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f0ee15b35bd582e257fbed4eab91d99d9d4c10c6d1dfc053678397d87ab311d5.png" alt="" 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>• Return to the main <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/xp">page</a> of the testnet and get rewards for staking and NFT for completing tasks</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b9d8881f7358ec9fccba5a585a999bd8fca533ca248d29d85bff530157c3f6f3.png" alt="" 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>• After you get all the NFTs, you will receive 600 XP and will be offered to mint Jennie, a pet that needs to be cared for and fed at least once a week. After getting Jennie, you will get a new control panel with the pet, where you can track your progress.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9a34488c5c7c6bb17f8fd7528d44a3a9fa0b45313095bca2e913d36d538ee92c.png" alt="" 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>• In the next step, you will feed your pet by opening the “Feed Jennie” tab. There will be a variety of food to choose from, but ideally, you should feed your pet the best food</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/06b4bbdc23f253636c4abccae072985a6da4262493f669b55d4c008551155fcd.png" alt="" 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/c509c8cfd70b0ad97e02e6792962a27f3e30a64b2ea50aa288df216bd386127f.png" alt="" 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/1759452898c522f64854f61ea52abf893f275ec2d91486c28d53e5471c9289bf.png" alt="" 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/0d420c1f7ac9d294bfd7e4679663f1312707977f7397269472fe8f4caa93cf87.png" alt="" 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>There are currently 4 apps available in which you can farm XP:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6e02fa433211aa36626758dd8591c4982ee91478748036fa48891ca18a35eb6d.png" alt="" 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>• Next, click on &quot;Earn more XP&quot; and complete 3 tasks:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a6af9234aec8065dc5013c7fa430e8ec1e9a6a4153be725a0b1a142f2e4dfd1f.png" alt="" 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>- Enter referral code: <strong>AI5NF2C1</strong></p><p>- Follow Initia on Twitter</p><p>- Join Initia <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/initia">Discord</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e3cc620f4edc801171bbd3aca981cf0bfa857413ae621002eae91d26734dc098.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-earn-more-initia-xp" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Earn more Initia XP</strong></h3><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://init-ai.testnet.initia.xyz/"><strong>InitAI</strong></a></p><p>• Bridge tokens to InitAI via the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.testnet.initia.xyz/">bridge</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f5a00d6b7efade4a8235ac97ab28729609c2374cf01920365c45413586e07545.png" alt="" 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>• Create your NFT collection on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://init-ai.testnet.initia.xyz/">website</a></p><p>• Mint other NFTs</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9ea862ff610e26c9d8d0be94680eeed5595b6636bb0b042fffa498de24ccf60f.png" alt="" 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><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://tucana.zone/"><strong>Tucana Dex</strong></a></p><p>• Bridge $INIT to Tucana via the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.testnet.initia.xyz/">bridge</a></p><p>• Use <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://birdee.ag.tucana.zone/">DEX</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://birdee.perp.tucana.zone/">Perp</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d33ee8deb0c9e8cccc5762946fe13604786c4d9856631295efe0b60950053307.png" alt="" 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/f0fc73d7978556d4596ec0095dbe819c4c465e53fe1005eaa39261a24a85fcb3.png" alt="" 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><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blackwing.fi"><strong>BlackWing</strong></a></p><p>• Enter the invite code: <strong>jthbhz | xahst2 | r1hlfn | w3c4fw | loygla | toegym | zkjvm5 | a4cymq |</strong></p><p><strong>jw7ejf</strong></p><p>• Connect your Twitter, Gmail and Telegram</p><p>• Deposited to Blackwing and get BXP</p><p>• Swap part of $BXP to $BUSD</p><p>• Start trading in the &quot;Trade&quot; tab</p><h3 id="h-update-week-4" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Update: Week 4</h3><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ff52de31fded4aa6606a373213ddadf054fb46041f0d424b6e17d2bf9729757e.png" alt="" 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>• Transfer 1 $USDC to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=tomcat-1">Blackwing</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9d422cef59c546e8ab4fd34fdd79fe4448172faa85fe3ff6bce55626ab65b674.png" alt="" 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>• Transfer 1 $INIT to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=init-ai-1">Init AI</a></p><p>• Transfer 0.1 $TIA to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=burrito-1">Noon</a></p><p>• Transfer 5 $TUC to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=birdee-1">Tucana</a></p><p>• Transfer 0.0001 $ETH to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=minimove-1">Minimove</a></p><p>• Transfer 1 $INIT to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.testnet.initia.xyz/Send/?chain_id=landlord-1">Civitia</a></p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/cf91572213da4956ed9c3d40801fc87770ecbda59df27e6a470fac984ea1f47b.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Botanix Labs]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-botanix-labs-2</link>
            <guid>ZmoYTbj1H5qkyIdmpzZe</guid>
            <pubDate>Tue, 14 May 2024 10:51:50 GMT</pubDate>
            <description><![CDATA[Botanix Labs is building the infrastructure to transform Bitcoin from the best money ever made to the programmable layer that will serve as the basis for the future of finance Raised: $11.5M from Polychain Capital, Placeholder Ventures and ABCDEHow to interact:• Visit the website and click “Add Botanix Testnet First”• Request test tokens• Take additional test tokens here• Install the Unisat wallet • Transfer test tokens to Unisat here• Go to the Avocadoswap website and connect your wallet• Sw...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/botanixlabs"><strong>Botanix Labs</strong></a> is building the infrastructure to transform Bitcoin from the best money ever made to the programmable layer that will serve as the basis for the future of finance</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://cryptorank.io/ico/botanix-labs">Raised</a>: $11.5M from Polychain Capital, Placeholder Ventures and ABCDE</p><h3 id="h-how-to-interact" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How to interact:</h3><p>• Visit the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucet.botanixlabs.dev/">website</a> and click “Add Botanix Testnet First”</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f082f2111fca221f8637ee10178dd2e281ffba4da62b7891b0e89de0046f7068.png" alt="" 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>• Request test tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f9dd34d4b2dd3394f3f925a244d8db8e8bb196bfa5c19429f936380899f6e2c8.png" alt="" 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>• Take additional test tokens <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://botanix.5thweb.io/">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/77522fe2a8dc5f0e4337b70de98c3352ae0cd05da9dc8a9bd4e210208428d0e9.png" alt="" 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>• Install the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chromewebstore.google.com/detail/unisat-wallet/ppbibelpcjmhbdihakflkdcoccbgbkpo">Unisat</a> wallet</p><p>• Transfer test tokens to Unisat <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.botanixlabs.dev/">here</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/20ebdbfd27796b5e6e64ba6c7c08f4e5351c3e3b8dd3ca05ac1caf69fe985c9b.png" alt="" 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>• Go to the Avocadoswap <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://avocadoswap.io/#/swap">website</a> and connect your wallet</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7f6ff21e6a76d407e28e7451ff5b9fa3a35d1eb1d591295ed4151a329f23ee23.png" alt="" 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>• Swap tokens and add liquidity</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d212e8c018ec5f28d1747a489bde033054d9a6dec19a8219df7f71f6a7ae6fd1.png" alt="" 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>• Complete the tasks on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.galxe.com/botanixlabs">Galxe</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://zealy.io/cw/botanix">Zealy</a></p><p>• Fill out the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://botanixlabs.xyz/en/testnet">form</a> and</p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/b14e2119a7f2e50a0b2a5a3e51d69c4f9271d433bec7a7abc8264c06e64b9adb.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testnet by Kodo x Taiko]]></title>
            <link>https://paragraph.com/@atoms-research/testnet-by-kodo-x-taiko</link>
            <guid>n7rMCgMeNEwEniY8ZLZg</guid>
            <pubDate>Sat, 11 May 2024 12:15:19 GMT</pubDate>
            <description><![CDATA[Kodo Exchange is the trailblazer of the next-generation automated market makers (AMM) The launch of the $KDO token has been confirmed We wrote about Taiko here: ATOMS @atoms_res Using this list, you will get an airdrop from Taiko Recently, @taikoxyz launched the last testnet before the mainnet and published a list of winners who will receive important NFTs $TKO token confirmed ZERO-COST Here is a full list of interactions with Hekla Testnet 191 6:32 AM • May 8, 2024 Recently, Kodo launched a ...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/kodohq"><strong>Kodo Exchange</strong></a> is the trailblazer of the next-generation automated market makers (AMM)</p><p>The launch of the $KDO token has been confirmed</p><p>We wrote about Taiko here:</p><div data-type="twitter" tweetId="1788170041550307691" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:191,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2024-05-08T11:32:15.000Z&quot;,&quot;display_text_range&quot;:[0,279],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[],&quot;user_mentions&quot;:[{&quot;id_str&quot;:&quot;1529303887668056064&quot;,&quot;indices&quot;:[65,74],&quot;name&quot;:&quot;Taiko.eth 🥁&quot;,&quot;screen_name&quot;:&quot;taikoxyz&quot;}],&quot;symbols&quot;:[{&quot;indices&quot;:[187,191],&quot;text&quot;:&quot;TKO&quot;}],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/lwcK0LPBYQ&quot;,&quot;expanded_url&quot;:&quot;https://x.com/atoms_res/status/1788170041550307691/photo/1&quot;,&quot;indices&quot;:[277,300],&quot;url&quot;:&quot;https://t.co/lwcK0LPBYQ&quot;}]},&quot;id_str&quot;:&quot;1788170041550307691&quot;,&quot;text&quot;:&quot;💎 Using this list, you will get an airdrop from Taiko\n\nRecently, @taikoxyz launched the last testnet before the mainnet and published a list of winners who will receive important NFTs\n\n💸 $TKO token confirmed\n\nZERO-COST\n\nHere is a full list of interactions with Hekla Testnet 👇 https://t.co/lwcK0LPBYQ&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;2251831441&quot;,&quot;name&quot;:&quot;ATOMS&quot;,&quot;screen_name&quot;:&quot;atoms_res&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/ee431e8b7fe37f8a110ce28125a226ac1e3ed5c835c3547e7d8f2cf27be5953d.jpg&quot;},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1788170041550307691&quot;],&quot;editable_until_msecs&quot;:&quot;1715171535000&quot;,&quot;is_edit_eligible&quot;:false,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/lwcK0LPBYQ&quot;,&quot;expanded_url&quot;:&quot;https://x.com/atoms_res/status/1788170041550307691/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[277,300],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/GNDbLKKbYAAVugy.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:720,&quot;width&quot;:1261,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:14,&quot;w&quot;:1261,&quot;h&quot;:706},{&quot;x&quot;:541,&quot;y&quot;:0,&quot;w&quot;:720,&quot;h&quot;:720},{&quot;x&quot;:596,&quot;y&quot;:0,&quot;w&quot;:632,&quot;h&quot;:720},{&quot;x&quot;:732,&quot;y&quot;:0,&quot;w&quot;:360,&quot;h&quot;:720},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1261,&quot;h&quot;:720}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:720,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1261},&quot;medium&quot;:{&quot;h&quot;:685,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:388,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/lwcK0LPBYQ&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:14,&quot;w&quot;:1261,&quot;h&quot;:706},{&quot;x&quot;:541,&quot;y&quot;:0,&quot;w&quot;:720,&quot;h&quot;:720},{&quot;x&quot;:596,&quot;y&quot;:0,&quot;w&quot;:632,&quot;h&quot;:720},{&quot;x&quot;:732,&quot;y&quot;:0,&quot;w&quot;:360,&quot;h&quot;:720},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1261,&quot;h&quot;:720}],&quot;expandedUrl&quot;:&quot;https://x.com/atoms_res/status/1788170041550307691/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/f117eb450d384e38791f4d04201da4a9e7450e5eedc5784937cf42f54a079526.jpg&quot;,&quot;width&quot;:1261,&quot;height&quot;:720}],&quot;conversation_count&quot;:11,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/atoms_res">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/ee431e8b7fe37f8a110ce28125a226ac1e3ed5c835c3547e7d8f2cf27be5953d.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/atoms_res" class="twitter-displayname">ATOMS</a>
              <p><a target="_blank" href="https://twitter.com/atoms_res" class="twitter-username">@atoms_res</a></p>
    
            </div>
            <a href="https://twitter.com/atoms_res/status/1788170041550307691" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      <img class="twitter-emoji" draggable="false" alt="💎" src="https://abs-0.twimg.com/emoji/v2/72x72/1f48e.png"/> Using this list, you will get an airdrop from Taiko<br /><br />Recently, <a class="twitter-content-link"  href="https://twitter.com/taikoxyz" target="_blank">@taikoxyz</a> launched the last testnet before the mainnet and published a list of winners who will receive important NFTs<br /><br /><img class="twitter-emoji" draggable="false" alt="💸" src="https://abs-0.twimg.com/emoji/v2/72x72/1f4b8.png"/> $TKO token confirmed<br /><br />ZERO-COST<br /><br />Here is a full list of interactions with Hekla Testnet <img class="twitter-emoji" draggable="false" alt="👇" src="https://abs-0.twimg.com/emoji/v2/72x72/1f447.png"/> 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/f117eb450d384e38791f4d04201da4a9e7450e5eedc5784937cf42f54a079526.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/atoms_res/status/1788170041550307691" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            191
          </a>
          <a target="_blank" href="https://twitter.com/atoms_res/status/1788170041550307691"><p>6:32 AM • May 8, 2024</p></a>
        </div>
    
  </div> 
  </div><p>Recently, Kodo <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/kodohq/status/1787356908044914945">launched</a> a testnet on Taiko Hekla</p><h3 id="h-what-to-do" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What to do:</h3><p>• Request test tokens from the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://faucetlink.to/">faucet</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d46207f040cfe8f0939aa68297f7a1c505457d1df065e971b60a77de3c3e79b3.png" alt="" 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>• <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bridge.hekla.taiko.xyz/">Bridge</a> test $ETH to Hekla network</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/618eccc1d0e7d46ec34a10cc780138a4af57e790e892a16e3098763f6953abaa.png" alt="" 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>• Visit the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.kodo.exchange/swap">website</a> and connect your wallet</p><p>• Swap available test tokens</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/01df3c6addd33d7f0f33034db4070f74fb12413548b588493efe6be317f1d64f.png" alt="" 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>• Add liquidity</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8316b6f9a7110ac7969e11a35a1bcb80f5c728cd6afd830b1a7204fc63cdee20.png" alt="" 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>• Also, test the “Bribe” tab</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ccabc0d0795e560dabb18d0bbf553a064008b404bf7bdee7c90ce9f109a414ff.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/d9d8e1dc844a6ac5cdcac77ba861dec17af2902142b04f31543ec34374e0e52c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Bitcoin Runes]]></title>
            <link>https://paragraph.com/@atoms-research/bitcoin-runes</link>
            <guid>IMgTnZ2QchUbLbv0v8vw</guid>
            <pubDate>Fri, 10 May 2024 07:50:03 GMT</pubDate>
            <description><![CDATA[Bitcoin Runes mark a notable advancement in Bitcoin blockchain functionality, offering a fresh approach to generating fungible tokens. Crafted by Casey Rodarmor, the mastermind behind Bitcoin Ordinals, Bitcoin Runes aim for improved efficiency, resource conservation, and seamless integration with Bitcoin’s UTXO (Unspent Transaction Output) modelThe Birth of Bitcoin RunesIn April 2024, coinciding with a Bitcoin halving event, Bitcoin Runes were introduced to address the limitations of previous...]]></description>
            <content:encoded><![CDATA[<p>Bitcoin Runes mark a notable advancement in Bitcoin blockchain functionality, offering a fresh approach to generating fungible tokens. Crafted by Casey Rodarmor, the mastermind behind Bitcoin Ordinals, Bitcoin Runes aim for improved efficiency, resource conservation, and seamless integration with Bitcoin’s UTXO (Unspent Transaction Output) model</p><h3 id="h-the-birth-of-bitcoin-runes" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">The Birth of Bitcoin Runes</h3><p>In April 2024, coinciding with a Bitcoin halving event, Bitcoin Runes were introduced to address the limitations of previous token standards like BRC-20 on the Bitcoin blockchain. Earlier protocols faced criticism for inefficiency and imposing significant network load.</p><h3 id="h-how-bitcoin-runes-operate" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How Bitcoin Runes Operate</h3><p>Bitcoin Runes leverage the UTXO model of the Bitcoin blockchain, avoiding the generation of unspendable UTXOs that contribute to blockchain bloat. Tokens in the Runes system are issued and managed through a &apos;genesis&apos; UTXO, recording essential details like the token&apos;s name, symbol, and total supply. These tokens can be divided and transferred while retaining their fungibility.</p><h3 id="h-potential-uses-and-influence" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Potential Uses and Influence</h3><p>The advent of Bitcoin Runes offers diverse applications, particularly in creating and managing memecoins and other fungible tokens more efficiently on the Bitcoin network. Additionally, being compatible with the Lightning Network, Runes can foster new forms of decentralized finance (DeFi) on Bitcoin, potentially expanding the platform&apos;s user base.</p><h3 id="h-challenges-and-considerations" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Challenges and Considerations</h3><p>Despite their advantages, Bitcoin Runes may encounter challenges such as symbol squatting, akin to URL squatting on the internet, where individuals reserve desirable token symbols without actual usage, potentially leading to complications.</p><h3 id="h-runes-market-and-ecosystem" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Runes Market and Ecosystem</h3><p>Interacting with Runes requires specialized services as standard Bitcoin wallets do not display additional transaction information and their UI is not adapted to the protocol. To perform any operations, a specialized service is needed.</p><p>The most versatile option is <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.xverse.app/">Xverse</a>, available as a mobile app or browser extension, supporting multiple token standards on the Bitcoin network built on Runes, Ordinals, and Stacks protocols.</p><p>You can also consider <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://unisat.io/">UnisatWallet</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.okx.com/web3">OKX</a> wallet, as they support both Runes and tokens based on Ordinals.</p><p>To track new collections and create, mint, and transfer &quot;runes,&quot; you can use the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://luminex.io/runes/mint">Luminex</a> service. Simply connect a compatible wallet to access all essential operations.</p><p>Tokens issued can be listed for sale on specialized trading platforms:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://unisat.io/runes/market">UniSat</a>, once popular as one of the first trading services for Ordinals, now also supports tokens based on Runes.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.okx.com/web3/marketplace/runes">OKX Web3</a> is the trading platform of the eponymous cryptocurrency exchange, supporting both Runes and Inscriptions.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://magiceden.io/runes">MagicEden</a>, formerly the largest NFT marketplace in the Solana ecosystem, is now a cross-chain platform for NFT trading.</p><p>It&apos;s important to note that the Runes market is highly fragmented, so liquidity, trading volumes, and prices may differ across platforms. Before conducting any transactions, it&apos;s advisable to assess available offers on multiple platforms.</p><p><strong>Runes Dashboard</strong></p><p>**🔗 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/runes_is/runes">Dune</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c8ce235925d13f66421edd07716fdc9fde16cb822012818aa38476521a802f91.png" alt="" 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/c09481ace84a751d31b73bdde94b4f17b9aef701c71a0bf9958025d5ced3bdc5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-what-lies-ahead-for-runes" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What Lies Ahead for Runes?</h3><p>Rodarmor intends to implement direct trading between users in the near future. This could reduce reliance on centralized cryptocurrency exchanges and address the issue of Replace-By-Fee (RBF). RBF involves replacing a previous unconfirmed transaction with a new version containing a higher transaction fee, aiming to incentivize miners to prioritize transactions with higher fees.</p><p>Moreover, Rodarmor anticipates that with the approval of the OP_CAT Bitcoin Improvement Proposal (BIP), it will become feasible to bridge Runes tokens to Layer 2 networks. He predicts that this BIP will be introduced to Bitcoin within the next year. OP_CAT is an operation code (opcode) in the original Bitcoin script, where &quot;CAT&quot; stands for &quot;concatenate,&quot; allowing two elements in a script to be combined. Satoshi Nakamoto disabled this opcode to prevent DoS attacks.</p><hr><p><strong>✅ That’s all!</strong></p><p>🌐 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/atoms_research">FOLLOW OUR SOCIALS</a></p><p><strong>✨ Collect this entry showing your support to our team! More collects-more guides!</strong></p>]]></content:encoded>
            <author>atoms-research@newsletter.paragraph.com (Atoms Research)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/852d04f7b81f370396e38dc6d9609e90f0011b3a785dee5d0d9960537ea96661.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>