<?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>Quotient</title>
        <link>https://paragraph.com/@quotient</link>
        <description>Helping innovative Web3 communities find their people with network analytics and open data.</description>
        <lastBuildDate>Sun, 12 Apr 2026 08:10:18 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[Building Games with Arbitrum + Farcaster]]></title>
            <link>https://paragraph.com/@quotient/where-liquidity-meets-virality-building-games-with-arbitrum-farcaster</link>
            <guid>7uL1ZQ3a2QXCsvQepihN</guid>
            <pubDate>Sun, 17 Aug 2025 20:40:38 GMT</pubDate>
            <description><![CDATA[Arbitrum and Farcaster combine Ethereum’s most active, low-cost scaling ecosystem with a crypto-native social hub. Here, developers and builders building onchain games can find tens of thousands of players, developers to build ontop of their in-game experience, and creators to evangelize their games.Why Developers Should Care:Most blockchain-native games fail for the same reasons: they can’t scale affordably, can’t reach the right audience fast enough, or bleed resources to bots and low-quali...]]></description>
            <content:encoded><![CDATA[<p>Arbitrum and Farcaster combine Ethereum’s most active, low-cost scaling ecosystem with a crypto-native social hub. Here, developers and builders building onchain games can find tens of thousands of players, developers to build ontop of their in-game experience, and creators to evangelize their games.</p><h2 id="h-why-developers-should-care" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Why Developers Should Care:</strong></h2><p>Most blockchain-native games fail for the same reasons: they can’t scale affordably, can’t reach the right audience fast enough, or bleed resources to bots and low-quality users. </p><p>Arbitrum + Farcaster solves all three in a single, developer-ready environment:</p><h2 id="h-1-scalable-liquid-infrastructure" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. Scalable, liquid infrastructure</h2><p>Arbitrum’s Optimistic Rollups power high-throughput, low-cost gameplay without compromising security. Built-in liquidity and tokenized economies make in-game transactions, trading, and rewards seamless. This combination enables developers to deploy complex, interactive on-chain games at scale.</p><h2 id="h-2-instant-high-quality-distribution" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. Instant, high-quality distribution</h2><p>Web3 social networks like Farcaster give users true ownership of identity and data and enables developers to build without permission. This is fertile ground for games and apps to spread organically and quickly. Frames and Mini Apps turn social posts into playable moments. NFT mints, leaderboards, and token actions can live directly in the feed, so games spread naturally through the network.</p><h2 id="h-3-an-audience-thats-real-and-ready-to-engage" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. An audience that’s real and ready to engage</h2><p>Farcaster’s $5/year signup keeps bots out. Raising the barrier to entry means a crypto-native user base primed to try, share, and evangelize new games. With more than 1.1 million accounts, developers tap into a community actively seeking innovative on-chain experiences. You can also filter bots and incentive farmers from your game with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/ruminations/0x62fdf470">Quotient's Allowlist API</a>.</p><h2 id="h-4-capital-and-ecosystem-support" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">4. Capital and ecosystem support</h2><p>Arbitrum is a force of nature. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://arbitrumgamingventures.com/">The $10M Arbitrum Gaming Ventures fund,</a> combined with the many active developer communities and forward-looking tech (ZK proofs, metaverse-ready infrastructure), is a display of the robust community backing developers.</p><h1 id="h-practical-steps-and-tools-developers-can-use-to-integrate-arbitrum-farcaster" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Practical Steps And Tools Developers Can Use To Integrate Arbitrum + Farcaster</strong></h1><p>Your playbook for plugging into Arbitrum’s scalable, liquid infrastructure and Farcaster’s viral social layer, complete with the tools for shipping faster, engaging players, and scaling your game:</p><h2 id="h-step-1-integrate-on-chain-features-without-the-headache" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Step 1: Integrate on-chain features without the headache</h2><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.farcaster.xyz/developers/">Farcaster’s SDKs</a> make it simple to plug Frames, Mini Apps, and Arbitrum-based actions straight into your game. Out-of-the-box functions handle NFT minting, token transfers, reward mechanics, and social updates. Developers spend less time wrestling with infrastructure and more time designing gameplay. The result? Faster time-to-launch, smoother on-chain integration.</p><h2 id="h-step-2-turn-social-posts-into-playable-moments" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Step 2: Turn social posts into playable moments</h2><p>Unlike most social feeds, Farcaster is developer-friendly . Interactive Miniapps let you drop NFT minters, token deployers, or even micro-games directly into a cast. Players can claim rewards, compete in challenges, or trigger on-chain actions without leaving the feed. </p><h2 id="h-step-3-embed-gameplay-and-economy-into-the-feed" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Step 3: Embed gameplay and economy into the feed</h2><p>Mini Apps are your bridge between Arbitrum’s liquidity and Farcaster’s social reach. They let players tip, trade, or earn rewards without leaving the game context.</p><h3 id="h-concrete-examples-of-building-engagement-and-liquidity-into-mini-apps" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Concrete examples of building engagement and liquidity into Mini Apps:</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/miniapps/6z0JI9WJ6uWA/arbswap">ArbSwap</a> brings token swaps directly into the feed for instant economic activity.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/miniapps/jzc2pVtLe_oa/noice">Noice Mini App</a> enables automatic tipping in Arbitrum tokens, merging social engagement with in-game liquidity.</p></li></ul><h1 id="h-launch-and-growth-hacks" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Launch And Growth Hacks:</strong></h1><p>The fastest-growing blockchain-native games follow the same playbook: launch where distribution is instant, virality is baked in, and players can transact without friction. By delivering all three, Arbitrum and Farcaster give developers a high-leverage environment to test, scale, and sustain on-chain games. How can developers repeat that successful playbook?</p><h2 id="h-1-test-games-in-small-communities" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. Test games in small communities</h2><p>Farcaster communities offer a controlled environment to validate gameplay before full launch. Early adopters (crypto-native users) are more likely to try, share, and engage with new games. By targeting these users first, developers can generate early feedback, iterate quickly, and leverage discovery networks for organic amplification.</p><h2 id="h-2-amplify-reach-with-social-virality-arbitrum-liquidity" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. Amplify reach with social virality + Arbitrum liquidity</h2><p>The true strength of this ecosystem lies in the combination of Farcaster’s social virality and Arbitrum’s liquidity. Your users can interact directly with Arbitrum assets via tipping, Mini Apps, and in-game economies. Games are spreading organically through conversations, memes, gameplay clips, and interactive Frames.&nbsp;</p><p><strong>The feedback loop, while not easy, is simple:</strong>&nbsp;</p><ul><li><p>Your game is shared</p></li><li><p>Liquidity and users from Arbitrum engage</p></li><li><p>Social traction amplifies adoption</p></li></ul><p>This approach transforms a launch into continuous growth rather than a one-off event.</p><h2 id="h-3-maintain-momentum-with-updates-rewards-and-cross-game-promotion" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. Maintain momentum with updates, rewards, and cross-game promotion</h2><p>Sustained engagement comes from on-chain achievements, persistent rewards, and cross-game verification. Developers can design systems that encourage ongoing participation. Catalyzing a persistent, socially amplified ecosystem, progress and achievements carry beyond one game or pillar.</p><p>Developers can also gain access to funding, mentorship, and participation in events and find clear pathways from prototype to viral launch. Arbitrum Arcade, for example, is an eight-week “Gameathon” featuring 24+ games, $200K+ in prizes, on-chain achievement NFTs, and cross-platform promotion.</p><p>Popular games, like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/miniapps/gg7q1Kwcv1EW/miniword">Miniword</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/miniapps/oUqpy1ZQ4ICp/scratch">Scratch</a>, and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/miniapps/yG210D-5eNqL/betrmint"><strong>Betrmint</strong></a>, demonstrate how tokenized in-game economies and Farcaster discovery combine to accelerate traction.</p><h1 id="h-intelligent-ways-to-boost-virality-and-protect-your-game" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Intelligent Ways to Boost Virality And Protect Your Game:</strong></h1><p>To maximize adoption, design mechanics that encourage organic spread on Farcaster:</p><ul><li><p>Using the Mini App SDK’s compose-cast feature, your players can share scores, achievements, or leaderboards directly to the feed.</p></li><li><p>Leaderboards in particular drive virality by leveraging competition and public recognition.&nbsp;</p></li><li><p>By pairing crypto-native reward mechanics with performance-based incentives, developers can drive repeat engagement while maintaining a high-quality player base.</p></li></ul><p>Developers now have a near-complete array of tools, audience, and infrastructure to start experimenting and iterate toward real traction.&nbsp;</p><br>]]></content:encoded>
            <author>quotient@newsletter.paragraph.com (Quotient)</author>
            <author>quotient@newsletter.paragraph.com (Quotient)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/8575214030271499bdb9dd87ebf80968.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Arbitrum Incentives for Miniapp Builders]]></title>
            <link>https://paragraph.com/@quotient/arbitrum-incentives-for-miniapp-builders</link>
            <guid>DxnrVuvaqOQTyajNDnJa</guid>
            <pubDate>Sun, 10 Aug 2025 00:38:17 GMT</pubDate>
            <description><![CDATA[Base dominates Farcaster developer mindshare, but Arbitrum is stepping up with systematic funding across DeFi, gaming, infrastructure, and developer tools. The programs target teams that can demonstrate measurable impact on network activityHow It WorksArbitrum operates two funding models. Grants provide milestone-based payments for development work. Incentive programs distribute ARB tokens to users through your application—airdrops, rewards, liquidity mining. Both serve the same goal: more bu...]]></description>
            <content:encoded><![CDATA[<p>Base dominates Farcaster developer mindshare, but Arbitrum is stepping up with systematic funding across DeFi, gaming, infrastructure, and developer tools. The programs target teams that can demonstrate measurable impact on network activity</p><h2 id="h-how-it-works" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">How It Works</h2><p>Arbitrum operates two funding models. Grants provide milestone-based payments for development work. Incentive programs distribute ARB tokens to users through your application—airdrops, rewards, liquidity mining. Both serve the same goal: more builders, more apps, more reasons for users to stay on-chain.</p><p>Arbitrum's programs cover audit costs, gas fees, and infrastructure expenses that you'd otherwise pay out of pocket.</p><h2 id="h-current-programs" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Current Programs</h2><h3 id="h-offchain-labs-rewards-program-most-accessible-entry-point" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Offchain Labs Rewards Program - Most Accessible Entry Point</h3><p><strong>$2,500 split weekly among top-performing Arbitrum Miniapps</strong></p><p>This two-month program targets Farcaster Miniapp developers specifically. Scoring based on opens, adds, and on-chain transactions. Apps that make Arbitrum core to their functionality get bonus points. Low application friction, direct path to funding while you build.</p><p>If you're already building on Farcaster, this represents the fastest route to Arbitrum funding.</p><h3 id="h-additional-programs-for-all-builders" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Additional Programs for All Builders</h3><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://arbitrum.questbook.app/"><strong>Questbook Grants:</strong></a><strong> Community, Developer Tools</strong>: $800,000 for milestone-based grants in four topic domains: Community+Education, Developer Tools, Stylus, and New Protocol Ideas. </p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.tally.xyz/gov/arbitrum/proposal/107606727309922720763027677505427395647796047780305505879344344641224024948240?govId=eip155:42161:0x789fC99093B09aD01C34DC7251D0C89ce743e5a4"><strong>Arbitrum Audit Program</strong></a> $10M budget covering smart contract audits through approved third-party firms. Security reviews cost $15K-50K. If you're deploying contracts on Arbitrum, including Farcaster developers building complex applications, this covers that expense.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.arbitrum.foundation/arbifuel-is-live-arbitrum-builders-claim-your-gas-fee-sponsorship/"><strong>ArbiFuel Gas Sponsorship</strong></a> 1,000,000 sponsored transactions in your first year, capped at $10,000 per team. Eliminates gas friction for user onboarding. Particularly useful for wallet applications, payment tools, and any Miniapp requiring frequent transactions.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.arbitrum.foundation/trailblazer-2-0-1m-in-grants-to-power-agentic-defi-on-arbitrum/"><strong>Trailblazer 2.0</strong></a> $1M for autonomous DeFi agents built on Vibekit framework. Funding supports agent templates, trading strategies, and tooling extensions. Farcaster developers building trading or DeFi-adjacent applications qualify.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://forum.arbitrum.foundation/t/defi-renaissance-incentive-program-drip/29049"><strong>DeFi Renaissance Incentive Program (DRIP)</strong></a> 80M ARB distributed across 3-month seasons. Unlike previous programs that rewarded protocols, DRIP incentivizes specific assets and user behaviors. Run by Entropy with DAO oversight. Relevant for any application driving DeFi activity.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.alchemy.com/arbitrum-grant"><strong>Alchemy-Arbitrum Grant Program</strong></a> $10M program supporting Orbit chain development. Up to $500K in Alchemy infrastructure credits per team, plus co-marketing support. Credits apply directly to platform usage. Relevant for teams building dedicated chains or complex infrastructure.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://arbitrumgamingventures.com/"><strong>Arbitrum Gaming Ventures Program</strong></a> DAO-managed program funding games and gaming infrastructure. Provides grants, funding, and collaboration opportunities. Covers game development, gaming tools, and related infrastructure projects.</p><p><strong>Arbitrum DAO Grant Program</strong> Milestone-based funding managed directly by the DAO. Open application process focused on adoption, infrastructure, and community building. Broadest scope, longest timeline.</p><h2 id="h-application-strategy" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Application Strategy</h2><p>Past performance indicates five factors matter:</p><p><strong>Alignment with stated goals.</strong> Each program defines specific outcomes. The Miniapp rewards program measures opens, adds, and on-chain volume. Match your pitch to their metrics.</p><p><strong>Demonstrated execution.</strong> Live demos, working prototypes, or existing traction significantly improve approval odds. Grant committees fund builders, not ideas.</p><p><strong>Realistic budget requests.</strong> Specify exactly where funds go: development hours, audit costs, user incentives. Avoid mystery math. Most successful applications request partial funding for specific milestones.</p><p><strong>Clear measurement framework.</strong> Explain which metrics you'll track and how you'll report progress. Grant programs increasingly demand ROI demonstration after burning significant capital on low-impact projects.</p><p><strong>Concrete problem definition.</strong> Generic pitches fail. Explain the specific friction your application addresses and why Arbitrum users will adopt your solution.</p><h2 id="h-what-gets-funded" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What Gets Funded</h2><p>Review previous grant recipients to understand selection patterns. DeFi protocols that increase trading volume consistently receive funding. Developer tools that reduce deployment friction get approved. Games that drive sustained user engagement qualify. Farcaster applications that generate meaningful on-chain activity have clear precedent.</p><p>The programs avoid funding duplicate solutions unless yours demonstrates clear differentiation. They also reject applications that could reasonably operate on any blockchain—Arbitrum-specific utility matters.</p><p>Most grants range from $10K-100K with milestone-based payouts. Larger amounts require extensive track records or strategic importance to the ecosystem.</p><p>Applications typically take 4-8 weeks for review. Successful teams often start with smaller grants and scale up based on delivery.</p><hr><p>Interested in learning more about Arbitrum grants + incentives for Farcaster builders? Reach out to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/bfresh"><strong>bfresh</strong></a> from Offchain Labs or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/ruminations"><strong>ruminations</strong></a><strong> </strong>from Quotient.</p>]]></content:encoded>
            <author>quotient@newsletter.paragraph.com (Quotient)</author>
            <author>quotient@newsletter.paragraph.com (Quotient)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/5867c54ed51a69726f3927853071559a.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[How to Analyze Your Arbitrum Miniapp User Data with Quotient]]></title>
            <link>https://paragraph.com/@quotient/how-to-analyze-your-arbitrum-miniapp-user-data-with-quotient</link>
            <guid>3govtQ8a9qCe1XWvbCvB</guid>
            <pubDate>Wed, 06 Aug 2025 17:43:44 GMT</pubDate>
            <description><![CDATA[Building a Miniapp is easy, but growing Miniapps is difficult. Farcaster users have short attention spans, and everyday, new developers and companies ship new Miniapps grasping for their attention. The first step to growth is understanding your audience, and Quotient makes understanding your Miniapp’s audience simple through its Miniapp data ingest feature. This article will walk-through the process of collecting Miniapps user data, using ArbSwap, a social trading Miniapp for Arbitrum, as an ...]]></description>
            <content:encoded><![CDATA[<p>Building a Miniapp is easy, but growing Miniapps is difficult.</p><p>Farcaster users have short attention spans, and everyday, new developers and companies ship new Miniapps grasping for their attention.</p><p>The first step to growth is understanding your audience, and Quotient makes understanding your Miniapp’s audience simple through its Miniapp data ingest feature.</p><p>This article will walk-through the process of collecting Miniapps user data, using <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.com/@quotient/building-farcaster-mini-apps-on-arbitrum">ArbSwap</a>, a social trading Miniapp for Arbitrum, as an example.</p><p>We'll ingest the Miniapp's Farcaster user data into Quotient and use it to identify the app's most influential users, discover potential target audiences, and find channels that resonate with them</p><hr><p>First, go to your Miniapp’s <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/~/developers"><u>Developers page</u></a> and click “Export user data.”</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c9d6a9c7076a59a69d1e83f942b1b46.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAMCAIAAACMdijuAAAACXBIWXMAABYlAAAWJQFJUiTwAAACTElEQVR4nK2Uy27TQBSGJzbGClh2fElmHM/Y8cQXbMfNzQ40SUubRaSqQQW1VCqwqITEqkgsQeqCZ0AsWCDxDmx4DFY8B2KPBJo6SVMJghBI32I845nf/nyOgV52qtVbVcW1aknQHBLUUThT463/BSDe6Oztx+juoyybHT55OTt6TnGbZQh4Dv9vAc1wfHr+rr1zYtf8xOuHtBv7gwaKqBlTa4PiFMnuMkbhzL8FaKINgGqUbY23Kjyulm0oOUh1GbKLVCoCowTk4vRqmUDJYSgNRjFeC+gm2+ev3gx7u3lr3E+Glt5UACqe1xCJXILHh89enL3OW+NxPmnAUC4hTagvb6jrngPDNYD7s9Nv33882D8ZZrubvUnk9amZUCtxzdgQCQDX33/49PnL10F7vDPa6yUjB0VNnFIroVYsl5CpNR0YklrwOwCUHEMkhkiYENmt6x4xAmIEWPcXrihSaaEF6z5bMvwLAnjDqeve4nJ16RLgkXSUT0LaZW99tWaKYG1lUuUuB/NKWyzJXF0uIQkg5rCYFDBzYNeCtj8o5Kor1akLWAHoJoASgFeq9ldUeGwtPgapBUUAlGxNwEDlLKNs2zAMaJ+a8bzLBGwI9vbt6cHew3vTo5Y/kABc0xMKZ4a0mwaDxM9jr68JWC6hBoqgZANNwNPJwePjpx5JoeQUG/RrVlUkQaPbiYZY95motd2kcGbQaPeSYSe6k6dbg42tze5O7GVGmbCA2MuyZFR4XOrTRVy52MnU8X/+eVQESxOJJhJdXHgT2Dk/AWXkepT7iOlgAAAAAElFTkSuQmCC" nextheight="600" nextwidth="1656" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>This will export a CSV with your last 90 days of user data. The CSV has three columns: <code>fid</code>, <code>notificationToken</code>, and <code>added</code>.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9bc99aa69d22a5d759bb1e4f7f93f772.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAIAAACPoCp1AAAACXBIWXMAABYlAAAWJQFJUiTwAAAEqUlEQVR4nK2VXW/TVhjHo2iVBTgh6UuaZnVsH8c9qX3Skzo4Jo6Lm6jpC7WakcoNbWMRFg3qOU0XIqwJdYx1XEwbRZPQLrjiaqv2Ju1id3yBfYJ9A+7GLVI1bZpqA+o0cUGy/8Uj69z8zvN//s9xwLbtvW53r3uiTqfj106n4ziO/2Hbtnd+q73bdjz5551Oh2GYiUQsHh8jz5wLh0LhUPhVDUcj0VgsNjIyEnAc56sn3z/59ru///rzj+fPX7x4cXx8/PTp02fPnj1+/Ni27d12+87+J0e//Hr//v2jo6PDw8ODg4Nut3urd2t8dOKn3w4+fnDd7Lx/4/M9+8vbNXt7o3OtsrE6q+cNwyiXy4FWq7Xz4UdWo+W6t/3r93q9brfruq7jOE1PlmU1m9dt23Zd12/O9kRRSY6nQIpOpXkeQR6lwRTHC1NJlk5MJuKeAnSSXX6v+M3P7mxWMgzj8uXLhmEoiqLrOkLIMIxms1mtrtVqNUEQ4vE4dUqx2JhvSDgUIknSNyp0JhQ5pcBwNHahKPa+2FpeXPGvZlnXqtWqaZoURWmatlSpWJa1224LgkAQRCQSIUkyHAoNnQufDUfC54dHXml0bHTkPwqMx8eH3iHGhycYhgkEAgzDWNZ2q9WapCYxxulpQZjJcimen4IY46JWlGVZ13UI02sKcKvCBxUogvjQWTJ6+tqnO4jFYpFIhGGSCGUIYqhwsXRn/9H29nalXC6VFspa/upKsbZ0aXWhKCsXFUVWFEVVVUVRKtqFiipVtJyUzYjojXoJAABgjAOBwPLK5o8//F6v12u12pXaem110W0s7W1XbpgLRW1O96RpmlfnC5pe0PT5Uqn8Zr0EJBIJQRBIkoQwbVnXZVmeyWTS04KYSq4V+HnMqmIyOjwae3u9BFAU5c9QkrINq4ExRkicguk0R63mQTlLzyEqfD468vZ6PQMGYxwMBjVNe3B4KMsyQuhVB6mFLDOHkgMBAAAIIYIgIISWZZ0CTF5RucUc0AbsgKIoCCFBEAiha82mJEmCIKSnBchRKzK4lKEuTk/2DyBJkud5WZaDwaCiKPc+u4c9Qc+iaoFbzLEaoobOhUf77iCRSPA876UI1reuNqwGC1iMcZI+yU85Sy/nGPrd8Ugk2j8AAOADGlbDNM0pOCUikQVAQ0wJ06t5wE72C/AtUlU1GAxmcKbb7dq2zfO8JGVTqVRpFizl6Goh1T/AH7IkSQRBYIxvu+5GfcMHcBw3j9mlHFMtcAMBIDx5ywiCEATBtm3TNL3giiwA+fTJlpWzdHIiFh0e7gdAkqSu675FCKFer2dZlo9kAZjHwOtgAItIklQUBQDgL1p7t71urnMpzgdoiC5naWPAISuK4i8ahNBxnM2tTQghQggAUJxhS5hekUH/MSVJUlVV/6lACO3v7/8rRVmwnGOvqANb5A8Zzczc/fTu5tYmz/N4Fr9O0VohNdCi+a+bnyLXdZvNJsMwvkX5ND2Pk4s5diCLXneQhumHXz9cN9dPpYhdzLED7YEP8H84IhJv7tysVqsnFnmAOUQvZJn/IUW+RTzP39zZqdfrXopEjuNU8SSmq/k+U/QPNK6tt6odZD4AAAAASUVORK5CYII=" nextheight="656" nextwidth="754" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>First, go to the Quotient application and navigate to the Communities page to configure your community. Click on the Miniapp Data upload and select your user data CSV.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3c9d36a62674d7468d838c41345d7c3d.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAgCAIAAABl4DQWAAAACXBIWXMAABYlAAAWJQFJUiTwAAAFYklEQVR4nK2WfUwTdxjHb/vDZNlfyjQyBywDg4hOpJaXttKWtyqM8iItogLDUaQoOGAUyIAooizRTaNu6nTqNFJHMvFlqxpGC6Vwpe2V4yy068sKtqXYAlOBQ7TNLeUcvoCA4JNPnjx3v+T7e57n7p7fAXHM+FASJZBAdHf/JJBAZMYnkckbZTIZtgBDURTDsD15+UAyK8Vt2XIaPTKURFm8eFlU9GYaPfJKLR+UygS379y7p5qHusXS12+zu9ThTuTEydOXr/Cv1d+4Vn/j/IVfa/lXa/lXT5w8/d3hHxqFIgzDHE7nWzE8MoJh2PYd6QBexaRHUdThdL5c4zxscHAQwzA6nQ4EhZCXr/DwW73W33/d/gM1KDo2KT3+ZHxBfd+zB7DZ7QKBQCwWa7Ram90+v2SnzX1HWhqg0+kWLVoEAICnp+f8Mn1T7l9xOAB+7XA6Xm79O8mdxWYDpaXl8fFb2OzUtPQMHq9MrzdgCzY8UVdnzl28UF1ziF9Xd/3Wzeu3blqsfU+ePRl/9nR4bNQ68MBss07FOvBgZv4x9TxXFypbCcywOO62lMKdcTlbE3K3by3iJORuJ7EZt9oakF4N0quBjWrIoIKNXbCxS2FAmhHpzAikQqPNkp+/F6gX/rmzIp+Vk7Z0lad7gM8SP49l/l5L/DyApe9R4qOyindvSmWmcDOKqsu43xZkFubsP1YjhCRgNzQDDQqxedDqUr/TLvSKWp+atxNwA5jpyeRYGiGC9EXaFkIEaR09OCwh+tPAVRsYZHrSZnrSZn8KIat4t0wDI72aOam3q5VH+Kd2VRXmHCy6dKeu26TDu9Ft0nWZtF0mbbdJh9/sMmkFcmH1+aPVZ7+vPnt0hgpeqIvkrcCKD4kJ9MIjlSXHqpphsEEhFkKSl2nqaBVCEqRHvZyw0o3gXXC4nHugqEHeNLu6QtsZ9yXr598uaiwGpEcNdkMKAyJRyaaiMCBsbjrvUIXGYoCNXa+t4royXSf+2C1DNi43F5DBynt/q0GlXNgqBpVyqRIClXKN0XD/Qd9U+gcHzDZrb7+5t9/82hKsVoFKOa4jlrUNj4265kwxr4TNTi3mlXCyd5WUlFYfrOFkc+fxTV2rv8HjlVVWVuXlF5aWVjQ1S1zz3eF0oig6PDKComMOp3P82VMUHUNR1Ga3T4t9YHBaJpeGR0ZsdjuGYdnZOUCjSBwcujGMFhkcSvH1W0MMJnv7+CazUoy99ycxma1anR6PlTAyM1IF1NImHRlFXZ2Rtssp1HBiCAX3Xp+t/Hw9cU3Ahty8QkZsAiM2kRGbGBhEZm/LSMvMpkXGtLRJZ93ghbpWpw8MIi/92IsawVgTsIFCDff2XU2L3HT85Jmyiqqy8n1l5fvyCniuoKKKw937durG3vsBRDLgsvcnPBAYRAqjRVIjGBRqeGIyOyI6JiI6pqCoJDYu8cefzqi1+rdQV2v1UTFM4IPFrG3p1AgGM4nNTGLHJbJCKDRmkksar+n8pcstbdJGkbgd6piVljbp0KPHLnUURR89fIyiY0Ov2MMJJqJ/nwdzN4ul7/m52mMzCyEJpEUgLaLQdsJ6FR50/T9h8EBjMcwdWK8aHht1vZG//3WTtCXahxrgRvB2D/Jdu4nkEeL3EcHn0h91YDc07UiYlbsyUY/N7JozDfImVlEmTmJBBqsoM5KTlLXv6/CsxMpTNfPb4IV6j80MdkPNMNgMg/hQvS683a5WCiGJQts5lz50aJAODaKxGMQQCOtVsF51V9JofzTkmgQLP6OxN5zaWZxswOF0TDLxm/eKnwtCkejsuV8wDMM/l0kTCATvIPcrtfzCb3hT1UEQ/A8ayeBHtKV6iQAAAABJRU5ErkJggg==" nextheight="1252" nextwidth="1206" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>You can also expand your community by adding related audiences: Farcaster account followers, Farcaster channel members, and token holders.</p><p>ArbSwap does not have a Farcaster account or Farcaster channel, so we’ll add potentially audience segments for ArbSwap instead: members and followers of <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/~/channel/getreach">/getreach</a>, the channel for popular trading Miniapp Reach, and followers of bfresh, who leads community strategy for Arbitrum on Farcaster.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bd1cf8aa103ef09c5b2152ba1a2d023b.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAABYlAAAWJQFJUiTwAAAC2klEQVR4nK2T3WvTUBjGzz8hIqI3Cl6IF0MGXvgfKAzEybwQQUHwYoOJoG4DbxV1X37MzW3tcO1oTbfaVZHWeZXZj7AuzZadZG1MF7skrZKdoE3a0fXIGi1TG/eBL7+rc+B9zvs87wEAgJ7ePoZZwBibpon/U/nfvHV5vAjp4MjRYwzDWK0R0rU1pK2hXC4vK6qFVj3ZIZBLudwej5cYeDEaiVGSlAUMwxK+SVHMFAxDzEjReIKF/MvxiUuXrzSda248dfpO511BlKgEbUckRllsVCpgS6HvhTl6EXT3Prl67frjp88FUcrKSpJdqrabJ3yT/kBQVpTthtC9xJT3lU8QJRbykRg1NOwYGnb6A0EW8izkgT8w/ainT1VVjLGsqHP0oiBKdJJpbWsnSXJbr4vFEgu5UDi8NT9VVUly1pIEpmkihKwLWVGT7BILeVlRRTGzE9O/ahoLucB0sNYEYzz12j/idGZWVjcFtj5HUb9YE5DkrMMxFpgOmqZZMAyE9LoUDENbQ1SCjsbiNTN1/RsvCgwHuWXBViAlpL0EQdM0lZjXNM3OH4SQpmmQSw0OvnC7JxDSi8WShSRlf2bwhwCVoMWMFElQF1oudnR23e7oetjdbydAJ5kqC61t7ffuP8jl8tZ5PB5/NjC4quTrCFhbBFPLI6MOh2PMSxBDw05RzGBcMX+v9VJJVhTIpSCXehd67w8EIbcZnpXfx2gMptO2AlRiPhQO7+SXyYrKQl4QJWtnkuySheWPbQaQ40mSrG1e8Zezf2OaZq1XXepkgDHet/8AAIDwTd64eSsUnsnKSl3Ez1lZUdOfxN0JrJfLZ842AQBmZj709PZTVMJuTaugXU+wUak0nGwEANBJZmTUQZKzKyuS3SLtxaKNSuX4iQYAQCgcdrk9xWLJrjvGuGAYuxZYL5fPN7cAAHK5fDQW19bQP0JGSN9LyAcPHbZCHne5q5/AtrYV+AFIicrhbz3O8wAAAABJRU5ErkJggg==" nextheight="1536" nextwidth="2752" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>After saving, you'll be taken to your community's directory page, which lists each member with their Quotient Farcaster Influence score, their relationship to your community, and context about which Miniapps they use.</p><p>To identify your most influential and engaged users, filter to users who have added your Miniapp and have a Quotient Farcaster credibility score of "Influential" or higher.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f65b940dbb92d62051439b65c3dca3b3.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAIAAAAzPjmrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEYUlEQVR4nK2U/08TdxjH+xcscWEynMkW0E27xahrtji3OVEQB1sBBdGCCHOWGUa0Q4amWKZOYOFb6TFxFI4F15Zir2ttrpBS2t614nrctVrCkWuTJlCuREp7ySH8eAuca8zWmf2wJ+9fPs8Pz+vzPO/P8xEINgMAelmW5f7vqJZ+s1H9jETy5PETPhUMhnhhOE6SZDAYIueoZPI/ipyjeP189xdB2SnJwOCQbkSfYJgEwyCeKdhmR6e8Z6u+EggE4qKTs3NB2GZPymiGjWb4JRnEM6W4cbuyWlpTWzesGRFIyst37no3bWvGjy3tM7PkIy9md7i0utH017flHPtcceN2TW0dbLPbHS5eXozwYkTyCFttdofLHwj4A4HnmU0MZDJDJrPd4RLIZN9dll3Rjeh5D5KA0jJJvxr0YgRkMiPoFJ/U6kZ/6lR29/Tq9QanC9XrDROTDnX/r3W1DVcuyw2/m2CrbRr3TeM+co6axn0bAAAALBaYIAjeAx7gdKEYji+vxJZXYrF4fCESCc/Pt7Z3yhoaDx/NuSpXyBoaJyYd9zQavd7QcrNTmCXasX2P0WR86HnIcRzLrkajS9HoEobjAhAEX/SdB8BWm0j48Ttv7RNmvl9aWClvvCnMEgmzRJnb3jt3Wtosb8nMEO7ddeDieZnd4UI8U/5AIBQOA0DvGYkEwzCapiedThAceuTFngNYdvVFAAQ9yHh1hzBLtD3t7XOnpaWFlfzx1g/t8Jgdgh6M3jeN3t8YyKTTzZuMoFMgOLRlS5qyRxVZpMk5qq2tzelEUnfAm9nd02s0w1rdaIG4WKsbFRedHNaMXJUr+tUgb2YXAHQBADxuM5phu8OlHzEaDEb+urwmJh0pAF6M6FKqco/lyZuu19d/j+G42+1xOhH1wODMLJmdk1d1viaySIdC4Y9E2W9s3SmtqotGl2ZmyeEhbUlJ2fzCPF+KZVmLBU4NuNuvrqio8Pn8VusYTdP8AlIUlWCYAwc/PZJ7nJyjOI7b/eb+VwTpJ/Il62vrsXgcHPxN3nQ9WYplWb3ekBrQrwalUqnVOsayq9Rm0DRNkmSCYXbv2Vd3SfbPX4Gf+4WaixS1weY4jqIoSfnZ1B5AJrPFAlutYyjqpmk6Gl1aiER4wCeHj1ZWf80vTZ9K3dGq6mhVmSE4Fo9jOA4AdyiKWnv2jOM4FHUXFhX/K8BgNCIIQhAE/Vf4fP4EwxzJPZ6dk4fh+PraekerStF4q6ezzwzBCYaxWOBDhz5T9qhYlrVax9QDg5Ly8lQjwv3X5E3pr6WhqHuzg0UewHsg+vBggbh4IRLhOO7bC/XN8pbkiGDLuELRfE+j4TguGl1CEKTkVFkKgNOFag1Q3xD42L9hMkVRC5FIErB3/wcF4uLw/MZTWX4aW34aSwI8nj/y87/8QlxI0zTfxMsAoFYLGaBupZIkSZqmg8EQQRAsu1p3SdZ4TR4Khf9m8vJKDLaMA8AdrU7HLwGKuouKT/wJDN+jUZ0b/D8AAAAASUVORK5CYII=" nextheight="841" nextwidth="1600" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><br><p>For lead generation, filter out your existing Miniapp users and focus on people from your other audience segments—in this case, people who both follow bfresh and are members of the reach channel.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8ad51b8f71a6581d6e1f4f0950894203.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAIAAAAUMWhjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGoUlEQVR4nKVUb0wb5xk/qdP6qZq0KmnSrdKmdd2HFWn7sDqqGoSSJZBQIG5CCFAlKdCGFHCVkGL+2YdD+GMCXhMOSGMwiZhL7NZ1Yg4Px+ZCke17bf7Edz5XLj5soiQcNgur3cPkQ9A7mbfzoqSftlePTs89unue5/f7Pc+LOd3AbCH/mPEnDHshN1/qYzinG/zPRgOvftQoO1snb1LKztZpddcxpxtYbfZ3dme9vG3Hnn05/09255aZzJbLxIBWd524ojWZLZiP4So/rsGwFzrUPZ45X8GRou7PiGdw0MCbjlDTzmccMDuXjlDTzjtO2sdwaUshUOCqfdkHFbjKRc+YLaSFtFLU9ISdmrBTZgs5Yae+uPGVVnfdQlqdbuCiZyhq2mqzU3ecxi9vmUxjQ4MjFDWtHzWijPM+hgZeZE43SBVgWH9wYQFC+GRzE0K4kUyKorj2/fdWm630+Ae19fXbd74qO3Outr6+/KNTy4LwuVaLt7YC92xOpvT1nRkYhoXvRVSq8xvJJHzqxBMJhvWnCoyM3GhuOH9Jc+Vv3URnm+aS5orTDbq7ejvbNJ0XuhWNbbWyRvvtO32EtvxkdSuu7mzT3LZRNPCS47dNpjGTaYxlA319/SGej/8gCitRhvXrR40M62fZABYIBmWVdRiGvfLz3/wS+xWG/SInUyqrrHsR2/Yitm3HS7/bsys3S3JAWd8uOy2XvJmVJTmQkyn9vH8YUY+ewRD/xht/wDDMYDBACKPRKMdxShyngRcDs3Nd7ZeyJAdOl50pea/8RPHpWzetR/NO5O87WlZa1VirmpiYfBBdCYb4QDD4XXgxEAwGgsE03UhefjHcSxDHikvcdMrnF8MM6794sTuFwOkGk99M0zMzHRe7R/Q3wOycyWzJP3zky6/N2uHrhUWlVpu9WXkeDbWFtFptdoPR1KHuOd+m7lD3WG12s4X89tuFSftUL0HEYqvr60lkoii66S2R530MywbUXT36UeMCH6GBV3bmnNMNLKT1zDm5j+EuEwOys3VWm+3+w4csG6CBVzuoG7iqHdJdQ68up7fm1Nm29vanRY5Go45JKrUHF1ovmL4y4XhLRcWHBEEAAMLhMISwr6+f4zgIYWFR6fadr2XuyWZYP4Rw7dFaccHJPbty7VYKQhiLrS4t3ddoepuVyp8o4HQDNw1isdUQz3NcIJ5IIHuyubksCMjRjxoVuIq4omXZwJPNzfX15HdB/u68f3X1EYRQWIk+WBbcNOglCFEUnx5Tp8uNccFQ4aG8+tpP1F3dcnk9hNBF0wAACOHw8DUE5d2Cwy/v+PXe/QfRojxzYrHVxfA9jgu0qFo9Hm86Hg6HO9Vd6C6yhXg+EllC6WKxVdRINBpFzsgXowpcpR3UpX9+vPEYGeo0GOI1PRoljsdiq8jcNDAYDO/m5WH8Yjg7/7Ds04bGhkaZTAYhBAC4aBpC2EsQyCksKn3tt6/v3X/Q6XI/jyCeSMzM+E59WL133/5mpVIUxXgiYTSablosBYfeS4k8OmoAACwLAuo3nkg8j+DThmbtoE5YiSKRe9p6FXWtRr0Zfb8Yvqf/u6FJoUjLEIks2R2OgkNS7MHyyvZXXs3JOWAwGBBFAAA0PEajEUW2EPz+r9m56+up24ZfCGPYzzAMO1fdhCi9O++/pCHa2tvr5A0+hoEQLgvCjwXQooui6PF4kbbRrQMh5LgAcrSDusqqTy4TA4iTtUdrZaVVOZnSqvLaxxuP44mEsBK9ZRkrLnm/sOhYWkiSJFMFfAw3cFU7PjHR19ffqe7aysulEXBbTkXlxxl//kvBkSILaYUQ3r//EMNeqiqvJc3/QAVYNnDLMjY4NBTieSQyvxj+LwJhJbqRTFLUVHq8UF6Px4sQXCYGjp+s6NJ8hvhdX0+24938QqrT9BTheMubGRmd6q4nm5vxRGJEr6+pqTlWXPJjAVEUh4evIYp9DIOGhyTHQzwPITx+suKtt3cXHCmy2uyIoqN5J76hXE/vgcfjrZM3FJe8j/6lKEoi2VVWVo65wZxKqRjRDZnMZkSfj2EQGrvDgSIKXJWdmy9vUi4LwvNjGoksBUP8TYsFx1vQRb0sCCQ5LpFIUhT9c+1f01OT7N1ZxySVnk6Ul+MCKNKh7jnxwUfyJuUCH/nJPYj/ILpourpGVl0jGxwa5hfDFDUllUqHdNeweR9TXlHZ338Vpd5CN0WS4xBCgyG1HxDCRkXLW2/vblS0PJ8dIWBYf4jn7Q6H3eH4zwRyJEkyrP/fwvKEeuQqzKkAAAAASUVORK5CYII=" nextheight="1185" nextwidth="1600" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><br><p>If you want more context about a user, click on their profile to view their reach metrics, the accounts they interact with most, their most active channels, and recent follows.</p><p>After exploring the Directory, dive deeper into which accounts, channels, tokens, and mini-apps resonate most with your audience in the Interests tab. For instance, /replyguys, /itookaphoto, and /tipn are the most popular channels for ArbSwap users.</p><p>Once you understand your audience and what resonates with them, you'll be ready to create your first content, influencer, or token incentives campaign through Quotient, which we will cover in a subsequent post&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/850d0a79bae7d6509e30b3886a3a7bb4.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAIAAAAK4lpAAAAACXBIWXMAAAsTAAALEwEAmpwYAAADdUlEQVR4nKWS3W/TVhiHT4uKmqVLODGx61PPTRziNEtaITS0i11M2yQmJjpgijou6Bg3SBMCTZV2gZD2L+xqV5OAKyaYqjIoGSsK66RtRY3SNB910mRJ2mByOmPyhfPRpqKT7ZBpbccFkx69es859vsc/2QgF8silu4HZv0zgXQmV6oocrH8ymBJFlKZZDobX87kVh8/LZaBXCznxbWpW9NXrn0fWoxVldr/Eqw9EVKZ5cyKkMqsiFjWBdo6W1Vqi3Fh6kd/duVRqaKUKkpZrdWXjNMf23Wz/OJIFSTT2Ug8sZRI/T4XnAnMJtNZET+JCulwLCmkslgq/hd5ERewVMBSXlwrYCm3Wugs8+IalmRVgCX53syDuz/dvz19LxJPCKlMOJYIx5I/TPmvXp+88/MDLMm7IhfLc3NB/WbhmPriw/lwduXRUiKV/DObTOfUiMoVUKooeRFHheXQ4lJu9XFVqdUb6/XGeqPVarU2G831Z7XGrlSq9XpzQ++VWvNZrVFvbii1JpaKUWE5KqSxVGxHFJj94+bU3clb/ml/YPa3h8GFaHAhOh+KzociwdBCaDG+g1gwFF6ICLsdLf3y69yNyds3J+9E4slSRQEFLA0desdoHTTTB8z0ARNlM1oHdXotA69bEES8jpl26s2+fm4/slN2L2X3dKA5D3IMa3WE8xwmGP7Lr75utFqqgPMcBq/191qYHqjSEahQnJl27gQyLprzEAzfAxldQLLuXssAybq6TQgiJwDms+cubj5/rgr4kbe7TEif2EfZ+yh7R9BH2fWJRqsNgH174BuQcemCF3dvfwfJuknWpVU3zXkNFvb8xKVWa3O7AAAI9lI7BWbN0Uc59J5ghmjOS7JuiJw056W5f+KiOS9yjBittgsTl9sR/Utg6O/02wTm7RF5CYY3WFhdQA6+abCwJOsmGB45hk2UvS3Ii9gx/JKIHJBx6RAakBmCyLkf2bW56n21qjZGq43mPCTrYvmDEDkvTFyuNzfAX08rtqG3wF6q24S6TAPAhIDW6BitNn0uwbh6IKOF4yIYHtIcyboNFhZ0ERA51R3Eg24rRO0/DQB4fuLS1taWGtGpz79478OTH3zk28mRjz8dHftM55jvdKcfHTtzYuzMqG/86PFTJ7T+mO/0+0c/UZ/xjY/6xt89cvybb7+rKrW/AURc4f3IP+jaAAAAAElFTkSuQmCC" nextheight="730" nextwidth="1600" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><br><br>After getting up to speed on your audience and what resonates with them, you’ll be positioned to create your first content, influencer, or token incentives campaign through Quotient, which we will cover in a subsequent post.</p><p>Want to try out Quotient for your community?&nbsp;</p><p><em><u>Quotient is still in beta, but we are providing early access to Miniapp builders integrated with Arbitrum or plan on integrating Arbitrum. </u></em></p><p><strong>Reach out to </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/ruminations"><strong>@ruminations</strong></a><strong> or </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/bfresh"><strong>@bfresh</strong></a><strong> on Farcaster for an early access code.</strong></p><p><br><br><br><br><br><br><br><br><br></p>]]></content:encoded>
            <author>quotient@newsletter.paragraph.com (Quotient)</author>
            <category>data</category>
            <enclosure url="https://storage.googleapis.com/papyrus_images/20f5ac02c8e1b690cceeea528fb85dc5.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Building Farcaster Mini Apps on Arbitrum]]></title>
            <link>https://paragraph.com/@quotient/building-farcaster-mini-apps-on-arbitrum</link>
            <guid>xoPhUZJ25sa7YNfA0Xma</guid>
            <pubDate>Tue, 29 Jul 2025 21:05:16 GMT</pubDate>
            <description><![CDATA[Farcaster operates as the most significant blockchain-based social network, delivering a structured, open, and permissionless social data infrastructure. This architecture enables developers to construct applications around user connections, including follows, post interactions (casts), connected wallets, and additional social signals. The primary Farcaster client provides users with integrated wallet functionality that executes cross-chain swaps by default and enables seamless interaction wi...]]></description>
            <content:encoded><![CDATA[<p>Farcaster operates as the most significant blockchain-based social network, delivering a structured, open, and permissionless social data infrastructure.</p><p>This architecture enables developers to construct applications around user connections, including follows, post interactions (casts), connected wallets, and additional social signals. The primary Farcaster client provides users with integrated wallet functionality that executes cross-chain swaps by default and enables seamless interaction with in-feed applications called "Mini Apps."</p><p>These capabilities have catalyzed development of applications that integrate social interaction, DeFi, and trading—all within the post feed environment. Farcaster operates primarily on EVM chains, making Arbitrum natively supported and ready for developer implementation.</p><p>While the protocol maintains an open data network, accessing and utilizing this data presents significant complexity.</p><p>Hubs and Snapchain nodes that power the network require substantial resources and address only portions of the dataset construction challenge. Developers need not navigate this alone. </p><p>This guide demonstrates how we constructed ArbSwap using social data from Quotient and Farcaster's native capabilities, creating an application that enables token exploration and swapping on Arbitrum directly within the feed.</p><h2 id="h-converting-applications-to-mini-apps" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Converting Applications to Mini Apps</h2><p>Converting a standard web application into a Mini App requires three steps.</p><h3 id="h-install-mini-app-sdk" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Install Mini App SDK</h3><p>To signal to the Farcaster client that your application functions as a Mini App, install the Mini App SDK and transmit a "ready" signal. This process requires two lines of code:</p><pre data-type="codeBlock" text="import { sdk } from '@farcaster/miniapp-sdk'
await sdk.actions.ready()
"><code><span class="hljs-keyword">import</span> { sdk } <span class="hljs-keyword">from</span> <span class="hljs-string">'@farcaster/miniapp-sdk'</span>
<span class="hljs-keyword">await</span> sdk.<span class="hljs-property">actions</span>.<span class="hljs-title function_">ready</span>()
</code></pre><p>This functionality works within script tags in HTML, enabling even basic web applications to become Mini Apps.</p><pre data-type="codeBlock" text="<script type=&quot;module&quot;>
  import { sdk } from 'https://esm.sh/@farcaster/miniapp-sdk';
  window.onload = async () => {
    try {
      await sdk.actions.ready();
    } catch (error) {
      console.error(error);
    }
  };
</script>
"><code><span class="hljs-operator">&lt;</span>script <span class="hljs-keyword">type</span><span class="hljs-operator">=</span><span class="hljs-string">"module"</span><span class="hljs-operator">&gt;</span>
  <span class="hljs-keyword">import</span> { <span class="hljs-title">sdk</span> } <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'https://esm.sh/@farcaster/miniapp-sdk'</span>;
  window.onload <span class="hljs-operator">=</span> async () <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {
    <span class="hljs-keyword">try</span> {
      await sdk.actions.ready();
    } <span class="hljs-keyword">catch</span> (<span class="hljs-function"><span class="hljs-keyword">error</span>) </span>{
      console.error(<span class="hljs-function"><span class="hljs-keyword">error</span>)</span>;
    }
  };
<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>script<span class="hljs-operator">&gt;</span>
</code></pre><p>The Mini App requires only this ready call to function properly.</p><h3 id="h-configure-mini-app-manifest" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Configure Mini App Manifest</h3><p>Farcaster's Mini App ecosystem requires a comprehensive catalog with creator information and additional metadata. Since every Farcaster account operates as an EOA, signature verification can confirm domain associations with Mini Apps, ownership, and related information. This data resides in your website's public folder at <code>.well-known/farcaster.json</code> as the Manifest. The ArbSwap manifest demonstrates this structure:</p><pre data-type="codeBlock" text="{
	&quot;accountAssociation&quot;: {
		&quot;header&quot;: &quot;eyJmaWQiOjYwMjMsInR5cGUiOiJjdXN0b2R5Iiwia2V5IjoiMHg0NTYxMzExNjFmODNDN0Q3ZkRBMTViMzJhNWY3QzIxRkQ0RTI3RTk2In0&quot;,
		&quot;payload&quot;: &quot;eyJkb21haW4iOiJhcmJzd2FwLnRyYWRpbmcifQ&quot;,
		&quot;signature&quot;: &quot;MHg0ODQ4MjljYWZiNmY5YjU0ZjUyMjUzOTRjNmJiYTFiNDc3Y2JlYjI0MjQ2OThkZTNlNjY2YTZmNWFjN2E0ZWY5NzA0ZTA5OTE0MDA2Njg4YWI3ZjI1NDNhOTA2MTQwM2NlNDE2MWIzOGE4OWIwMGNkNWM5OTkzZjE3MGJhOTkwMjFi&quot;
	},
	&quot;miniapp&quot;: {
		&quot;version&quot;: &quot;1&quot;,
		&quot;name&quot;: &quot;ArbSwap&quot;,
		&quot;iconUrl&quot;: &quot;https://arbswap.trading/icon.png&quot;,
		&quot;homeUrl&quot;: &quot;https://arbswap.trading&quot;,
		&quot;imageUrl&quot;: &quot;https://arbswap.trading/image.png&quot;,
		&quot;buttonTitle&quot;: &quot;Swap&quot;,
		&quot;splashImageUrl&quot;: &quot;https://arbswap.trading/splash.png&quot;,
		&quot;splashBackgroundColor&quot;: &quot;#213147&quot;,
		&quot;requiredChains&quot;: [&quot;eip155:42161&quot;]
	}
}
"><code>{
	"accountAssociation": {
		"<span class="hljs-selector-tag">header</span>": <span class="hljs-string">"eyJmaWQiOjYwMjMsInR5cGUiOiJjdXN0b2R5Iiwia2V5IjoiMHg0NTYxMzExNjFmODNDN0Q3ZkRBMTViMzJhNWY3QzIxRkQ0RTI3RTk2In0"</span>,
		<span class="hljs-string">"payload"</span>: <span class="hljs-string">"eyJkb21haW4iOiJhcmJzd2FwLnRyYWRpbmcifQ"</span>,
		<span class="hljs-string">"signature"</span>: <span class="hljs-string">"MHg0ODQ4MjljYWZiNmY5YjU0ZjUyMjUzOTRjNmJiYTFiNDc3Y2JlYjI0MjQ2OThkZTNlNjY2YTZmNWFjN2E0ZWY5NzA0ZTA5OTE0MDA2Njg4YWI3ZjI1NDNhOTA2MTQwM2NlNDE2MWIzOGE4OWIwMGNkNWM5OTkzZjE3MGJhOTkwMjFi"</span>
	},
	"miniapp": {
		"version": <span class="hljs-string">"1"</span>,
		<span class="hljs-string">"name"</span>: <span class="hljs-string">"ArbSwap"</span>,
		<span class="hljs-string">"iconUrl"</span>: <span class="hljs-string">"https://arbswap.trading/icon.png"</span>,
		<span class="hljs-string">"homeUrl"</span>: <span class="hljs-string">"https://arbswap.trading"</span>,
		<span class="hljs-string">"imageUrl"</span>: <span class="hljs-string">"https://arbswap.trading/image.png"</span>,
		<span class="hljs-string">"buttonTitle"</span>: <span class="hljs-string">"Swap"</span>,
		<span class="hljs-string">"splashImageUrl"</span>: <span class="hljs-string">"https://arbswap.trading/splash.png"</span>,
		<span class="hljs-string">"splashBackgroundColor"</span>: <span class="hljs-string">"#213147"</span>,
		<span class="hljs-string">"requiredChains"</span>: [<span class="hljs-string">"eip155:42161"</span>]
	}
}
</code></pre><p>The accountAssociation verifies owner and domain authenticity, while the miniapp object contains essential metadata including image previews, loading phase background colors, and requiredChains to indicate Arbitrum deployment.</p><h3 id="h-implement-mini-app-embed-tag" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Implement Mini App Embed Tag</h3><p>Social feed website and application sharing typically utilizes Open Graph previews containing site names, descriptions, images, and links. Mini Apps employ an embed meta tag containing information similar to the manifest.</p><pre data-type="codeBlock" text="<meta name='fc:frame' content='
  {
    &quot;version&quot;:&quot;next&quot;,
    &quot;imageUrl&quot;:&quot;https://arbswap.trading/image.png&quot;,
    &quot;aspectRatio&quot;:&quot;3:2&quot;,
    &quot;button&quot;:
      {
        &quot;title&quot;:&quot;Swap&quot;,
        &quot;action&quot;:
          {
            &quot;type&quot;:&quot;launch_frame&quot;,
            &quot;name&quot;:&quot;Swap&quot;,
            &quot;url&quot;:&quot;https://arbswap.trading&quot;,
            &quot;splashImageUrl&quot;:&quot;https://arbswap.trading/splash.png&quot;,
            &quot;splashBackgroundColor&quot;:&quot;#213147&quot;
          }
      }
  }' />
"><code>&lt;meta name='fc:frame<span class="hljs-string">' content='</span>
  {
    "version":<span class="hljs-string">"next"</span>,
    <span class="hljs-string">"imageUrl"</span>:<span class="hljs-string">"https://arbswap.trading/image.png"</span>,
    <span class="hljs-string">"aspectRatio"</span>:<span class="hljs-string">"3:2"</span>,
    <span class="hljs-string">"button"</span>:
      {
        "title":<span class="hljs-string">"Swap"</span>,
        <span class="hljs-string">"action"</span>:
          {
            "type":<span class="hljs-string">"launch_frame"</span>,
            <span class="hljs-string">"name"</span>:<span class="hljs-string">"Swap"</span>,
            <span class="hljs-string">"url"</span>:<span class="hljs-string">"https://arbswap.trading"</span>,
            <span class="hljs-string">"splashImageUrl"</span>:<span class="hljs-string">"https://arbswap.trading/splash.png"</span>,
            <span class="hljs-string">"splashBackgroundColor"</span>:<span class="hljs-string">"#213147"</span>
          }
      }
  }' /&gt;
</code></pre><p>This requires only the stringified JSON object with complete information, placed alongside other meta tags. These three steps complete the web application to Mini App conversion.</p><h2 id="h-leveraging-the-social-graph" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Leveraging the Social Graph</h2><p>Rendering applications within social feeds provides immediate value, but accessing the Farcaster social graph delivers significant additional capabilities. The Mini App SDK provides essential features, including access to information about users accessing the Mini App. Running <code>sdk.context</code> returns the following data:</p><pre data-type="codeBlock" text="export type MiniAppPlatformType = 'web' | 'mobile';

export type MiniAppContext = {
  user: {
    fid: number;
    username?: string;
    displayName?: string;
    pfpUrl?: string;
  };
  location?: MiniAppLocationContext;
  client: {
    platformType?: MiniAppPlatformType;
    clientFid: number;
    added: boolean;
    safeAreaInsets?: SafeAreaInsets;
    notificationDetails?: MiniAppNotificationDetails;
  };
};
"><code>export type <span class="hljs-attr">MiniAppPlatformType</span> = <span class="hljs-string">'web'</span> | <span class="hljs-string">'mobile'</span><span class="hljs-comment">;</span>

export type <span class="hljs-attr">MiniAppContext</span> = {
  user: {
    fid: number<span class="hljs-comment">;</span>
    username?: string<span class="hljs-comment">;</span>
    displayName?: string<span class="hljs-comment">;</span>
    pfpUrl?: string<span class="hljs-comment">;</span>
  }<span class="hljs-comment">;</span>
  location?: MiniAppLocationContext<span class="hljs-comment">;</span>
  client: {
    platformType?: MiniAppPlatformType<span class="hljs-comment">;</span>
    clientFid: number<span class="hljs-comment">;</span>
    added: boolean<span class="hljs-comment">;</span>
    safeAreaInsets?: SafeAreaInsets<span class="hljs-comment">;</span>
    notificationDetails?: MiniAppNotificationDetails<span class="hljs-comment">;</span>
  }<span class="hljs-comment">;</span>
}<span class="hljs-comment">;</span>
</code></pre><p>This information extends beyond basic user data to include application opening location and notification subscription status (Mini Apps can send programmatic user notifications). The critical data point is <code>user.fid</code>. The FID (Farcaster ID) serves as the Farcaster user identifier, enabling access to comprehensive user data:</p><ul><li><p>Followers</p></li><li><p>Casts</p></li><li><p>Likes or Recasts</p></li><li><p>Connected Wallets</p></li></ul><p>ArbSwap implements a distinctive approach by indexing tokens launched natively on Farcaster through AI agents called "Clankers." Clanker operates as a bot that converts tagged commands into tokens and initiates fund distribution. This requires extensive indexing capabilities, which Quotient provides. To display these tokens and identify trending options among mutual followers for a given user, Quotient delivers the necessary data. With this information, we construct an API endpoint as follows:</p><pre data-type="codeBlock" text="app.get(&quot;/tokens/:fid&quot;, async (c) => {
	const fid = c.req.param(&quot;fid&quot;);

	const followerRes = await fetch(
		`https://api.quotient.social/v1/farcaster-users/mutuals`,
		{
			method: &quot;POST&quot;,
			headers: {
				&quot;Content-Type&quot;: &quot;application/json&quot;,
			},
			body: JSON.stringify({
				fid: Number(fid),
				api_key: c.env.QUOTIENT_API_KEY,
			}),
		},
	);

	if (!followerRes.ok) {
		return c.json({ error: &quot;Problem fetching follower data&quot; }, 500);
	}

	const followerData = (await followerRes.json()) as FollowerResponse;

	const followers: number[] = [];

	for (const follower of followerData.mutual_followers) {
		followers.push(follower.fid);
	}

	const tokenRes = await fetch(
		&quot;https://api.quotient.social/v1/holds-clankers&quot;,
		{
			method: &quot;POST&quot;,
			headers: {
				&quot;Content-Type&quot;: &quot;application/json&quot;,
			},
			body: JSON.stringify({
				fids: followers,
				api_key: c.env.QUOTIENT_API_KEY,
				chain: &quot;arbitrum&quot;,
			}),
		},
	);

	if (!tokenRes.ok) {
		return c.json({ error: &quot;Problem fetching token data&quot; }, 500);
	}

	const tokens = (await tokenRes.json()) as TokenResponse;

	return c.json(tokens);
});
"><code>app.get(<span class="hljs-string">"/tokens/:fid"</span>, async (c) <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {
	const fid <span class="hljs-operator">=</span> c.req.param(<span class="hljs-string">"fid"</span>);

	const followerRes <span class="hljs-operator">=</span> await fetch(
		`https:<span class="hljs-comment">//api.quotient.social/v1/farcaster-users/mutuals`,</span>
		{
			method: <span class="hljs-string">"POST"</span>,
			headers: {
				<span class="hljs-string">"Content-Type"</span>: <span class="hljs-string">"application/json"</span>,
			},
			body: JSON.stringify({
				fid: Number(fid),
				api_key: c.env.QUOTIENT_API_KEY,
			}),
		},
	);

	<span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>followerRes.ok) {
		<span class="hljs-keyword">return</span> c.json({ <span class="hljs-function"><span class="hljs-keyword">error</span>: "<span class="hljs-title">Problem</span> <span class="hljs-title">fetching</span> <span class="hljs-title">follower</span> <span class="hljs-title">data</span>" }, 500)</span>;
	}

	const followerData <span class="hljs-operator">=</span> (await followerRes.json()) <span class="hljs-keyword">as</span> FollowerResponse;

	const followers: number[] <span class="hljs-operator">=</span> [];

	<span class="hljs-keyword">for</span> (const follower of followerData.mutual_followers) {
		followers.<span class="hljs-built_in">push</span>(follower.fid);
	}

	const tokenRes <span class="hljs-operator">=</span> await fetch(
		<span class="hljs-string">"https://api.quotient.social/v1/holds-clankers"</span>,
		{
			method: <span class="hljs-string">"POST"</span>,
			headers: {
				<span class="hljs-string">"Content-Type"</span>: <span class="hljs-string">"application/json"</span>,
			},
			body: JSON.stringify({
				fids: followers,
				api_key: c.env.QUOTIENT_API_KEY,
				chain: <span class="hljs-string">"arbitrum"</span>,
			}),
		},
	);

	<span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>tokenRes.ok) {
		<span class="hljs-keyword">return</span> c.json({ <span class="hljs-function"><span class="hljs-keyword">error</span>: "<span class="hljs-title">Problem</span> <span class="hljs-title">fetching</span> <span class="hljs-title">token</span> <span class="hljs-title">data</span>" }, 500)</span>;
	}

	const tokens <span class="hljs-operator">=</span> (await tokenRes.json()) <span class="hljs-keyword">as</span> TokenResponse;

	<span class="hljs-keyword">return</span> c.json(tokens);
});
</code></pre><p>This API accepts a user's FID as a path parameter, retrieves mutual followers, constructs an FID array from results, and passes this data to <code>/holds-clankers</code> to obtain token information. The client requires only FID retrieval and API invocation:</p><pre data-type="codeBlock" text="const fetchTopClankers = async (): Promise<ClankerResponse> => {
	const context = await sdk.context;
	const fid = context.user.fid;
	const response = await fetch(
		`${import.meta.env.VITE_SERVER_URL}/tokens/${fid}`,
	);
	if (!response.ok) {
		throw new Error(&quot;Failed to fetch clankers&quot;);
	}
	return response.json();
};
"><code>const fetchTopClankers <span class="hljs-operator">=</span> async (): Promise<span class="hljs-operator">&lt;</span>ClankerResponse<span class="hljs-operator">&gt;</span> <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {
	const context <span class="hljs-operator">=</span> await sdk.context;
	const fid <span class="hljs-operator">=</span> context.user.fid;
	const response <span class="hljs-operator">=</span> await fetch(
		`${<span class="hljs-keyword">import</span>.meta.env.VITE_SERVER_URL}<span class="hljs-operator">/</span>tokens<span class="hljs-operator">/</span>${fid}`,
	);
	<span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>response.ok) {
		<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Failed to fetch clankers"</span>);
	}
	<span class="hljs-keyword">return</span> response.json();
};
</code></pre><p>These components enable construction of sophisticated social data applications with significant functionality potential.</p><h2 id="h-accessing-wallets-and-executing-swaps" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Accessing Wallets and Executing Swaps</h2><p>Beyond token display, we enable users to swap tokens using their integrated Farcaster wallet. This requires wallet connection within the sandboxed environment, which the Mini App SDK addresses through a Wagmi connector for your Wagmi configuration file. We designate Arbitrum as our target chain.</p><pre data-type="codeBlock" text="import { http, createConfig } from &quot;wagmi&quot;;
import { arbitrum } from &quot;wagmi/chains&quot;;
import { farcasterMiniApp as miniAppConnector } from &quot;@farcaster/miniapp-wagmi-connector&quot;;

export const config = createConfig({
	chains: [arbitrum],
	transports: {
		[arbitrum.id]: http(),
	},
	connectors: [miniAppConnector()],
});
"><code><span class="hljs-keyword">import</span> { <span class="hljs-title">http</span>, <span class="hljs-title">createConfig</span> } <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"wagmi"</span>;
<span class="hljs-keyword">import</span> { <span class="hljs-title">arbitrum</span> } <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"wagmi/chains"</span>;
<span class="hljs-keyword">import</span> { <span class="hljs-title">farcasterMiniApp</span> <span class="hljs-title"><span class="hljs-keyword">as</span></span> <span class="hljs-title">miniAppConnector</span> } <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"@farcaster/miniapp-wagmi-connector"</span>;

export const config <span class="hljs-operator">=</span> createConfig({
	chains: [arbitrum],
	transports: {
		[arbitrum.id]: http(),
	},
	connectors: [miniAppConnector()],
});
</code></pre><p>User wallet connection requires calling connect and specifying the connector:</p><pre data-type="codeBlock" text="connect({ connector: connectors[0] });
"><code>connect({ connector: connectors<span class="hljs-section">[0]</span> })<span class="hljs-comment">;</span>
</code></pre><p>Wagmi functions identically to standard applications. The Farcaster wallet provides direct access to integrated swap functionality without requiring additional widget setup or packages. Execute <code>await sdk.actions.swapTokens()</code> with arguments in CAIP-19 format:</p><pre data-type="codeBlock" text="// Convert token addresses to CAIP-19 format
const sellToken = `eip155:42161/erc20:${USDC_ADDRESS}`;
const buyToken = `eip155:42161/erc20:${token.address}`;

// Default amount of USDC to swap (1 USDC)
const sellAmount = (1 * Math.pow(10, USDC_DECIMALS)).toString();

const result = await sdk.actions.swapToken({
	sellToken,
	buyToken,
	sellAmount,
});
"><code><span class="hljs-comment">// Convert token addresses to CAIP-19 format</span>
const sellToken <span class="hljs-operator">=</span> `eip155:<span class="hljs-number">42161</span><span class="hljs-operator">/</span>erc20:${USDC_ADDRESS}`;
const buyToken <span class="hljs-operator">=</span> `eip155:<span class="hljs-number">42161</span><span class="hljs-operator">/</span>erc20:${token.<span class="hljs-built_in">address</span>}`;

<span class="hljs-comment">// Default amount of USDC to swap (1 USDC)</span>
const sellAmount <span class="hljs-operator">=</span> (<span class="hljs-number">1</span> <span class="hljs-operator">*</span> Math.pow(<span class="hljs-number">10</span>, USDC_DECIMALS)).toString();

const result <span class="hljs-operator">=</span> await sdk.actions.swapToken({
	sellToken,
	buyToken,
	sellAmount,
});
</code></pre><p>This action automatically opens the user's Farcaster Wallet with preconfigured token amounts and addresses, then identifies an optimal route.</p><p>All ArbSwap code demonstrated here operates as open source and remains available in the repository below.</p><h2 id="h-summary" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Summary</h2><p>Mini Apps function as web applications with integrated blockchain and cryptocurrency capabilities. They access rich social graph data, integrate this information into user experiences, and provide seamless wallet access.</p><p>Mini Apps support custom authentication flows, notification sending, and cross-application page linking. The development potential remains substantial, particularly for Arbitrum applications.</p><p>Arbitrum delivers adequate decentralization, minimal fees, and rapid transaction processing as one of the few L2 chains meeting these criteria.</p><p>Despite this success, insufficient Arbitrum applications exist on Farcaster. This represents your opportunity.</p><p>Consider Farcaster, Arbitrum, and Quotient for your next application launch when requiring comprehensive data infrastructure. </p><h3 id="h-stay-in-touch" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Stay in touch</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/arbitrum">Arbitrum Farcaster Account</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/quotient">Quotient Farcaster Account</a></p></li></ul><br>]]></content:encoded>
            <author>quotient@newsletter.paragraph.com (Steve)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/c4a88cb9d8e60d5082fbe4be585f96cc.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>