<?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>StartMoon</title>
        <link>https://paragraph.com/@startmoon</link>
        <description>The man chosen by the moon</description>
        <lastBuildDate>Tue, 25 Aug 2026 20:48:42 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>StartMoon</title>
            <url>https://storage.googleapis.com/papyrus_images/821b2c21cbd78813d8b5522bb2978d0bf437e85d575f02d0183bd63c0dfcb479.png</url>
            <link>https://paragraph.com/@startmoon</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Beware of those who use Etherscan to swindle]]></title>
            <link>https://paragraph.com/@startmoon/beware-of-those-who-use-etherscan-to-swindle</link>
            <guid>m9C8RIHYXKgMb7TvU7ov</guid>
            <pubDate>Tue, 08 Mar 2022 12:51:13 GMT</pubDate>
            <description><![CDATA[Blockchain indexing services rely on contract events to help archive data and provide us with a record of transactions in a nice user interface, commonly referred to as a "block explorer", such as Etherscan. But malicious contracts can appear to be extremely "normal" and yet taint these events, tricking block explorers into giving unsuspecting users misleading information about the origin of the tokens. For example, a malicious user could deploy a simple ERC20 contract and "airdrop" tokens to...]]></description>
            <content:encoded><![CDATA[<p>Blockchain indexing services rely on contract events to help archive data and provide us with a record of transactions in a nice user interface, commonly referred to as a &quot;block explorer&quot;, such as Etherscan. But malicious contracts can appear to be extremely &quot;normal&quot; and yet taint these events, tricking block explorers into giving unsuspecting users misleading information about the origin of the tokens.</p><p>For example, a malicious user could deploy a simple ERC20 contract and &quot;airdrop&quot; tokens to a group of users, creating a healthy-looking liquidity pool on an automated market maker, waiting for users to buy or sell tokens based on false propaganda, believing this Tokens are part of a known developer/entity.</p><h3 id="h-break-down" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">break down</h3><p>An ERC20 token (which is a common standard for token interfaces) is a collection of properties, functions, inputs, outputs, and events of a contract. As long as our contracts have the correct functional characteristics, we can use custom logic in those functions - even those that provide incorrect data.</p><p>For example, if a contract deployer sends a token, we can have some/all block explorers show a different address to the end user (in some views). The assumptions are as follows;</p><p>Contract deployers are malicious and want to create some hype for their tokens. The token has some liquidity in AMM (like Uniswap) for users to buy/sell, and the main liquidity provider positions belong to the team behind the token. Many users know the sender, not some random address. It&apos;s not just an ERC20 problem...Tainted data can be inserted into any token standard event like NFT (ERC721, ERC1155) to confuse users and potential investors into thinking the project has a specific stakeholder/ Influencers, when in fact they are not.</p><p>This issue isn&apos;t &quot;new&quot;, but we wrote this article to highlight what&apos;s going on and what users should do before &quot;copying&quot; a &quot;legitimate-looking&quot; item.</p><p>When a block explorer sees an event emitted by a transaction, they record it in their off-chain database and build relationships with other data so they can build a nice graph of the transaction relationships in their UI displayed to end users.</p><h3 id="h-proof-of-concept" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">proof of concept</h3><p>We&apos;re going to deploy a proof-of-concept contract that uses an older version of Solidity, while also proving that it has no issues with any Solidity version or anything in Ethereum, it&apos;s a trust issue from an off-chain application trust contract. In general, inherited trust in events is &quot;correct&quot; and is a way for a contract to provide available data to off-chain programs for indexing.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/89a279d7bf45a9072e33583f57b8ff2fc92c24a46a74ecf9d225e2fec8ecba89.webp" alt="" 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 contract above (located at 0x3afe99bd92b1aed3237196b26743681766d4940e), we modified the logic to change the sender address in the Transfer event to the address marked &quot;OpenSea: Wallet&quot; on popular block explorers, provided we (the one who created the contract) Send tokens.</p><p>What it does is that when the block explorer indexes the event, it sees from the Transfer event that the address 0x5b32…1073 sent the token instead of the actual originator 0x11b6…04C9, which could cause the method to be badly exploited by actors to induce users to believe that;</p><p>A popular figure has a vested interest in the token A popular figure is &quot;unloading&quot; a lot of coins The token is legal because on the block explorer it shows a known entity &quot;interacting&quot; with the token contract Let&apos;s call transfer() from the contract deployer address and see what the block explorer has indexed. We just moved coins from my address (0x11b6...04C9) to a destination address (0x4bbe...1520).</p>]]></content:encoded>
            <author>startmoon@newsletter.paragraph.com (StartMoon)</author>
        </item>
    </channel>
</rss>