<?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>B+</title>
        <link>https://paragraph.com/@b-2</link>
        <description>undefined</description>
        <lastBuildDate>Thu, 23 Jul 2026 08:39:11 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>B+</title>
            <url>https://storage.googleapis.com/papyrus_images/1e861b80aaa462c2a1dc66a2824d50a10fea96a9a8cc55078cfecb574e339d13.png</url>
            <link>https://paragraph.com/@b-2</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[从关税战看川普的国家级PUA策略：操控世界的心理战术]]></title>
            <link>https://paragraph.com/@b-2/pua</link>
            <guid>TXVtmjriBUVpR0Hh24FJ</guid>
            <pubDate>Thu, 10 Apr 2025 09:01:31 GMT</pubDate>
            <description><![CDATA[摘要2025年4月，川普再次突然宣布对中国商品加征125%关税，并同时给予其他75个国家“暂停征税+友好协商”的特权。这场看似贸易政策的“关税战”，实质上暴露出一种深层的操控模式：国家级PUA。本文将以此次关税战为例，剖析川普如何运用典型PUA手法——情绪操控、间歇性奖赏、羞辱式驯服与信任断裂——对待他国，从而实现外交主导与心理压制。一、从个人操控到国家行为：当PUA跃迁为国际战略PUA，原指在亲密关系中以“情绪轰炸 - 贬低打击 - 奖赏间歇 - 现实扭曲 - 社交隔离”为手段的心理操控技术。在川普的对外策略中，这一套结构被完美复制进了国家行为模型。 以本次关税战为例：前期对中国保持“合作信号”，称中美贸易可控、两国有合作空间；突然宣布125%关税，引爆市场与政治恐慌；紧接着宣布对其他国家“90天关税减免+暂停对抗”——制造“选择性亲密”；最后宣称“中国必须明白不能再占美国便宜”，将所有责任归咎于对方。这套行为路径，已经不是传统的经济制裁或谈判战术，而是一种深度“情绪-节奏-权力-依赖”博弈结构。二、国家级PUA的五个典型阶段2. 贬情感轰炸（Love Bombing）- 通过...]]></description>
            <content:encoded><![CDATA[<h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">摘要</h3><p>2025年4月，川普再次突然宣布对中国商品加征125%关税，并同时给予其他75个国家“暂停征税+友好协商”的特权。这场看似贸易政策的“关税战”，实质上暴露出一种深层的操控模式：<strong>国家级PUA</strong>。本文将以此次关税战为例，剖析川普如何运用典型PUA手法——情绪操控、间歇性奖赏、羞辱式驯服与信任断裂——对待他国，从而实现外交主导与心理压制。</p><hr><h3 id="h-pua" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">一、从个人操控到国家行为：当PUA跃迁为国际战略</h3><p>PUA，原指在亲密关系中以“情绪轰炸 - 贬低打击 - 奖赏间歇 - 现实扭曲 - 社交隔离”为手段的心理操控技术。在川普的对外策略中，这一套结构被完美复制进了国家行为模型。</p><p>以本次关税战为例：</p><ul><li><p>前期对中国保持“合作信号”，称中美贸易可控、两国有合作空间；</p></li><li><p>突然宣布125%关税，引爆市场与政治恐慌；</p></li><li><p>紧接着宣布对其他国家“90天关税减免+暂停对抗”——制造“选择性亲密”；</p></li><li><p>最后宣称“中国必须明白不能再占美国便宜”，将所有责任归咎于对方。</p></li></ul><p>这套行为路径，已经不是传统的经济制裁或谈判战术，而是一种<strong>深度“情绪-节奏-权力-依赖”博弈结构</strong>。</p><hr><h3 id="h-pua" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">二、国家级PUA的五个典型阶段</h3><p><strong>2. 贬情感轰炸（Love Bombing）- 通过对他国施加情绪性信号，使其产生希望和依附。</strong></p><p>• “我们愿意谈，我们是朋友”</p><p>• “我们和75国都可以好好合作”</p><p>• 向部分国家示好（如日本、印度、以色列），展示“我懂你，我要和你做大交易”；</p><p>• 对中国曾经也释放合作意愿（“我和习是好朋友”）；</p><p>• 拉拢、承诺、给予表面荣誉（如G7、对韩免税等）；</p><p>这让很多国家“上钩”：</p><blockquote><p><em>“或许我们只要顺从他，就能保住我们的经济/安全利益。”</em></p></blockquote><p><strong>2. 贬低打击（Devaluation）- 制造焦虑与不稳定</strong></p><p>• 突然性地暴力加税，单边行动羞辱式惩罚，造成对方国家“惊愕 + 自我怀疑”，不得不启动被动防御。</p><p>• 公开羞辱盟友（“北约白吃饭”、“欧盟更坏 than China”）；</p><p>• 对中国从友好态度瞬间转为“全方位打压”；</p><blockquote><p>受控者陷入困惑：我们到底做错了什么？他明明前几天还说我们很好……</p></blockquote><p><strong>3. 奖赏间歇（Intermittent Reinforcement）</strong></p><p>• 对中国突然暂停加税，再突然加税，再暂停……</p><p>• 对墨西哥威胁后再撤销制裁，对欧盟发出警告又不执行；</p><p>• 对其他向他低头的国家实行“90天关税减免+暂停对抗”</p><p>• 不断上演“打一下 → 哄一下”的反复循环。</p><p>这是一种<strong>高度情绪操控机制</strong>，让对手国家在反复震荡中失去战略判断，<strong>只能跟着他的节奏反应，而不是主动制定策略。</strong></p><p><strong>4. 现实扭曲（Gaslighting）</strong></p><p>反复强调“美国是被占便宜的”“中国操纵汇率”，将问题责任转移、历史扭曲，让对方陷入“我们是不是确实做错了”的自我攻击中。</p><p>• 骂加拿大软弱却单边撕毁协议；</p><p>• 明明全球供应链问题是美国推动去全球化造成，却反复说“他们在欺骗我们”。</p><blockquote><p>操控的核心是：让对手国家<strong>开始怀疑自己的判断，甚至怀疑自己是不是错了。</strong></p></blockquote><p><strong>5. 结构隔离（Isolation）</strong></p><p>• 通过拉拢特定国家、同时对中国施压，制造“被孤立感”；</p><p>• 撕裂多边机制，让所有国家必须与他一对一“接受Deal”。</p><p>• 拆解WTO、孤立WHO、退出巴黎协定；</p><p>• 对盟友强加制裁，让其与中国、日本、俄罗斯、伊朗等国家陷入“选边站”困境；</p><p>• 美国作为旧秩序的中心，<strong>反过来制造所有国家与其的依附性焦虑</strong>。</p><p><strong>被隔离的不是关系，而是</strong>判断力、自信与自我路径构建能力。</p><p>他不是对一个国家搞PUA，而是对整个“国际关系系统”施行结构化控制：</p><p>你会发现：<strong>全球国家变成了一个个“被PUA后的前伴侣”，逐渐失去独立判断、期待他的下一步指令、焦虑又上瘾。</strong></p><hr><p>在这样的五阶段操控之下，不同国家做出了不同反应：</p><p>有些国家选择暂时服从，心想“只要暂时顺着他，或许就能避免被针对”； 有些国家陷入情绪波动，不断试图“解读”川普的信号； 甚至还有一些国家在内外交困下，真的开始怀疑“是不是我们做错了？”</p><p>这种心理机制和个体在PUA关系中的反应何其相似。</p><p>但问题来了：这样一套操控式的国家战略，真的有效吗？</p><h3 id="h-vs" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">三、短效控制 vs 长期失控：这种策略有效吗？</h3><p><strong>短期效用：</strong></p><ul><li><p>多数国家短期内确实退让，市场被其推文节奏操控；</p></li><li><p>舆论视野中，他塑造了“唯一能出手者”形象；</p></li><li><p>一些中间国家甚至开始寻求“川普式Deal”以保自身利益。</p></li></ul><p><strong>长期代价：</strong></p><ul><li><p>多边信任结构被破坏，越来越多国家寻求“去美化”路径；</p></li><li><p>中国等对手国家加速技术脱钩、美元替代、芯片国产化——形成战略性“断联”；</p></li><li><p>美国自身盟友开始集体去风险化，形成对抗其不稳定性的微区联盟。</p></li></ul><blockquote><p>PUA可以控制一个人一时，却无法控制一群人一世。</p></blockquote><hr><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">四、结语：关税战背后的心理剧场</h3><p>2025年的这场关税风暴不是简单的经济行为，而是一次国家间的心理权力实验。川普不再扮演谈判者，而是操盘者；不再是制度派代表，而是<strong>叙事与情绪结构的塑形者</strong>。</p><p>真正值得警惕的不是125%的税率，而是<strong>这类非制度性、非协商型的权力滥用模式</strong>，正在成为未来政治中的常态选项。</p><p>我们应当学习的不只是贸易战本身，而是背后“操控结构”的心理密码与治理结构缺口。</p><hr><h3 id="h-pua" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">关键词：关税战、国家PUA、川普、操控博弈、心理战术、国际秩序、外交节奏、结构失衡</h3>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/c47868afca6a4438ab671da87563ba25468fd12e5ff9bc5af473e0539485e92f.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[理解ERC20中的decimals]]></title>
            <link>https://paragraph.com/@b-2/erc20-decimals</link>
            <guid>Kl9XJk6bkkafASDkMIHo</guid>
            <pubDate>Tue, 11 Apr 2023 11:04:29 GMT</pubDate>
            <description><![CDATA[decimals 本身是小数的意思，在区块链的ERC20的智能合约里边，也存在一个只读的decimals的方法。这个方法一般返回的是一个小于18的整数。为什么需要这个方法，他设计的初衷是什么，以及如何运用是这篇文章将要探讨的主题 他的作用是能将token分成任意小份。假设有一个Token叫PAI, 小明有3个PAI，想转账1.5个PAI给小红，自己留1.5个。这样的操作在solidity语言中是不被支持的。因为solidity只支持整数，所以你就只能转1或则2，不能转1.5个token 而ERC20里边定义decimals就是为了解决这一问题。如上边例子，如果PAI想要支持转账小数位后1位，那么他会将decimal就可以设置为1，那么余额的30就代表有3个PAI。这种情况下，小明可以转15给小红，也就实现了转1.5个PAI token现实例子：在Ethereum里，USDT的decimals是6，也就是说USDT支持最多小数点后六位的转账我们也找到了有6位数小数点的转账 https://etherscan.io/tx/0x543c3e23073b339d3aa17a252b275...]]></description>
            <content:encoded><![CDATA[<p>decimals 本身是小数的意思，在区块链的ERC20的智能合约里边，也存在一个只读的decimals的方法。这个方法一般返回的是一个小于18的整数。为什么需要这个方法，他设计的初衷是什么，以及如何运用是这篇文章将要探讨的主题</p><p>他的作用是能将token分成任意小份。假设有一个Token叫PAI, 小明有3个PAI，想转账1.5个PAI给小红，自己留1.5个。这样的操作在solidity语言中是不被支持的。因为solidity只支持整数，所以你就只能转1或则2，不能转1.5个token</p><p>而ERC20里边定义decimals就是为了解决这一问题。如上边例子，如果PAI想要支持转账小数位后1位，那么他会将decimal就可以设置为1，那么余额的30就代表有3个PAI。这种情况下，小明可以转15给小红，也就实现了转1.5个PAI token</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">现实例子：</h3><p>在Ethereum里，USDT的decimals是6，也就是说USDT支持最多小数点后六位的转账</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/06df986d6cd84ff6644196a4eb46c7a025515337c27caf0f828305def3d0dfec.png" alt="" 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>我们也找到了有6位数小数点的转账</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://etherscan.io/tx/0x543c3e23073b339d3aa17a252b275b57ba158542d1997928c3cd259023506688">https://etherscan.io/tx/0x543c3e23073b339d3aa17a252b275b57ba158542d1997928c3cd259023506688</a></p><p>在这笔转账中，转的token是213.778057个USDT</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b74c0dee1f31f10ad77f639888f186b40a2f245686431e1d6ffa80410857fecd.png" alt="" 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>而我们查看转账的log会发现，这笔钱是以213778057转入的</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3152ca4a3a6d4d695db269b275794697c9e4314af6d8a4675fbcc6378c99ea47.png" alt="" 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>如果这个ERC20的智能合约接受的value是这样的格式，那当我调用ERC20 smart contract的transfer方法的时候，我如何知道并把我想要转账的金额呢，下边的代码可以帮你解决这个问题：</p><pre data-type="codeBlock" text="import ethers from &apos;ethers&apos;;

const transferAmount = 2.12;
const decimals = await ERC20.decimals(); // 6
const value = ethers.utils.parseUnits(transferAmount, decimals); // 2120000

// when want to convert the transfer value to the token amount:
ethers.utils.formatUnits(value, decimals) // 2.12
"><code><span class="hljs-keyword">import</span> <span class="hljs-title">ethers</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'ethers'</span>;

const transferAmount <span class="hljs-operator">=</span> <span class="hljs-number">2.12</span>;
const decimals <span class="hljs-operator">=</span> await ERC20.decimals(); <span class="hljs-comment">// 6</span>
const value <span class="hljs-operator">=</span> ethers.utils.parseUnits(transferAmount, decimals); <span class="hljs-comment">// 2120000</span>

<span class="hljs-comment">// when want to convert the transfer value to the token amount:</span>
ethers.utils.formatUnits(value, decimals) <span class="hljs-comment">// 2.12</span>
</code></pre>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
        </item>
        <item>
            <title><![CDATA[ERC4337: Account Creation]]></title>
            <link>https://paragraph.com/@b-2/erc4337-account-creation-2</link>
            <guid>0HTHwCwNLc9BLlQfS3IL</guid>
            <pubDate>Wed, 22 Mar 2023 10:01:34 GMT</pubDate>
            <description><![CDATA[AA (Abstract Account) accounts differ from traditional crypto wallet accounts as they separate the account from the signer. Therefore, the wallet address is no longer the signer&apos;s address but rather a distinct account address, which is a smart contract that needs to be deployed on the blockchain to be utilized. However, ERC4337 provides a standard that enables the account address to be obtained prior to the account contract deployment. This article aims to provide a detailed explanation ...]]></description>
            <content:encoded><![CDATA[<p>AA (Abstract Account) accounts differ from traditional crypto wallet accounts as they separate the account from the signer. Therefore, the wallet address is no longer the signer&apos;s address but rather a distinct account address, which is a smart contract that needs to be deployed on the blockchain to be utilized.</p><p>However, ERC4337 provides a standard that enables the account address to be obtained prior to the account contract deployment. This article aims to provide a detailed explanation of the creation and deployment process of ERC 4337 accounts.</p><h3 id="h-account-creation" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Account Creation</h3><p>Creating an account involves obtaining an account address, which is achieved through the interaction of several modules:</p><p><strong>The Account Factory</strong> is responsible for creating accounts. In order to ensure the predictability of creating account addresses, the factory will use the CREATE2 method for creation in the future.</p><p><strong>Example:</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/459f60d3aa26efc4090cc96efd5125fabd6984bfcef20cac2f199c8880e56bf5.png" alt="" 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>Unfortunately, the creation process typically does not involve a direct call to the factory. It normally requires the following steps:</p><ul><li><p><strong>getAccountInitCode</strong> → Connect to the account factory using the factory&apos;s address and then generate the call data which combines the <strong>factory address</strong> and <strong>call data</strong> in that factory to create the account</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c74fb62d6c9e8d4551eb431b8f84773952fed8512a255fe1277a497c94a07619.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Call <strong>EntryPoint → getSenderAddress</strong>，bypassing the <strong>initCode</strong> which was generated from the previous step.</p><p>Under the hood, <strong>getSenderAddress</strong> would parse the <strong>initCode,</strong> then get the <strong>factory address</strong> and <strong>callData</strong>， then Fire the low-level <strong>call</strong> method to execute account creation and obtain the corresponding address.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/df04be66b3aa18fc3c739e5eb64e3fb32fb097541a6bf99cfe3596c84b7a4c93.png" alt="" 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-account-deployment" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Account Deployment</h3><p>Account deployment is completed by invoking the <strong>handleOps</strong> function of <strong>EntryPoint</strong>, which serves as the entry point for all transactions. (The difference between account deployment and other transactions is that the UserOperation submitted during account deployment includes the account&apos;s <strong>initCode</strong>.)</p><p>Here is an example of a UserOperation submitted during account deployment:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/732a3421e4e3b6a4970221562dcb83f5ae79bcf805e1da410a11e19f69bf185b.png" alt="" 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>b-2@newsletter.paragraph.com (B+)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/37eae52bcbf8f15906a8f46c5f34f9988b5ceda601ce8c8f188a4c30966d49aa.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[中文：ERC4337 详解之：Account Creation]]></title>
            <link>https://paragraph.com/@b-2/erc4337-account-creation</link>
            <guid>ZOUqQuu0Vc14vuACtwDK</guid>
            <pubDate>Wed, 22 Mar 2023 09:13:28 GMT</pubDate>
            <description><![CDATA[与传统意义上的钱包账户不同， AA账户本身实现了账户和签名器的分离，所以钱包地址不再是我们理解的签名器的地址，而是一个专门的账户地址，而且值得注意的是，这个账户地址因为是一个智能合约，所以他需要被部署到区块链上才能使用。但幸运的是，ERC4337定义了标准，让账户地址在账户只能合约部署之前就能得到。 这篇文章讲详细解释ERC 4337账户的创建以及部署：账户创建账户的创的目的是得到一个账户地址。整个过程需要一下模块的交互： 账户工厂：账户工厂的作用是用来创建账户的，但往往创建过程不是直接的账户工厂的调用。账户工厂未来保证创建账户地址的可预测性，会使用CREATE2方法来创建 Example：他需要一下步骤来完成：getAccountInitCode：通过链接账户得到账户工厂的address，以及账户工厂账户创建的callData，把这两个数据组合到一起得到账户initCode调用EntryPoint → getSenderAddress，传入initCode，getSenderAddress内部会解析这个initCode，并且解析工厂合约的地址和callData，用call方法来...]]></description>
            <content:encoded><![CDATA[<p>与传统意义上的钱包账户不同， AA账户本身实现了账户和签名器的分离，所以钱包地址不再是我们理解的签名器的地址，而是一个专门的账户地址，而且值得注意的是，这个账户地址因为是一个智能合约，所以他需要被部署到区块链上才能使用。但幸运的是，ERC4337定义了标准，让账户地址在账户只能合约部署之前就能得到。</p><p>这篇文章讲详细解释ERC 4337账户的创建以及部署：</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">账户创建</h3><p>账户的创的目的是得到一个账户地址。整个过程需要一下模块的交互：</p><p><strong>账户工厂</strong>：账户工厂的作用是用来创建账户的，但往往创建过程不是直接的账户工厂的调用。账户工厂未来保证创建账户地址的可预测性，会使用CREATE2方法来创建</p><p><strong>Example</strong>：</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/459f60d3aa26efc4090cc96efd5125fabd6984bfcef20cac2f199c8880e56bf5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>他需要一下步骤来完成：</p><ul><li><p>getAccountInitCode：通过链接账户得到账户工厂的address，以及账户工厂账户创建的callData，把这两个数据组合到一起得到账户initCode</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c74fb62d6c9e8d4551eb431b8f84773952fed8512a255fe1277a497c94a07619.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>调用EntryPoint → getSenderAddress，传入initCode，getSenderAddress内部会解析这个initCode，并且解析工厂合约的地址和callData，用call方法来执行账户创建并得到相应的地址</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/df04be66b3aa18fc3c739e5eb64e3fb32fb097541a6bf99cfe3596c84b7a4c93.png" alt="" 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><p>部署账户调用EntryPoint的handleOps 来完成，这是所有transaction的入口。账户部署和其他的transaction的区别在于：账户部署时，提交的UserOperation里边包含账户的initcode：</p><p>下边是账户部署提交的UserOperation的示例：</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/732a3421e4e3b6a4970221562dcb83f5ae79bcf805e1da410a11e19f69bf185b.png" alt="" 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>b-2@newsletter.paragraph.com (B+)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/37eae52bcbf8f15906a8f46c5f34f9988b5ceda601ce8c8f188a4c30966d49aa.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ERC 4337: What is the bundler ]]></title>
            <link>https://paragraph.com/@b-2/erc-4337-what-is-the-bundler</link>
            <guid>JQh7FEBr2945q3xcdvlS</guid>
            <pubDate>Wed, 15 Mar 2023 10:39:24 GMT</pubDate>
            <description><![CDATA[TLDr: Bundler: receives UserOperations via a JSON RPC Client and submits them to the EntryPointThe steps are:The user submits a transaction as UserOperation via the JSON Rpc clientThe UserOperation will send to the MempoolExecutionManager will fetch the UserOperation from mempool and package submitted to the smart contract call: EntrypointThe EventManager will subscript to any event that sends from the Entrypoint and update the UserOperation based on the event]]></description>
            <content:encoded><![CDATA[<p>TLDr: Bundler: receives <code>UserOperations</code> via a JSON RPC Client and submits them to the <code>EntryPoint</code></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4d0520330cf0dfb42c722838dc2ea9e8d76d30447fae090192e879e7d4729787.png" alt="" 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-the-steps-are" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">The steps are:</h3><ol><li><p>The user submits a transaction as <code>UserOperation</code> via the JSON Rpc client</p></li><li><p>The <code>UserOperation</code> will send to the Mempool</p></li><li><p>ExecutionManager will fetch the <code>UserOperation</code> from <code>mempool</code> and package submitted to the smart contract call: <code>Entrypoint</code></p></li><li><p>The <code>EventManager</code> will subscript to any event that sends from the <code>Entrypoint</code> and update the UserOperation based on the event</p></li></ol>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/d8f11107b13c9a7843828d91d4f1447b67adc84a97dcb2c4ebc50adb2d683707.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Browsing Content on IPFS]]></title>
            <link>https://paragraph.com/@b-2/browsing-content-on-ipfs</link>
            <guid>qEaq07qBI2y9TuLjHPj7</guid>
            <pubDate>Sat, 02 Apr 2022 21:27:54 GMT</pubDate>
            <description><![CDATA[IPFS CIDEvery file added to IPFS is given a unique address derived from a hash of the file’s content. This address is called a Content Identifier(CID) The CID will typically look something like this: QmYaoQ17qk4JejQkpCrVQLL9wxaz3kfnHF1ERUxmNYuQ58Browsing Content on IPFSWe can use IPFS public gateway to view it from the web browser and here is how: There are lists of IPFS public gateways and you can choose any of them to view the content. Let’s take the Infura IPFS gateway for example:The pina...]]></description>
            <content:encoded><![CDATA[<h3 id="h-ipfs-cid" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">IPFS CID</h3><p>Every file added to IPFS is given a unique address derived from a hash of the file’s content. This address is called a Content Identifier(CID)</p><p>The CID will typically look something like this: <code>QmYaoQ17qk4JejQkpCrVQLL9wxaz3kfnHF1ERUxmNYuQ58</code></p><h3 id="h-browsing-content-on-ipfs" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Browsing Content on IPFS</h3><p>We can use <strong>IPFS public gateway</strong> to view it from the web browser and here is how:</p><p>There are <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ipfs.github.io/public-gateway-checker/">lists of IPFS public gateways</a> and you can choose any of them to view the content.</p><p>Let’s take the Infura IPFS gateway for example:</p><blockquote><p>The pinata gateway address is:</p><pre data-type="codeBlock" text="https://gateway.pinata.cloud/ipfs/
"><code>https:<span class="hljs-comment">//gateway.pinata.cloud/ipfs/</span>
</code></pre><p>Let’s assume your CID is:</p><pre data-type="codeBlock" text="QmYaoQ17qk4JejQkpCrVQLL9wxaz3kfnHF1ERUxmNYuQ58
"><code></code></pre><p>To browse the content, you can append the CID to the IPFS gateway like this:</p><pre data-type="codeBlock" text="https://gateway.pinata.cloud/ipfs/QmYaoQ17qk4JejQkpCrVQLL9wxaz3kfnHF1ERUxmNYuQ58
"><code>https:<span class="hljs-comment">//gateway.pinata.cloud/ipfs/QmYaoQ17qk4JejQkpCrVQLL9wxaz3kfnHF1ERUxmNYuQ58</span>
</code></pre></blockquote><p>Then the browser will display the content:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9ea43d7381ebb457002f80c58b6d400556873e10a6ae9c75685023e541695dab.png" alt="IFPS Content Example" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">IFPS Content Example</figcaption></figure><hr><h3 id="h-terminology" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Terminology</h3><h4 id="h-ipfs-public-gateway" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">IPFS public gateway</h4><p>IPFS gateways provide an HTTP-based service that allows IPFS-ignorant browsers and tools to access IPFS content.</p>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/9365bd2b351f2a6f4221dd5b3be5bef062ea7caa043ce1ea318bdc028530e612.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[DApp: Use Wallet to perform the transaction]]></title>
            <link>https://paragraph.com/@b-2/dapp-use-wallet-to-perform-the-transaction</link>
            <guid>vtCWTmgD1hxeEjHqU4kG</guid>
            <pubDate>Sun, 20 Mar 2022 05:38:12 GMT</pubDate>
            <description><![CDATA[When writing DApp, we often need Wallet like Metamask to interact with the user to perform any Transactions(Like send Eth to an address) The following diagram explains the whole process of how the User use DApp to connect to the Wallet and perform the TransactionsSequence DiagramProcess ExplainConnected to the Wallet Before performing the transaction, the user has to connect to the wallet to ensure that he/she has the ability to execute any transactionWhen User use App to connect to the walle...]]></description>
            <content:encoded><![CDATA[<p>When writing DApp, we often need Wallet like Metamask to interact with the user to perform any Transactions(Like send Eth to an address)</p><p>The following diagram explains the whole process of how the User use DApp to connect to the Wallet and perform the Transactions</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3363c7a78c92d62204304ed1fef58f26aa9c4ea8e71eb57ca3beebb5dda50c90.png" alt="Sequence Diagram" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Sequence Diagram</figcaption></figure><h3 id="h-process-explain" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Process Explain</h3><ol><li><p><strong>Connected to the Wallet</strong></p><p>Before performing the transaction, the user has to connect to the wallet to ensure that he/she has the ability to execute any transaction</p><ol><li><p>When User use App to connect to the wallet, the App will ask WalletProvider to call the wallet(Metamask) plugin to open a Page to ask the User to connect**(*1)**</p></li><li><p>Once the user is connected, a Wallet like Metamask will show the connected status**(*2)**, meanwhile, it will return the signer for Wallet provider.</p></li></ol></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1ba290edd789268510995b31bf4f0feb42c4e9e650cb5357a25f05ed0e425f1a.png" alt="\*1 Connecting to the wallet" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">\*1 Connecting to the wallet</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8ae47982e7d19fad940325ee487147ea9685e421e30ae2c84fd294ab92909a21.png" alt="\*2:  Wallet is Connected" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">\*2: Wallet is Connected</figcaption></figure><ol><li><p><strong>Perform the transaction</strong></p><ol><li><p>When the user performs any transaction(ex: send Eth to an account), the DApp will find the <strong>signer</strong> that the Wallet returns</p></li><li><p>When Signer sign the transaction, the Wallet(Metamask) will open a transaction page for the user to confirm the transaction(*3)</p></li><li><p>The transaction will be sent to the blockchain and it will be executed and broadcast and then recorded to the blockchain(*4)</p></li></ol></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/92d0334aec08d37852fe43a3248dee0a84783452e033774b682a9c3d7f7aeac4.png" alt="\*3: Send Transaction" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">\*3: Send Transaction</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f5a7efbd5ae307f6ecff3f8b6a5cb3cf23d21343e86f668631e9981bef544584.png" alt="\*4: Transaction Record" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">\*4: Transaction Record</figcaption></figure><hr><h3 id="h-terminology" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Terminology</h3><h4 id="h-ethereum-account" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Ethereum account</h4><p>An Ethereum account is an entity with an ether (ETH) balance that can send transactions on Ethereum</p><ul><li><p>An account is made up of a cryptographic pair of keys: (public and private)</p><ul><li><p><strong>The Private key</strong> is used to sign transactions, so it grants you custody over the funds associated with your account.</p></li><li><p><strong>The Public Key</strong> is used to:</p></li><li><p>Validate and prove that the transaction request is initiated by this account owner</p></li></ul></li></ul><h4 id="h-wallet" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Wallet</h4><ul><li><p>A wallet like (Metamask) allows users to manage accounts and their keys and perform any transaction on the user’s behalf.</p></li></ul>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
        </item>
        <item>
            <title><![CDATA[How Wallet connect to the blockchain]]></title>
            <link>https://paragraph.com/@b-2/how-wallet-connect-to-the-blockchain</link>
            <guid>rjFyZqbhlzzEGK9c9FG8</guid>
            <pubDate>Sun, 13 Mar 2022 07:30:59 GMT</pubDate>
            <description><![CDATA[Wallet access to the blockchain via JSON RPC API which connects to a Blockchain NodeHow Each Wallet access to Ethereum blockchainMetamask:By default, MetaMask accesses the blockchain via Infura which provides a way to connect to the blockchainUsers can provide custom RPC to connect to the Ethereum blockchainMobile Wallet(WalletConnect)Mobile wallets can access the blockchain via WalletConnect which uses RPCs to access to Ethereum blockchain.TerminologyBlockchainA blockchain is essentially a d...]]></description>
            <content:encoded><![CDATA[<p>Wallet access to the blockchain via <strong>JSON RPC API</strong> which connects to a <strong>Blockchain Node</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3b582b56728594ce5e97b677e0751ecca0b14be0c3ac034520d32488d3f1e7c0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h4 id="h-how-each-wallet-access-to-ethereum-blockchain" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">How Each Wallet access to Ethereum blockchain</h4><h5 id="h-metamask" class="text-lg font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Metamask:</h5><ul><li><p>By default, MetaMask accesses the blockchain via <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://metamask.zendesk.com/hc/en-us/articles/4417315392795">Infura</a> which provides a way to connect to the blockchain</p></li><li><p>Users can provide custom RPC to connect to the Ethereum blockchain</p></li></ul><h5 id="h-mobile-walletwalletconnect" class="text-lg font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Mobile Wallet(WalletConnect)</h5><ul><li><p>Mobile wallets can access the blockchain via WalletConnect which uses RPCs to access to Ethereum blockchain.</p></li></ul><hr><h4 id="h-terminology" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Terminology</h4><h5 id="h-blockchain" class="text-lg font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Blockchain</h5><p>A blockchain is essentially a digital ledger of transactions that is duplicated and distributed across the entire network of computer systems on the blockchain. Each block in the chain contains a number of transactions, and every time a new transaction occurs on the blockchain, a record of that transaction is added to every participant’s ledger.</p><h5 id="h-wallet" class="text-lg font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Wallet</h5><ul><li><p>A blockchain wallet allows users to receive, send, store, and exchange value on a blockchain, as well as monitor and manage the value of their assets on the blockchain.</p></li></ul><h5 id="h-blockchain-node" class="text-lg font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Blockchain Node:</h5><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f1c67a3bb6a9ea501814791219c6fc9de4789ae532394890f50940d4389fbeb4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>A blockchain consists of numerous blocks of data</p></li><li><p>Those blocks of data stored on nodes that can be compared to small servers</p></li><li><p>On the blockchain, all the nodes are connected to each other and they continuously exchange the newest information on the blockchain with each other</p></li><li><p>Various ways to get Blockchain Node</p><ul><li><p>Setup your own node</p></li><li><p>User providers like <strong>Infura</strong>, <strong>Alchemy,</strong> etc</p></li></ul></li></ul><h5 id="h-json-rpc-api" class="text-lg font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">JSON RPC API</h5><ul><li><p>In order for a software application to interact with the Ethereum blockchain (by reading blockchain data and/or sending transactions to the network), it must connect to an Ethereum node.</p></li><li><p>JSON-RPC is a stateless, lightweight remote procedure call (RPC) protocol. Primarily the specification defines several data structures and the rules around their processing</p></li><li><p>Blockchain nodes would have a public RPC endpoint to allows Users to access</p></li></ul>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
        </item>
        <item>
            <title><![CDATA[How to get the most accurate token supply information]]></title>
            <link>https://paragraph.com/@b-2/how-to-get-the-most-accurate-token-supply-information</link>
            <guid>PyIDs6J3Mn0IQ517lkgj</guid>
            <pubDate>Sun, 28 Nov 2021 01:02:55 GMT</pubDate>
            <description><![CDATA[Coin market cap and Coingecko are the 2 largest cryptocurrency information websites. When evaluating a coin or token, we often need to check the token matrics like total supply, distribution from those websites. If you stay long enough, you will find that some coin’s market cap information differs from one to another. For example, the total supply of token Wonderland is different from Coin market cap and coin gecko.Coin Market CapCoin GeckoThen you might ask, which one is correct or how could...]]></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/698796602d440589f4e61387d3412795bc911c325a7080a62d64a851caa8614b.png" alt="" 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://coinmarketcap.com/"><strong>Coin market cap</strong></a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.coingecko.com/en"><strong>Coingecko</strong></a> are the 2 largest cryptocurrency information websites. When evaluating a coin or token, we often need to check the token matrics like total supply, distribution from those websites. If you stay long enough, you will find that some coin’s market cap information differs from one to another. For example, the total supply of token Wonderland is different from Coin market cap and coin gecko.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/27e81f603e7cd1954002a7751a703a72d2b951e887659c9636e4e48620b05fe1.png" alt="Coin Market Cap" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Coin Market Cap</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5547863ca31565358d1df70e49627c8385a7c14d5449b86663d089ef19eecf87.png" alt="Coin Gecko" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Coin Gecko</figcaption></figure><p>Then you might ask, which one is correct or how could I know which website provides the correct information. The answer is if you want to find the most correct answer, you have to check out the information from their block explorers.</p><p>Let’s still take Wonderland as an example, this is a token that has been issued from Avax. which means that the truth is held on the Avax blockchain and lucky we could access the explorer to check that information.</p><p>The step is:</p><ol><li><p>Find a token from either Coinmarket cap or coingerko. from the information section, it will have a Contract address.</p></li><li><p>Copy that contract and go to the explorer. in this Wonderland case, the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://snowtrace.io/">snowtrace</a> (Etherum will be <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://etherscan.io/">Etherscan</a> and Binance will be <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bscscan.com/">Bscscan</a>)</p></li><li><p>Past the contract addresses from their search bar and navigates to the token page, it will look like this</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/258a1c6fa67e059dc8bc9e69808a3c62c2aac5895f06d64f6dc8cd80357c5a12.png" alt="" 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>Most of the Token information will be addressed in that overview section plus there’s some more interesting to check. which is Holders if you want to ensure that the token has large enough holders and has been fairly equally distributed.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3edb7390e800b5c71140e5ce7888338eaace0fcd8eb4f8e7619b1ae0d1b81686.png" alt="Holder for WonderLand" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Holder for WonderLand</figcaption></figure><p>And a quick tip here: From the chart above, it will set a red flag as it seems that a large amount of the token was held in 3 wallets. but for this case it not that scared because those 3 are smart contracts(which have a note icon and the beginning of the addresses).</p>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
        </item>
        <item>
            <title><![CDATA[Altcoin analyse checklist]]></title>
            <link>https://paragraph.com/@b-2/altcoin-analyse-checklist</link>
            <guid>lnIsnZ2nVvpUVJFzLbHz</guid>
            <pubDate>Sun, 14 Nov 2021 09:10:13 GMT</pubDate>
            <description><![CDATA[InnovationWhat their business, what’s the problem it resolve.Is that a fork/ or copy of existing projectTeamFounder interview on Youtube.LinkedIn ProfileDoes their team member done something in that industry beforeTokenomicMatrixmarket capmarket cap vs exchange volume]]></description>
            <content:encoded><![CDATA[<h3 id="h-innovation" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Innovation</h3><ul><li><p>What their business, what’s the problem it resolve.</p></li><li><p>Is that a fork/ or copy of existing project</p></li></ul><h3 id="h-team" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Team</h3><ul><li><p>Founder interview on Youtube.</p></li><li><p>LinkedIn Profile</p></li><li><p>Does their team member done something in that industry before</p></li></ul><h3 id="h-tokenomic" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Tokenomic</h3><h3 id="h-matrix" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Matrix</h3><ul><li><p>market cap</p></li><li><p>market cap vs exchange volume</p></li></ul>]]></content:encoded>
            <author>b-2@newsletter.paragraph.com (B+)</author>
        </item>
    </channel>
</rss>