<?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>piyo.eth</title>
        <link>https://paragraph.com/@piyo</link>
        <description>undefined</description>
        <lastBuildDate>Sun, 30 Aug 2026 07:55:36 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Oxford University Museum of Natural History]]></title>
            <link>https://paragraph.com/@piyo/oxford-university-museum-of-natural-history</link>
            <guid>KU48ljO0k8aR0QV0yTVM</guid>
            <pubDate>Fri, 08 Jul 2022 21:42:39 GMT</pubDate>
            <description><![CDATA[#travel]]></description>
            <content:encoded><![CDATA[<figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9870f4db4bb3e52d2debe9d5782048fc6d38f05025518ddedd47e7d696763d65.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>#travel</p>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[How to watch Ether balance changes - Hideyoshi Moriya - Medium]]></title>
            <link>https://paragraph.com/@piyo/how-to-watch-ether-balance-changes-hideyoshi-moriya-medium</link>
            <guid>RhLkJLTHJNgi3O0iK9Q8</guid>
            <pubDate>Thu, 12 May 2022 12:46:24 GMT</pubDate>
            <description><![CDATA[Testing import from mediumThe example code below listens to Ether balance changes.It gets Ether balance when a new block mined.Strictly speaking, a fork can be happened. So you will need to count confirmation numbers depending on your application.const ethers = require('ethers') const network = 'rinkeby' const provider = ethers.getDefaultProvider(network) const address = '0xF02c1c8e6114b1Dbe8937a39260b5b0a374432bB' // Listen Ether balance changes let lastBalance = ethers.constants.Zero provid...]]></description>
            <content:encoded><![CDATA[<p>Testing import from medium</p><ul><li><p>The example code below listens to Ether balance changes.</p></li><li><p>It gets Ether balance when a new block mined.</p></li><li><p>Strictly speaking, a fork can be happened. So you will need to count confirmation numbers depending on your application.</p></li></ul><pre data-type="codeBlock" text="const ethers = require(&apos;ethers&apos;)
const network = &apos;rinkeby&apos;
const provider = ethers.getDefaultProvider(network)
const address = &apos;0xF02c1c8e6114b1Dbe8937a39260b5b0a374432bB&apos;

// Listen Ether balance changes
let lastBalance = ethers.constants.Zero
provider.on(&apos;block&apos;, () =&gt; {
    provider.getBalance(address).then((balance) =&gt; {
        if (!balance.eq(lastBalance)) {
         lastBalance = balance
   // convert a currency unit from wei to ether
   const balanceInEth = ethers.utils.formatEther(balance)
   console.log(`balance: ${balanceInEth} ETH`)
        }
    })
})
"><code>const ethers <span class="hljs-operator">=</span> <span class="hljs-built_in">require</span>(<span class="hljs-string">'ethers'</span>)
const network <span class="hljs-operator">=</span> <span class="hljs-string">'rinkeby'</span>
const provider <span class="hljs-operator">=</span> ethers.getDefaultProvider(network)
const <span class="hljs-keyword">address</span> <span class="hljs-operator">=</span> <span class="hljs-string">'0xF02c1c8e6114b1Dbe8937a39260b5b0a374432bB'</span>

<span class="hljs-comment">// Listen Ether balance changes</span>
let lastBalance <span class="hljs-operator">=</span> ethers.constants.Zero
provider.on(<span class="hljs-string">'block'</span>, () <span class="hljs-operator">=</span><span class="hljs-operator">></span> {
    provider.getBalance(<span class="hljs-keyword">address</span>).then((balance) <span class="hljs-operator">=</span><span class="hljs-operator">></span> {
        <span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>balance.eq(lastBalance)) {
         lastBalance <span class="hljs-operator">=</span> balance
   <span class="hljs-comment">// convert a currency unit from wei to ether</span>
   const balanceInEth <span class="hljs-operator">=</span> ethers.utils.formatEther(balance)
   console.log(`balance: ${balanceInEth} ETH`)
        }
    })
})
</code></pre><h2 id="h-support" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Support</h2><p>If you find this article is helpful, it would be greatly appreciated if you could tip Ether to the address below. Thank you!</p><pre data-type="codeBlock" text="0x0089d53F703f7E0843953D48133f74cE247184c2
"><code></code></pre>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[Count.sol]]></title>
            <link>https://paragraph.com/@piyo/count-sol</link>
            <guid>wQ2XHLJkDKM265vuT3fo</guid>
            <pubDate>Tue, 10 May 2022 16:30:11 GMT</pubDate>
            <description><![CDATA[pragma solidity ^0.5.1; contract Count { address payable owner; uint public count; event DidCountUp(uint currentCount, address sender); event DidCountDown(uint currentCount, address sender); event DidAddValue(uint currentCount, uint value, address sender); event DidSubValue(uint currentCount, uint value, address sender); constructor () public { owner = msg.sender; } function getCount() public view returns(uint) { return count; } function countUp() public { count += 1; emit DidCountUp(count, m...]]></description>
            <content:encoded><![CDATA[<pre data-type="codeBlock" text="pragma solidity ^0.5.1;

contract Count {
    address payable owner;
    uint public count;
    event DidCountUp(uint currentCount, address sender);
    event DidCountDown(uint currentCount, address sender);
    event DidAddValue(uint currentCount, uint value, address sender);
    event DidSubValue(uint currentCount, uint value, address sender);
    
    constructor ()
        public
    {
        owner = msg.sender;
    }
    
    function getCount()
        public
        view
        returns(uint)
    {
        return count;
    }
    
    function countUp()
        public
    {
        count += 1;
        emit DidCountUp(count, msg.sender);
    }
    
    function countDown()
        public
    {
        count -= 1;
        emit DidCountDown(count, msg.sender);
    }
    
    function addCount(uint val) 
        public
    {
        count += val;
        emit DidAddValue(count, val, msg.sender);
    }
    
    function subCount(uint val)
        public
    {
        count -= val;
        emit DidSubValue(count, val, msg.sender);
    }
    
    function destroy() 
        public
    {
        require(msg.sender == owner);
        selfdestruct(owner);
    }

}
"><code><span class="hljs-meta"><span class="hljs-keyword">pragma</span> <span class="hljs-keyword">solidity</span> ^0.5.1;</span>

<span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Count</span> </span>{
    <span class="hljs-keyword">address</span> <span class="hljs-keyword">payable</span> owner;
    <span class="hljs-keyword">uint</span> <span class="hljs-keyword">public</span> count;
    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">DidCountUp</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> currentCount, <span class="hljs-keyword">address</span> sender</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">DidCountDown</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> currentCount, <span class="hljs-keyword">address</span> sender</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">DidAddValue</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> currentCount, <span class="hljs-keyword">uint</span> value, <span class="hljs-keyword">address</span> sender</span>)</span>;
    <span class="hljs-function"><span class="hljs-keyword">event</span> <span class="hljs-title">DidSubValue</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> currentCount, <span class="hljs-keyword">uint</span> value, <span class="hljs-keyword">address</span> sender</span>)</span>;
    
    <span class="hljs-function"><span class="hljs-keyword">constructor</span> (<span class="hljs-params"></span>)
        <span class="hljs-title"><span class="hljs-keyword">public</span></span>
    </span>{
        owner <span class="hljs-operator">=</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">getCount</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>)
    </span>{
        <span class="hljs-keyword">return</span> count;
    }
    
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">countUp</span>(<span class="hljs-params"></span>)
        <span class="hljs-title"><span class="hljs-keyword">public</span></span>
    </span>{
        count <span class="hljs-operator">+</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>;
        <span class="hljs-keyword">emit</span> DidCountUp(count, <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">countDown</span>(<span class="hljs-params"></span>)
        <span class="hljs-title"><span class="hljs-keyword">public</span></span>
    </span>{
        count <span class="hljs-operator">-</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>;
        <span class="hljs-keyword">emit</span> DidCountDown(count, <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">addCount</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> val</span>) 
        <span class="hljs-title"><span class="hljs-keyword">public</span></span>
    </span>{
        count <span class="hljs-operator">+</span><span class="hljs-operator">=</span> val;
        <span class="hljs-keyword">emit</span> DidAddValue(count, val, <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">subCount</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> val</span>)
        <span class="hljs-title"><span class="hljs-keyword">public</span></span>
    </span>{
        count <span class="hljs-operator">-</span><span class="hljs-operator">=</span> val;
        <span class="hljs-keyword">emit</span> DidSubValue(count, val, <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">destroy</span>(<span class="hljs-params"></span>) 
        <span class="hljs-title"><span class="hljs-keyword">public</span></span>
    </span>{
        <span class="hljs-built_in">require</span>(<span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span> <span class="hljs-operator">=</span><span class="hljs-operator">=</span> owner);
        <span class="hljs-built_in">selfdestruct</span>(owner);
    }

}
</code></pre>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[作業 BGM]]></title>
            <link>https://paragraph.com/@piyo/bgm</link>
            <guid>muh4b779m3dkcup9cPcG</guid>
            <pubDate>Tue, 10 May 2022 16:24:15 GMT</pubDate>
            <description><![CDATA[作業 BGM リストだよ！]]></description>
            <content:encoded><![CDATA[<p>作業 BGM リストだよ！</p><div data-type="youtube" videoId="eCQZevUHlj8">
      <div class="youtube-player" data-id="eCQZevUHlj8" style="background-image: url('https://i.ytimg.com/vi/eCQZevUHlj8/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=eCQZevUHlj8">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="t67VbQhh9_A">
      <div class="youtube-player" data-id="t67VbQhh9_A" style="background-image: url('https://i.ytimg.com/vi/t67VbQhh9_A/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=t67VbQhh9_A">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="zKBCSBfP9TI">
      <div class="youtube-player" data-id="zKBCSBfP9TI" style="background-image: url('https://i.ytimg.com/vi/zKBCSBfP9TI/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=zKBCSBfP9TI">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="gD2mhJ3ByGQ">
      <div class="youtube-player" data-id="gD2mhJ3ByGQ" style="background-image: url('https://i.ytimg.com/vi/gD2mhJ3ByGQ/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=gD2mhJ3ByGQ">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="OS45uTF_8P0">
      <div class="youtube-player" data-id="OS45uTF_8P0" style="background-image: url('https://i.ytimg.com/vi/OS45uTF_8P0/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=OS45uTF_8P0">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="lcz89e42XEM">
      <div class="youtube-player" data-id="lcz89e42XEM" style="background-image: url('https://i.ytimg.com/vi/lcz89e42XEM/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=lcz89e42XEM">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="kw8FiEUgSII">
      <div class="youtube-player" data-id="kw8FiEUgSII" style="background-image: url('https://i.ytimg.com/vi/kw8FiEUgSII/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=kw8FiEUgSII">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="-qoVeoG8XuU">
      <div class="youtube-player" data-id="-qoVeoG8XuU" style="background-image: url('https://i.ytimg.com/vi/-qoVeoG8XuU/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=-qoVeoG8XuU">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><div data-type="youtube" videoId="WVukps1Tjxk">
      <div class="youtube-player" data-id="WVukps1Tjxk" style="background-image: url('https://i.ytimg.com/vi/WVukps1Tjxk/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=WVukps1Tjxk">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[Web3 smart-lock]]></title>
            <link>https://paragraph.com/@piyo/web3-smart-lock</link>
            <guid>fHNAOUfV5HQbnp7av9jj</guid>
            <pubDate>Tue, 10 May 2022 16:08:15 GMT</pubDate>
            <description><![CDATA[wΞlock is a Web3 smart lock system that enables authentication by smart contracts. For example, you can easily create a physical space that only those with a particular NFT or ENS can enter. Web: https://w3lock.io Twitter: https://twitter.com/w3lock]]></description>
            <content:encoded><![CDATA[<div data-type="youtube" videoId="qENaHXQ6GqA">
      <div class="youtube-player" data-id="qENaHXQ6GqA" style="background-image: url('https://i.ytimg.com/vi/qENaHXQ6GqA/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=qENaHXQ6GqA">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><p>wΞlock is a Web3 smart lock system that enables authentication by smart contracts. For example, you can easily create a physical space that only those with a particular NFT or ENS can enter.</p><p>Web: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://w3lock.io">https://w3lock.io</a></p><p>Twitter: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbU9nVVhwcE1CYnAyOWpmOVJPU1pUbTAxZmNOUXxBQ3Jtc0tsZWxCaTNLMlpCX2lIbW5lRUVvYm1CdTZfMnE1M2VxWjFBUlNRbE1uaUpsNVF5UktDMUFqNkZSZ1BjaEZNNW5LVzBEeWpaY3ozbzFDNVpjM2NkQk9WR25rc0tIY1RyTlllWFdJZEY2dHRWSS1MMWpYaw&amp;q=https%3A%2F%2Ftwitter.com%2Fw3lock&amp;v=qENaHXQ6GqA">https://twitter.com/w3lock</a></p>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[chibi]]></title>
            <link>https://paragraph.com/@piyo/chibi</link>
            <guid>oTSwDotzaDUKxZlPvCRq</guid>
            <pubDate>Tue, 10 May 2022 16:04:31 GMT</pubDate>
            <description><![CDATA[chibi is my lovely dog.]]></description>
            <content:encoded><![CDATA[<p>chibi is my lovely dog.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/dadf2e7dbfb900afadaa1e8b41f7ef4aaf8b9e3775a7c15f8e518b36d84101b9.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[Pixereum]]></title>
            <link>https://paragraph.com/@piyo/pixereum</link>
            <guid>cprxDWhyrMLV88zwujoQ</guid>
            <pubDate>Tue, 10 May 2022 15:53:57 GMT</pubDate>
            <description><![CDATA[Pixereum is a collaborative NFT Art Project since 2017. In 2017, Hideyoshi Moriya began an experimental crypto art project. Each pixel was available in exchange for ETH on his website https://pixereum.io at launch. Every pixel stores color and message on the Ethereum blockchain. New UI for ERC-721 Wrapped Pixereum: https://v2.pixereum.io OpenSea: https://opensea.io/collection/wrapped-pixereum]]></description>
            <content:encoded><![CDATA[<p>Pixereum is a collaborative NFT Art Project since 2017.</p><p>In 2017, Hideyoshi Moriya began an experimental crypto art project. Each pixel was available in exchange for ETH on his website <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pixereum.io/">https://pixereum.io</a> at launch. Every pixel stores color and message on the Ethereum blockchain.</p><p>New UI for ERC-721 Wrapped Pixereum: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://v2.pixereum.io/">https://v2.pixereum.io</a></p><p>OpenSea: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://opensea.io/collection/wrapped-pixereum">https://opensea.io/collection/wrapped-pixereum</a></p>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/44bfba3fce5f37dfa9d11dc9e064c2caf99aad9f80cdb7740d79aa68dd352407.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Web3 services]]></title>
            <link>https://paragraph.com/@piyo/web3-services</link>
            <guid>S4ZkMjbUEIGBHL5zPfX6</guid>
            <pubDate>Tue, 10 May 2022 15:49:56 GMT</pubDate>
            <description><![CDATA[https://ens.domains/ https://mirror.xyz/ https://debank.com/ https://uniswap.org/]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.domains/">https://ens.domains/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/">https://mirror.xyz/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://debank.com/">https://debank.com/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://uniswap.org/">https://uniswap.org/</a></p>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
        <item>
            <title><![CDATA[piyo!]]></title>
            <link>https://paragraph.com/@piyo/piyo</link>
            <guid>7hBlkwHrPgBto6xDwx62</guid>
            <pubDate>Sat, 11 Dec 2021 14:48:43 GMT</pubDate>
            <description><![CDATA[piyopiyo!]]></description>
            <content:encoded><![CDATA[<p>piyopiyo!</p>]]></content:encoded>
            <author>piyo@newsletter.paragraph.com (piyo.eth)</author>
        </item>
    </channel>
</rss>