<?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>EtherChat</title>
        <link>https://paragraph.com/@etherchat</link>
        <description>https://etherchat.xyz</description>
        <lastBuildDate>Tue, 28 Apr 2026 18:13:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>EtherChat</title>
            <url>https://storage.googleapis.com/papyrus_images/fdc8573f34b66d0d173be5a771f49717e3e3bae04e8f4f7fd0e4a7e1f8b75ec2.png</url>
            <link>https://paragraph.com/@etherchat</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Ether Chat |
​​ The next-generation on-chain chat system ]]></title>
            <link>https://paragraph.com/@etherchat/ether-chat-the-next-generation-on-chain-chat-system</link>
            <guid>rCRz5L3VLMqfS73FqvBh</guid>
            <pubDate>Fri, 18 Feb 2022 05:29:00 GMT</pubDate>
            <description><![CDATA[OverviewThis is a system that communicates with each other in on-chain chat rooms. It has no centralized servers, no border restrictions, and no regional restrictions. Everyone can read and write in the decentralized chat roomChatYou can freely read and write resources in any chat room without any restrictions When you use it, you just need to connect the blockchain nodes and you can have the power to do everything you want Even human beings reach the interstellar ageThe data storage layer is...]]></description>
            <content:encoded><![CDATA[<h2 id="h-overview" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Overview</h2><blockquote><p>This is a system that communicates with each other in on-chain chat rooms. It has no centralized servers, no border restrictions, and no regional restrictions. Everyone can read and write in the decentralized chat room</p></blockquote><h3 id="h-chat" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Chat</h3><blockquote><p>You can freely read and write resources in any chat room without any restrictions</p><p>When you use it, you just need to connect the blockchain nodes and you can have the power to do everything you want</p><p>Even human beings reach the interstellar age</p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/db3a30477c48dae263e87644ba070155117a0b7bb095e1253889117849597959.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p>The data storage layer is all decentralized</p><p>It deploys a smart contract to store data, this is its code</p></blockquote><pre data-type="codeBlock" text="pragma solidity ^0.8.0;

contract EtherChat {
    uint256 public id;

    event Write(
        address indexed _token,
        address indexed _owner,
        string _content,
        uint256 _id
    );

    function write(address _address, string memory _content) public {
        _write(_address, _content);
    }

    function _write(address _address, string memory _content) internal {
        emit Write(_address, msg.sender, _content, id++);
    }
}
"><code><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">EtherChat</span> </span>{
    <span class="hljs-keyword">uint256</span> <span class="hljs-keyword">public</span> id;

    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">Write</span>(<span class="hljs-params">
        <span class="hljs-keyword">address</span> <span class="hljs-keyword">indexed</span> _token,
        <span class="hljs-keyword">address</span> <span class="hljs-keyword">indexed</span> _owner,
        <span class="hljs-keyword">string</span> _content,
        <span class="hljs-keyword">uint256</span> _id
    </span>)</span>;

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">write</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _address, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _content</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
        _write(_address, _content);
    }

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">_write</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _address, <span class="hljs-keyword">string</span> <span class="hljs-keyword">memory</span> _content</span>) <span class="hljs-title"><span class="hljs-keyword">internal</span></span> </span>{
        <span class="hljs-keyword">emit</span> Write(_address, <span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, _content, id<span class="hljs-operator">+</span><span class="hljs-operator">+</span>);
    }
}
</code></pre><blockquote><p>As you can see, its code goal is to use an event to store data and do nothing else</p><p>This will control the value of the gas, which will fluctuate from 21000 to infinity, the size of the gas fee will depend on the length of bytes in the blockchain that the string you store will occupy</p></blockquote><h3 id="h-name-and-image-support" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Name and image support</h3><blockquote><p>When the contract address of your chat room is in ERC20 or ERC721 format, it will automatically parse the name attribute in the contract as the name of the chat room</p><p>More special than ERC20, the contract of ERC721 will automatically resolve the TokeURI whose tokenId is 1 as the avatar of the chat room</p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5b1073823cb972190d2f05ef45517c2a0e018dc882f01a73066acd40b2be6dcc.png" alt="" 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-token-economy" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Token economy</h3><blockquote><p>Each chat room can be set up as an economy, and everyone who loves this group can participate in createLP, and then jointly construct trading pairs and tokens</p><p>You can now click the yellow createLP button to fill the reservoir with ETH</p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/99e461ff3512d4592696683107f833bafc86956111f7ab5689c8398308d16f91.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><br></blockquote><blockquote><p>When the reservoir is full, the createLP button will turn green, at this time you can click it and get a token reward</p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9ae904285fed181301443c20ec5ea6b6d4f154ba7b204ae6a04f36d3031599da.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p>It will create 10000000000 tokens</p><p>Tokens will be</p><p>15% to the liquidity pool 7% to whoever executes the yellow button createLP 3% as a handling fee to the platform 75% distributed to investors</p><p>ETH in the chatroom will be</p><p>97% will be given to the liquidity pool 3% will be given to the platform as a handling fee</p></blockquote><pre data-type="codeBlock" text="
        uint256 fee = (chatroomStatus[_chatroom].totalFund * 3) / 100;

        token.transfer(pair, (totalSupply * 15) / 100);
        token.transfer(msg.sender, (totalSupply * 7) / 100);
        token.transfer(owner(), (totalSupply * 3) / 100);

        payable(owner()).transfer(fee);
        uint256 pairAmount = chatroomStatus[_chatroom].totalFund - fee;
        weth.deposit{value: pairAmount}();
        weth.transfer(pair, pairAmount);
        IUniswapV2Pair(pair).mint(address(this));
"><code>
        <span class="hljs-keyword">uint256</span> fee <span class="hljs-operator">=</span> (chatroomStatus[_chatroom].totalFund <span class="hljs-operator">*</span> <span class="hljs-number">3</span>) <span class="hljs-operator">/</span> <span class="hljs-number">100</span>;

        token.<span class="hljs-built_in">transfer</span>(pair, (totalSupply <span class="hljs-operator">*</span> <span class="hljs-number">15</span>) <span class="hljs-operator">/</span> <span class="hljs-number">100</span>);
        token.<span class="hljs-built_in">transfer</span>(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>, (totalSupply <span class="hljs-operator">*</span> <span class="hljs-number">7</span>) <span class="hljs-operator">/</span> <span class="hljs-number">100</span>);
        token.<span class="hljs-built_in">transfer</span>(owner(), (totalSupply <span class="hljs-operator">*</span> <span class="hljs-number">3</span>) <span class="hljs-operator">/</span> <span class="hljs-number">100</span>);

        <span class="hljs-keyword">payable</span>(owner()).<span class="hljs-built_in">transfer</span>(fee);
        <span class="hljs-keyword">uint256</span> pairAmount <span class="hljs-operator">=</span> chatroomStatus[_chatroom].totalFund <span class="hljs-operator">-</span> fee;
        weth.deposit{<span class="hljs-built_in">value</span>: pairAmount}();
        weth.<span class="hljs-built_in">transfer</span>(pair, pairAmount);
        IUniswapV2Pair(pair).mint(<span class="hljs-keyword">address</span>(<span class="hljs-built_in">this</span>));
</code></pre><blockquote><p>Here is an example transaction <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://rinkeby.etherscan.io/tx/0xba080b8a3cbdd6dbe56173f8eb8bad3b4db650cc3823a68daf8ad867e456ad5b">https://rinkeby.etherscan.io/tx/0xba080b8a3cbdd6dbe56173f8eb8bad3b4db650cc3823a68daf8ad867e456ad5b</a></p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/395b964a25cd0ea906b6917594a92e7087e34675cb696268209ab5b3728fd743.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p>Now that the LP is successfully created, you can see the price. If you participate in the investment, you can see the yellow Claim button, click it and you will get the tokens returned to you</p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e0272cd1cece8ffeb8c6f6e8c479808e9b0bebcf3788669127fa8366be034e2a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p>For example Mike invested 1ETH Lucy invested 2ETH The total amount of tokens is 10000000000 The tokens distributed is 7500000000 Mike will get <em>7500000000**1/3 token Lucy will get 7500000000</em>2/3 token</p><p>Below is an example and code <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://rinkeby.etherscan.io/tx/0x1792b2e41a22eca8d26f3d2de4aa89d300645f3d7447604707d5105b11c1c0a7">https://rinkeby.etherscan.io/tx/0x6337763d86b086d037229142317ea4e7e5e066705f1ef9f69684319b4884ac3a</a></p></blockquote><pre data-type="codeBlock" text="
    function getClaimAmount(address _chatroom) public view returns (uint256) {
        uint256 amount;
        for (uint256 i = 0; i &lt; chatroomFund[_chatroom].length; i++) {
            if (chatroomFund[_chatroom][i].owner == msg.sender) {
                amount += chatroomFund[_chatroom][i].amount;
            }
        }
        uint256 claimAmount = (((chatroomStatus[_chatroom].token.totalSupply() *
            amount) / chatroomStatus[_chatroom].totalFund) * 75) / 100;
        uint256 contractLeftAmount = chatroomStatus[_chatroom].token.balanceOf(
            address(this)
        );
        if (contractLeftAmount &lt; claimAmount) {
            claimAmount = contractLeftAmount;
        }
        return claimAmount;
    }
"><code>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getClaimAmount</span>(<span class="hljs-params"><span class="hljs-keyword">address</span> _chatroom</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>) </span>{
        <span class="hljs-keyword">uint256</span> amount;
        <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> chatroomFund[_chatroom].<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-keyword">if</span> (chatroomFund[_chatroom][i].owner <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>) {
                amount <span class="hljs-operator">+</span><span class="hljs-operator">=</span> chatroomFund[_chatroom][i].amount;
            }
        }
        <span class="hljs-keyword">uint256</span> claimAmount <span class="hljs-operator">=</span> (((chatroomStatus[_chatroom].token.totalSupply() <span class="hljs-operator">*</span>
            amount) <span class="hljs-operator">/</span> chatroomStatus[_chatroom].totalFund) <span class="hljs-operator">*</span> <span class="hljs-number">75</span>) <span class="hljs-operator">/</span> <span class="hljs-number">100</span>;
        <span class="hljs-keyword">uint256</span> contractLeftAmount <span class="hljs-operator">=</span> chatroomStatus[_chatroom].token.balanceOf(
            <span class="hljs-keyword">address</span>(<span class="hljs-built_in">this</span>)
        );
        <span class="hljs-keyword">if</span> (contractLeftAmount <span class="hljs-operator">&#x3C;</span> claimAmount) {
            claimAmount <span class="hljs-operator">=</span> contractLeftAmount;
        }
        <span class="hljs-keyword">return</span> claimAmount;
    }
</code></pre><blockquote><p>You can click the green transaction button, it will jump to uniswap, you can trade and exchange</p></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/801b568875bb2717df0938a891b2140495fce02b1def23ff1ae2cb3325b9dac7.png" alt="" 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-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"></h3><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6ea1171388c5476390d3615579940f47d3f5431d2d947cc9f6957d44869ca610.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 id="h-finally" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Finally</h2><blockquote><p>Decentralized communication will be the only direction of this product. There is very little done here. This is just the beginning. If you like it, you can click on the website to use it.</p></blockquote><p>Website : <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://etherchat.xyz">https://etherchat.xyz</a></p><blockquote><p>Of course, this website is just a temporary storage point for us in the web2 world, and we can meet again in the era of interstellar communication</p></blockquote>]]></content:encoded>
            <author>etherchat@newsletter.paragraph.com (EtherChat)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/f8c42fca08081ef555cd01bcf6f4583250c43c7c05e07a96e51b037ae9962681.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>