<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Stellar Development Foundation</title>
    <description>The latest articles on DEV Community by Stellar Development Foundation (@stellar).</description>
    <link>https://dev.to/stellar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5369%2F6b11b000-3d17-4c53-b7db-f0fb2d6962dd.png</url>
      <title>DEV Community: Stellar Development Foundation</title>
      <link>https://dev.to/stellar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stellar"/>
    <language>en</language>
    <item>
      <title>Dev Diaries Ep.6 | Launch Day</title>
      <dc:creator>James Bachini</dc:creator>
      <pubDate>Mon, 13 Oct 2025 11:20:15 +0000</pubDate>
      <link>https://dev.to/stellar/dev-diaries-ep6-launch-day-33ni</link>
      <guid>https://dev.to/stellar/dev-diaries-ep6-launch-day-33ni</guid>
      <description>&lt;p&gt;Startups in Web3 don’t launch like traditional products, there are no rollbacks, no "patch it later" second tries.&lt;/p&gt;

&lt;p&gt;When you hit deploy on-chain, it's live and responsible for financial transactions.&lt;/p&gt;

&lt;p&gt;In Episode 6 of the Stellar Dev Diaries, the Freelii team takes the leap every founder dreams about: &lt;strong&gt;launching on Stellar mainnet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🎥 Check out Episode 6: Launch Day&lt;br&gt;&lt;br&gt;


  &lt;iframe src="https://www.youtube.com/embed/7Yf2g7meHKc"&gt;
  &lt;/iframe&gt;


&lt;br&gt;&lt;br&gt;
📺 &lt;a href="https://youtu.be/7Yf2g7meHKc" rel="noopener noreferrer"&gt;Watch it on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this episode, the team reflects on the reality of launch day:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚀 The emotions of finally going live after months of testing and preparation
&lt;/li&gt;
&lt;li&gt;😬 The nerves and risks of pushing code to an immutable blockchain
&lt;/li&gt;
&lt;li&gt;🛠 The last-minute fixes and checks before hitting deploy
&lt;/li&gt;
&lt;li&gt;🤝 How Stellar’s support—grants, feedback, and guidance—made launch possible
&lt;/li&gt;
&lt;li&gt;💡 Advice for other Web3 founders preparing for mainnet
&lt;/li&gt;
&lt;li&gt;🔮 Their vision for how Web3 and DeFi will evolve over the next decade
&lt;/li&gt;
&lt;li&gt;💳 What’s next for Freelii&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Launch day isn't hype, it's execution. Freelii is live. Mainnet is real. And this is just the beginning.  &lt;/p&gt;

&lt;p&gt;🛠 Ready to build on Stellar? Dive into the dev docs:&lt;br&gt;&lt;br&gt;
🌐 &lt;a href="https://developers.stellar.org/" rel="noopener noreferrer"&gt;https://developers.stellar.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👀 Catch up on the series:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;How a Hackathon Project Became a Web3 Startup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 2: &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;How The Freeli Team Raised $70k+ In Funding&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 3: &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 4: &lt;a href="https://youtu.be/lnLLpgumOlA" rel="noopener noreferrer"&gt;Building Production Systems That Handle Real Money&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 5: &lt;a href="https://youtu.be/n2C2K3HHEV0" rel="noopener noreferrer"&gt;Startup Life Isn't Always Glamorous&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 6: &lt;a href="https://youtu.be/7Yf2g7meHKc" rel="noopener noreferrer"&gt;Launch Day&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devdiaries</category>
      <category>dev</category>
      <category>devjournal</category>
      <category>stellar</category>
    </item>
    <item>
      <title>Dev Diaries Episode 5 – Startup Life Isn't Always Glamorous</title>
      <dc:creator>James Bachini</dc:creator>
      <pubDate>Fri, 05 Sep 2025 11:34:24 +0000</pubDate>
      <link>https://dev.to/stellar/dev-diaries-episode-5-startup-life-isnt-always-glamorous-5gm</link>
      <guid>https://dev.to/stellar/dev-diaries-episode-5-startup-life-isnt-always-glamorous-5gm</guid>
      <description>&lt;p&gt;Startups in Web3 don’t follow straight lines. The technology shifts under your feet, the rules are unclear, and the grind is relentless. In Episode 5 of the Stellar Dev Diaries, we step away from code and architecture to explore the human side of building Freelii.&lt;/p&gt;

&lt;p&gt;🎥 Check out Episode 5: Startup Life Isn’t Always Glamorous&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/n2C2K3HHEV0"&gt;
  &lt;/iframe&gt;
&lt;br&gt;
📺 &lt;a href="https://youtu.be/n2C2K3HHEV0" rel="noopener noreferrer"&gt;Watch it on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this episode, Jose and Joseph open up about the unseen struggles of startup life:&lt;/p&gt;

&lt;p&gt;⚡ The pressure of shipping products that must work on-chain, with no safety net&lt;br&gt;
💡 Features they dreamed of building if time and resources weren’t constraints&lt;br&gt;
😓 The lowest points of the journey—and what kept them moving forward&lt;br&gt;
🤝 Lessons in trust, persistence, and teamwork that made Freelii possible&lt;br&gt;
🤖 How AI tools like ChatGPT helped (and sometimes failed) when building at the cutting edge&lt;br&gt;
🌐 Why Stellar’s transparency and reliability made it the right home for Freelii&lt;/p&gt;

&lt;p&gt;Startup life isn't always glamorous. It’s late nights, broken builds, and quiet persistence. Episode 5 shows what it really takes to keep going when the hype fades and the grind begins.&lt;/p&gt;

&lt;p&gt;🛠 Ready to build on Stellar? Dive into the dev docs:&lt;br&gt;
🌐 &lt;a href="https://developers.stellar.org/" rel="noopener noreferrer"&gt;https://developers.stellar.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👀 Catch up on the series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;How a Hackathon Project Became a Web3 Startup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 2: &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;How The Freeli Team Raised $70k+ In Funding&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 3: &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 4: &lt;a href="https://youtu.be/lnLLpgumOlA" rel="noopener noreferrer"&gt;Building Production Systems That Handle Real Money&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 5: &lt;a href="https://youtu.be/n2C2K3HHEV0" rel="noopener noreferrer"&gt;Startup Life Isn't Always Glamorous&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devdiaries</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Dev Diaries Episode 4 – Building A Reliable Payout System In DeFi</title>
      <dc:creator>James Bachini</dc:creator>
      <pubDate>Fri, 08 Aug 2025 23:55:41 +0000</pubDate>
      <link>https://dev.to/stellar/dev-diaries-episode-4-building-a-reliable-payout-system-in-defi-17hj</link>
      <guid>https://dev.to/stellar/dev-diaries-episode-4-building-a-reliable-payout-system-in-defi-17hj</guid>
      <description>&lt;p&gt;Ever wondered what it really takes to move money at scale using blockchain? In Episode 4 of the Stellar Dev Diaries, we go under the hood with the Freelii team as they tackle one of the hardest challenges in Web3: building a secure, reliable, cross-border payout system.&lt;/p&gt;

&lt;p&gt;🎥 Check out Episode 4: Building a Reliable Payout System in DeFi&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/lnLLpgumOlA"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📺 &lt;a href="https://youtu.be/lnLLpgumOlA" rel="noopener noreferrer"&gt;Watch it on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Missed earlier episodes?&lt;br&gt;
👉 Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;How a Hackathon Project Became a Web3 Startup&lt;/a&gt;&lt;br&gt;
👉 Episode 2: &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;How The Freeli Team Raised $70k+ In Funding&lt;/a&gt;&lt;br&gt;
👉 Episode 3: &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;&lt;br&gt;
👉 Episode 4: &lt;a href="https://youtu.be/lnLLpgumOlA" rel="noopener noreferrer"&gt;Building Production Systems That Handle Real Money&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In Episode 4, we dive deep into the technical architecture behind Freelii’s payout system. The mission? Help businesses pay global teams without the pain of traditional banking delays and fees.&lt;/p&gt;

&lt;p&gt;We explore:&lt;/p&gt;

&lt;p&gt;🔧 How Freelii designed a system to handle real money, real users, and real risk&lt;br&gt;
🌐 Solving the cross-border payment problem for influencer houses, remote teams, and digital businesses&lt;br&gt;
🚀 Why they chose Stellar for its speed, low fees, and powerful anchor ecosystem&lt;br&gt;
💡 How “policy signers” let them execute secure automated transactions without user interaction&lt;br&gt;
🧪 The challenge of testing without a sandbox—and how the team used Stellar’s testnet and custom tools to bridge the gap&lt;br&gt;
📊 How a serverless backend with Upstash queues ensures reliable transaction execution&lt;/p&gt;

&lt;p&gt;🛠 Ready to build on Stellar? Dive into the dev docs:&lt;br&gt;
🌐 &lt;a href="https://developers.stellar.org/" rel="noopener noreferrer"&gt;https://developers.stellar.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow the Freelii team as they continue building toward launch. Episode 4 is all about going live on mainnet—don’t miss it!&lt;/p&gt;

&lt;p&gt;👀 Watch the series:&lt;br&gt;
🎬 Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;How a Hackathon Project Became a Web3 Startup&lt;/a&gt;&lt;br&gt;
🎬 Episode 2: &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;How The Freeli Team Raised $70k+ In Funding&lt;/a&gt;&lt;br&gt;
🎬 Episode 3: &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;&lt;br&gt;
🎬 Episode 4: &lt;a href="https://youtu.be/lnLLpgumOlA" rel="noopener noreferrer"&gt;Building Production Systems That Handle Real Money&lt;/a&gt;&lt;/p&gt;

</description>
      <category>defi</category>
      <category>stellar</category>
      <category>devdiaries</category>
      <category>web3</category>
    </item>
    <item>
      <title>Dev Diaries Episode 3 - User Feedback &amp; The Pivot That Saved The Project</title>
      <dc:creator>James Bachini</dc:creator>
      <pubDate>Tue, 24 Jun 2025 11:58:49 +0000</pubDate>
      <link>https://dev.to/stellar/dev-diaries-episode-3-user-feedback-the-pivot-that-saved-the-project-54g7</link>
      <guid>https://dev.to/stellar/dev-diaries-episode-3-user-feedback-the-pivot-that-saved-the-project-54g7</guid>
      <description>&lt;p&gt;In the Stellar Dev Diaries series, we’re following the journey of a dev team building on the Stellar Network as they go from hackathon idea to funded startup, testing their product in the real world and adapting as they go.&lt;/p&gt;

&lt;p&gt;🎥 Check out Episode 3: User Feedback &amp;amp; The Pivot That Saved The Project&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/krWqGMv-Tq4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📺 [&lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Missed the earlier episodes?&lt;br&gt;
👉 &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;Episode 1: How a Hackathon Project Became a Web3 Startup&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;Episode 2: How the Freelii Team Raised $70k+ In Funding&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s It All About?
&lt;/h2&gt;

&lt;p&gt;In this series, we go behind the scenes with the team at Freelii as they build and launch a new product on the Stellar Network. You’ll get a raw, unfiltered look at the process—ideation, feedback, failure, and pivots—all while working with the cutting-edge tools Web3 has to offer.&lt;/p&gt;

&lt;p&gt;Each episode explores the team’s journey from prototype to product, sharing not only technical insights and code walkthroughs, but also the hard lessons learned when your ideas meet the real world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Episode 3
&lt;/h2&gt;

&lt;p&gt;Episode 3 is all about the pivot—and the power of listening.&lt;/p&gt;

&lt;p&gt;After developing an early version of their chatbot-based remittance product, José and Joseph took it to the Philippines to test in one of the world’s largest remittance markets. The feedback was humbling. Users didn’t trust messaging apps for handling money. The team’s assumptions didn’t hold up, and it forced a tough but necessary shift in direction.&lt;/p&gt;

&lt;p&gt;Instead of sticking to the original plan, the team listened. And that led them to a better opportunity: automating business payouts.&lt;/p&gt;

&lt;p&gt;💡 “We stopped trying to get individuals to change their behaviour and started solving a real, painful problem for businesses.”&lt;/p&gt;

&lt;p&gt;This episode covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Field-testing a Web3 prototype in the real world&lt;/li&gt;
&lt;li&gt;Gathering user feedback in one of the world’s top remittance markets&lt;/li&gt;
&lt;li&gt;Why cultural insights matter when designing fintech tools&lt;/li&gt;
&lt;li&gt;Learning that trust and compliance are more important than tech novelty&lt;/li&gt;
&lt;li&gt;Discovering a new use case by talking to business owners&lt;/li&gt;
&lt;li&gt;Pivoting from a consumer remittance app to a B2B payout automation platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This pivot plays directly to Stellar’s strengths—fast, low-cost transactions and seamless crypto-to-cash conversion—while giving the team a much clearer go-to-market strategy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Takeaway?
&lt;/h2&gt;

&lt;p&gt;If you're building in Web3: talk to your users early and often.&lt;br&gt;
Innovation means nothing if it doesn’t solve a real problem.&lt;/p&gt;

&lt;p&gt;Freelii’s journey is a masterclass in adaptability—proof that the best ideas are often uncovered after launch, not before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Up
&lt;/h2&gt;

&lt;p&gt;In Episode 4, we dive into the technical side of the new payout system—how it works, what’s under the hood, and the Stellar features that power it.&lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

&lt;p&gt;🛠 Want to start building on Stellar? Check out the dev docs here:&lt;br&gt;
&lt;a href="https://developers.stellar.org/docs" rel="noopener noreferrer"&gt;https://developers.stellar.org/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔐 Learn more about passkeys here:&lt;br&gt;
&lt;a href="https://jamesbachini.com/webauthn-passkey-smart-wallets/" rel="noopener noreferrer"&gt;https://jamesbachini.com/webauthn-passkey-smart-wallets/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👀 Catch up on the full series so far:&lt;/p&gt;

&lt;p&gt;📺 &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;Episode 1: How a Hackathon Project Became a Web3 Startup&lt;/a&gt;&lt;br&gt;
📺 &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;Episode 2: How the Freelii Team Raised $70k+ In Funding&lt;/a&gt;&lt;br&gt;
📺 &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;Episode 3: User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow the journey. Learn by building.&lt;/p&gt;

</description>
      <category>payments</category>
      <category>webdev</category>
      <category>web3</category>
      <category>stellar</category>
    </item>
    <item>
      <title>🚀 Stellar Dev Diaries: Episode 2 - Becoming Fundable</title>
      <dc:creator>James Bachini</dc:creator>
      <pubDate>Thu, 08 May 2025 07:06:50 +0000</pubDate>
      <link>https://dev.to/stellar/stellar-dev-diaries-episode-2-becoming-fundable-4kg3</link>
      <guid>https://dev.to/stellar/stellar-dev-diaries-episode-2-becoming-fundable-4kg3</guid>
      <description>&lt;p&gt;Ever wondered what it takes to build a Web3 startup from scratch? In the Stellar Dev Diaries series, we’re following the journey of a team of developers building on the &lt;a href="https://stellar.org/?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;Stellar Network&lt;/a&gt; as they go from hackathon wins to getting funded and launching their product on mainnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out Episode 2: Becoming Fundable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Azz2QPUX4Xs"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Missed Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;Watch it here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s It All About?
&lt;/h2&gt;

&lt;p&gt;In this series, we take a deep dive into the experiences of the Freelii team as they build and launch their product on the Stellar Network.&lt;/p&gt;

&lt;p&gt;Throughout the series, you'll get an inside look at what it takes to go from zero to one: turning ideas into products, getting funded, and scaling a startup in a fast-moving space. Each episode will feature real code examples with walkthroughs of the features the team used and the challenges they encountered along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Episode 2
&lt;/h2&gt;

&lt;p&gt;In Episode 2, we explore how the team pivoted from their initial idea into something with broader appeal to secure more hackathon wins. We also hear more about their experiences navigating the grant application process to secure funding from the &lt;a href="https://communityfund.stellar.org/?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;Stellar Community Fund&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;On the technical side, we go deeper into the tools that Jose and Joseph used to build the first version of the Freelii remittance chatbot, discussing some key Stellar features that made it possible. &lt;/p&gt;

&lt;p&gt;In this episode, we dive into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; The experience of going from hackathon partners to full-blown entrepreneurs&lt;/li&gt;
&lt;li&gt; Building a Telegram mini app&lt;/li&gt;
&lt;li&gt; Leveraging &lt;a href="https://stellar.org/learn/anchor-basics" rel="noopener noreferrer"&gt;Stellar Anchors&lt;/a&gt; for seamless on-ramping&lt;/li&gt;
&lt;li&gt; Successfully applying for a grant from the Stellar Community Fund&lt;/li&gt;
&lt;li&gt; Managing early-stage costs to maximize runway&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want to know what it takes to build and launch a product in Web3? Then keep watching as we follow José and Joseph on their journey from idea to mainnet. &lt;/p&gt;

&lt;p&gt;To learn more about the Stellar Anchors feature that we discussed in the episode, check out the tutorials here: &lt;/p&gt;

&lt;p&gt;✒️ &lt;a href="https://jamesbachini.com/stellar-anchor-platform/" rel="noopener noreferrer"&gt;https://jamesbachini.com/stellar-anchor-platform/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📺 &lt;a href="https://youtu.be/57iZMxAr_1Y" rel="noopener noreferrer"&gt;https://youtu.be/57iZMxAr_1Y&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To start building on Stellar, check out the &lt;a href="https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;developer docs here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Follow the Freelii team as they build, adapt, and prepare to launch their product on the Stellar Network. Check out all the episodes here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;How a Hackathon Project Became a Web3 Startup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 2: &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;How The Freeli Team Raised $70k+ In Funding&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 3: &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>🚀 Stellar Dev Diaries Series: Episode 1 is LIVE!</title>
      <dc:creator>James Bachini</dc:creator>
      <pubDate>Wed, 09 Apr 2025 19:52:43 +0000</pubDate>
      <link>https://dev.to/stellar/stellar-dev-diaries-series-episode-1-is-live-10j2</link>
      <guid>https://dev.to/stellar/stellar-dev-diaries-series-episode-1-is-live-10j2</guid>
      <description>&lt;p&gt;Ever wondered what it takes to build a web3 startup from scratch? In the Stellar Dev Diaries series, we follow the journey of a team of developers building on the &lt;a href="https://stellar.org/?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;Stellar Network&lt;/a&gt; as they go from hackathon win to getting funded and launching on mainnet. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out Episode 1: How a Hackathon Project Became a Web3 Startup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/FInE2PSx1es"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s It All About?
&lt;/h2&gt;

&lt;p&gt;In the Stellar Dev Diaries, we take a dive deep into the experiences of the Freelii team as they build and launch their product on the Stellar Network.&lt;/p&gt;

&lt;p&gt;As we follow their journey, you'll get the insider's playbook: turning ideas into products, getting funded, transitioning from Web2 to Web3, and scaling a startup in a space that's still being defined. On top of that, each episode will feature real code examples with walkthroughs of the features they used and challenges they encountered. &lt;/p&gt;

&lt;h2&gt;
  
  
  Episode 1
&lt;/h2&gt;

&lt;p&gt;In Episode 1, we meet José Toscano and Joseph Anthony, the brains behind Freelii, a startup that started as a hackathon win right here on Dev.to and went on to win again at Stellar’s Hack Meridian in London.&lt;br&gt;
Realizing that they had a winning partnership and a great product idea, José and Joseph secured funding, quit their 9-to-5 jobs, and went all in on Freelii.&lt;/p&gt;

&lt;p&gt;In this episode, we dive into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The hackathon wins that sparked the journey.&lt;/li&gt;
&lt;li&gt;The moment José and Joseph decided to go all-in.&lt;/li&gt;
&lt;li&gt;Building a working prototype on Stellar.&lt;/li&gt;
&lt;li&gt;Using the PassKeys feature of &lt;a href="https://stellar.org/soroban?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;Soroban&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Getting funded via the &lt;a href="https://communityfund.stellar.org/?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;Stellar Community Fund&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want to know what it takes to build and launch a product in Web3? Then keep watching as we follow José and Joseph on their journey from idea to mainnet. &lt;/p&gt;

&lt;p&gt;If you want to learn more about the PassKeys feature that we discussed in the episode, check out the tutorials here: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/QGUh6CjcNcA" rel="noopener noreferrer"&gt;https://youtu.be/QGUh6CjcNcA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jamesbachini.com/webauthn-passkey-smart-wallets/" rel="noopener noreferrer"&gt;https://jamesbachini.com/webauthn-passkey-smart-wallets/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to start building on Stellar, check out the &lt;a href="https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup?utm_source=dev.to&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=dev-diaries-s1"&gt;developer docs here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Follow the Freelii team as they build, adapt, and prepare to launch their product on the Stellar Network. Check out all the episodes here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Episode 1: &lt;a href="https://youtu.be/FInE2PSx1es" rel="noopener noreferrer"&gt;How a Hackathon Project Became a Web3 Startup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 2: &lt;a href="https://youtu.be/Azz2QPUX4Xs" rel="noopener noreferrer"&gt;How The Freeli Team Raised $70k+ In Funding&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Episode 3: &lt;a href="https://youtu.be/krWqGMv-Tq4" rel="noopener noreferrer"&gt;User Feedback &amp;amp; The Pivot That Saved The Project&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devdiaries</category>
      <category>sponsored</category>
    </item>
    <item>
      <title>Building dApps on Stellar</title>
      <dc:creator>Julian Martinez</dc:creator>
      <pubDate>Fri, 02 Aug 2024 14:40:35 +0000</pubDate>
      <link>https://dev.to/stellar/building-dapps-on-stellar-g7</link>
      <guid>https://dev.to/stellar/building-dapps-on-stellar-g7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part of a series of livestreams designed to help the community participate in the &lt;a href="https://dev.to/devteam/join-us-for-the-first-community-smart-contract-challenge-with-50000-in-prizes-41gl"&gt;Build Better on Stellar: Smart Contract Challenge&lt;/a&gt;:&lt;/em&gt;&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/devteam" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg" alt="The DEV Team" width="800" height="800"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3%2F13d3b32a-d381-4549-b95e-ec665768ce8f.png" alt="" width="500" height="500"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/devteam/join-us-for-the-first-community-smart-contract-challenge-with-50000-in-prizes-41gl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Join Us For The First Community Smart Contract Challenge With $50,000 In Prizes!&lt;/h2&gt;
      &lt;h3&gt;dev.to staff for The DEV Team ・ Jul 10 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#devchallenge&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#stellarchallenge&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#web3&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#blockchain&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;In this video, we build a full-stack crowdfunding dApp using Stellar smart contracts. The session covers the following topics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuring the development environment&lt;/li&gt;
&lt;li&gt;Initializing and setting up a project using example templates&lt;/li&gt;
&lt;li&gt;Integrating Freighter wallets for user authentication and interaction&lt;/li&gt;
&lt;li&gt;Minting tokens&lt;/li&gt;
&lt;li&gt;Making deposits and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pfviOwq9gOQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Upcoming Streams
&lt;/h3&gt;

&lt;p&gt;Looking for some live support? Join our next stream. &lt;strong&gt;All sessions start at 12pm EDT.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;8/1: Intro to Passkeys&lt;/li&gt;
&lt;li&gt;8/6: Migrating from Web2 to Web3&lt;/li&gt;
&lt;li&gt;8/8: Stellar Community Fund&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>stellarchallenge</category>
      <category>rust</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Intro to Stellar: Get Started in Rust, Set Up Your Development Environment, and Write Your First Smart Contract</title>
      <dc:creator>Julian Martinez</dc:creator>
      <pubDate>Thu, 25 Jul 2024 15:51:01 +0000</pubDate>
      <link>https://dev.to/stellar/intro-to-stellar-get-started-in-rust-set-up-your-development-environment-and-write-your-first-smart-contract-2gnp</link>
      <guid>https://dev.to/stellar/intro-to-stellar-get-started-in-rust-set-up-your-development-environment-and-write-your-first-smart-contract-2gnp</guid>
      <description>&lt;p&gt;Hello! This is the first in a series of five livestreams designed to help the community participate in the &lt;a href="https://dev.to/challenges/stellar"&gt;Build Better on Stellar: Smart Contract Challenge&lt;/a&gt;:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/devteam" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg" alt="The DEV Team" width="800" height="800"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3%2F13d3b32a-d381-4549-b95e-ec665768ce8f.png" alt="" width="500" height="500"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/devteam/join-us-for-the-first-community-smart-contract-challenge-with-50000-in-prizes-41gl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Join Us For The First Community Smart Contract Challenge With $50,000 In Prizes!&lt;/h2&gt;
      &lt;h3&gt;dev.to staff for The DEV Team ・ Jul 10 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#devchallenge&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#stellarchallenge&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#web3&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#blockchain&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;In this video, we cover the basics of Rust smart contract development, which includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting up Okashi, a smart contract playground for Soroban&lt;/li&gt;
&lt;li&gt;Key concepts such as data types, storage management, functions, and the Stellar CLI&lt;/li&gt;
&lt;li&gt;Deploying on Stellar testnet and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/LNU-xgZbCIE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Resources:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Julian-dev28" rel="noopener noreferrer"&gt;
        Julian-dev28
      &lt;/a&gt; / &lt;a href="https://github.com/Julian-dev28/consensus-hackathon-c2defi" rel="noopener noreferrer"&gt;
        consensus-hackathon-c2defi
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      everything you need to know about the consensus hackathon
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Consensus Hackathon Cash to DeFi&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Welcome to the Consensus Hackathon Cash to DeFi track! This README serves as your comprehensive guide to everything you need to know about the hackathon, from the workshop overview to important resources and judging criteria.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Workshop Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This hackathon track is based on the Consensus Workshop: Cash to DeFi Track. The workshop aims to onboard developers to the Stellar ecosystem and provide guidance on building decentralized finance (DeFi) applications using Rust and smart contracts.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Workshop&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Introduction to Rust and the Development Environment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building Defi Smart Contracts&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building Defi Dapp Frontend&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Workshop Resources&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;The concepts behind the Staking Workshop are designed to help you understand the basics of Rust and smart contract development on the Stellar network.&lt;/p&gt;
&lt;p&gt;The following resources cover the concepts behind the staking example and provide a foundation for building more complex applications.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Introduction to Rust and the Development Environment&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developers.stellar.org/docs/smart-contracts/getting-started/setup" rel="nofollow noopener noreferrer"&gt;Stellar Docs:&lt;/a&gt;&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Julian-dev28/consensus-hackathon-c2defi" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Upcoming Streams
&lt;/h3&gt;

&lt;p&gt;Looking for some live support? Join our next stream. &lt;strong&gt;All sessions start at 12pm EDT.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;7/30: Build a dApp&lt;/li&gt;
&lt;li&gt;8/1: Intro to Passkeys&lt;/li&gt;
&lt;li&gt;8/6: Migrating from Web2 to Web3&lt;/li&gt;
&lt;li&gt;8/8: Stellar Community Fund&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>stellarchallenge</category>
      <category>rust</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Building Hello World Smart Contracts: Solidity vs. Soroban Rust SDK - A Step-by-Step Guide</title>
      <dc:creator>Julian Martinez</dc:creator>
      <pubDate>Tue, 09 Jul 2024 13:17:25 +0000</pubDate>
      <link>https://dev.to/stellar/building-hello-world-smart-contracts-solidity-vs-soroban-rust-sdk-a-step-by-step-guide-3909</link>
      <guid>https://dev.to/stellar/building-hello-world-smart-contracts-solidity-vs-soroban-rust-sdk-a-step-by-step-guide-3909</guid>
      <description>&lt;p&gt;How to migrate smart contracts from Ethereum’s Solidity to Soroban Rust &lt;br&gt;
In this tutorial, we'll explore the intricacies of two major smart contract programming environments: Ethereum's Solidity and Soroban’s Rust SDK and why should consider migrating your smart contracts to Rust&lt;/p&gt;
&lt;h2&gt;
  
  
  Why would a blockchain developer choose Rust over Solidity?
&lt;/h2&gt;

&lt;p&gt;In the blockchain and smart contract realm, Rust is a standout choice for developers, and here's why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speed &amp;amp; Efficiency&lt;/strong&gt;: Rust whizzes through tasks like a sports car in style. It is super fast, even outpacing C++ when it comes to speed and efficiency so that your blockchain operations are not just quick but also smart, saving on resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type Safety&lt;/strong&gt;: Picture Rust's type system as a meticulous inspector, who is watching each bit of your code at compile time. This means fewer errors and a safer environment for your smart contracts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Safety Without the Overhead&lt;/strong&gt;: Rust boasts top-shelf memory safety, acting as an invisible shield against vulnerabilities critical in the blockchain world. And it does this leanly without needing a garbage collector, keeping your projects lean and fortified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conquering Concurrency with Ease&lt;/strong&gt;: In blockchain, handling simultaneous transactions is like juggling fireballs. Rust excels in managing multiple operations seamlessly, preventing the common complications seen in other languages. This leads to faster, safer processing of transactions, enhancing the overall performance of your smart contracts.
Rust combines speed, safety, and execution efficiency making it an ideal language for blockchain development where such qualities are demanded. So how does Rust stack up against Solidity?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  What’s the difference between EVM and Soroban?
&lt;/h2&gt;
&lt;h3&gt;
  
  
  What is the EVM?
&lt;/h3&gt;

&lt;p&gt;The Ethereum Virtual Machine (EVM) is a core component of the Ethereum blockchain network. It is a virtual environment that allows for the execution of smart contracts and decentralized applications (dApps). While Ethereum is the primary network utilizing the EVM, other blockchain platforms have adopted or created compatible versions of the EVM. For instance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Avalanche has its own virtual machine, the Avalanche Virtual Machine (AVM), but it also supports the EVM through its C-Chain, enabling compatibility with Ethereum-based applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimism and Polygon are Layer 2 solutions built on top of the Ethereum blockchain. They use Optimistic Rollups and Polygon's own technology, respectively, but are compatible with the EVM. This means they can run Ethereum smart contracts and dApps.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each blockchain network can have its own consensus mechanisms, underlying architecture, and protocol implementations. Geth (Go Ethereum, an implementation of an Ethereum node in the Go programming language) is specifically an Ethereum client, and while other networks might draw inspiration or use aspects of Ethereum's technology, they often have distinct core protocols and implementations.&lt;/p&gt;

&lt;p&gt;In EVM Land, Solidity is the go-to language for developing smart contracts. Here's a quick rundown for my fellow builders:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;​​Object-Oriented Approach&lt;/strong&gt;: Just like other OOP languages, Solidity organizes code around data and objects, not just functions and logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-Level Language&lt;/strong&gt;: It abstracts away from the nitty-gritty of computer hardware, making development smoother and more intuitive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Statically-Typed&lt;/strong&gt;: Solidity checks your code for errors and type mismatches at compile time, saving you from a lot of headaches later.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What makes Solidity stand out is its role in powering decentralized transactions and managing blockchain accounts. Plus, if you're comfortable with JavaScript, C++, and Python you'll find Solidity's syntax familiar.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Soroban?
&lt;/h2&gt;

&lt;p&gt;Soroban is a smart contracts platform with sensibility, built-to-scale, batteries-included and developer-friendly wants.&lt;/p&gt;

&lt;p&gt;While it works great with Stellar being that it shares the blockchain's values of scale and sensibility, it neither depends nor requires Stellar at all and can be used by any transaction processor, including other blockchains, L2s, and permissioned ledgers.&lt;/p&gt;

&lt;p&gt;Currently, Soroban is available as a part of the v20 of Stellar protocol stable release. The package for the module consists of - smart contracts environment, a Rust SDK, A CLI, and an RPC server. Writing and testing of the contracts can be carried out on developers' local machines or deployed to Testnet.&lt;/p&gt;
&lt;h2&gt;
  
  
  Which programming language is used for Stellar smart contracts?
&lt;/h2&gt;

&lt;p&gt;Introduced in 2022, the Soroban Rust SDK is a suite of tools specifically for writing smart contracts on the Soroban platform. Built on Rust, it enables developers to create decentralized finance applications, automated market makers, and tokenized assets, while also leveraging some of Stellar's core functionalities.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Build a Hello World Smart Contract
&lt;/h2&gt;

&lt;p&gt;We will create two "Hello World" contracts: first in Solidity, then using the Soroban Rust SDK.&lt;/p&gt;

&lt;p&gt;Here is the video if you want to follow along:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/s8Ron2--78Y"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Solidity Version
&lt;/h2&gt;

&lt;p&gt;Open the remix-ide in your browser by navigating to: &lt;a href="https://remix.ethereum.org/" rel="noopener noreferrer"&gt;https://remix.ethereum.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr951u5mjwg5uyhwrmfnh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr951u5mjwg5uyhwrmfnh.png" alt="Solidity smart contract IDE" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the “create new file” icon in the "File Explorer" tab:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctrpxibn5lhbli2s95o6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctrpxibn5lhbli2s95o6.png" alt="Solidity smart contract IDE new file" width="520" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type the file name “HelloWorld.sol” and enter the following code into the ide:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
// compiler version must be greater than or equal to 0.8.20 and less than 0.9.0
pragma solidity &amp;gt;=0.7.0 &amp;lt;0.9.0;

contract HelloWorld {
    function hello(string memory to) public pure returns(string memory){
        string memory greeting = string(abi.encodePacked("hello ", to));
        return greeting;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's take a quick intermission to break down the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This comment indicates the license under which the code is released (MIT License).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pragma solidity &amp;gt;=0.7.0 &amp;lt;0.9.0;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line specifies that this code is compatible with Solidity compiler versions greater than or equal to 0.7.0 and less than 0.9.0. It sets compiler version boundaries to ensure code compatibility and expected behavior.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;contract HelloWorld {
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we declare a Solidity contract named "HelloWorld."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function hello(string memory to) public pure returns(string memory){
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line defines a function named "hello."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It takes one argument, a string named "to," which represents the name of the person you want to greet.&lt;/li&gt;
&lt;li&gt;The function is marked as "public," which means it can be called externally.&lt;/li&gt;
&lt;li&gt;The "pure" keyword indicates that this function does not modify the contract's state.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string memory greeting = string(abi.encodePacked("hello ", to));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the "hello" function, a new string variable "greeting" is declared.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is constructed by concatenating "hello" with the provided name using the &lt;strong&gt;abi.encodePacked&lt;/strong&gt; function.&lt;/li&gt;
&lt;li&gt;The result is stored in the "greeting" variable.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return greeting;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, the function returns the "greeting" string as the result of the function call.&lt;/p&gt;

&lt;p&gt;Now back to our regularly scheduled programming(🥁)&lt;/p&gt;

&lt;p&gt;Once the code is in Remix, click the "Solidity Compiler" icon below the “File Explorer” icon.&lt;/p&gt;

&lt;p&gt;Then, click “Compile HelloWorld.sol” or simply press &lt;code&gt;cmd+s&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0h4ca2jal5lqz86vin8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0h4ca2jal5lqz86vin8.png" alt="Solidity smart contract compile" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once compiled successfully click the icon below “Solidity Compiler” that is “Deploy &amp;amp; Run Transactions”. &lt;/p&gt;

&lt;p&gt;Without changing any of the values as shown above just click the “Deploy” button to deploy your smart contract. Once deployed you will find your smart contract just below in “Deployed Contracts” heading.&lt;/p&gt;

&lt;p&gt;Click “&amp;gt;” before your contract you will see a button “hello” below as our contract has a hello function variable that returns a string composed of “hello” + the value you passed in for the &lt;code&gt;to&lt;/code&gt; argument. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cjxdpnp8pqkuz7ul35d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cjxdpnp8pqkuz7ul35d.png" alt="Solidity smart contract deployment" width="800" height="721"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Define an value for to and then click the “hello” button to return the greeting:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpmqg52x42pszyc3sa06.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpmqg52x42pszyc3sa06.png" alt="Solidity smart contract function call" width="634" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nicely done! Now for the real Mccoy!&lt;/p&gt;

&lt;h2&gt;
  
  
  Soroban Rust SDK Version
&lt;/h2&gt;

&lt;p&gt;Open the smart contract playground built for Soroban, okashi, in your browser by navigating to: &lt;a href="https://okashi.dev/" rel="noopener noreferrer"&gt;https://okashi.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start a new project and name it HelloWorld.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr18yjqepsm5q39b2hnqn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr18yjqepsm5q39b2hnqn.jpg" alt="Stellar Rust smart contract new project" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter the following code into the IDE:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#![no_std]
use soroban_sdk::{contract, contractimpl, symbol_short, vec, Env, Symbol, Vec};

#[contract]
pub struct Contract;

#[contractimpl]
impl Contract {
    /// Say Hello to someone or something.
    /// Returns a length-2 vector/array containing 'Hello' and then the value passed as `to`.
    pub fn hello(env: Env, to: Symbol) -&amp;gt; Vec&amp;lt;Symbol&amp;gt; {
        vec![&amp;amp;env, symbol_short!("Hello"), to]
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Time for another commercial break already!?!&lt;/p&gt;

&lt;p&gt;Don't worry this one is going to help you polish up on your Rust(🥁)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#![no_std]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This directive is used at the beginning of the Rust code to specify that the standard library (std) should not be included in the build. In Soroban contracts, the standard library is excluded because it's large and not suitable for deployment on blockchains.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;use soroban_sdk::{contract, contractimpl, symbol_short, vec, Env, Symbol, Vec};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;use&lt;/strong&gt; keyword is used to import external dependencies or modules into the current Rust code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;soroban_sdk&lt;/strong&gt;: This is the crate/module that provides the necessary functionalities and types for Soroban contracts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;{contract, contractimpl, symbol_short, vec, Env, Symbol, Vec}&lt;/strong&gt;: These are the specific items being imported from the &lt;strong&gt;soroban_sdk&lt;/strong&gt; module, including attributes, macros &lt;strong&gt;(contract, contractimpl, symbol_short!)&lt;/strong&gt;, and data types &lt;strong&gt;(Env, Symbol, Vec)&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#[contract]
pub struct Contract;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;#[contract]&lt;/strong&gt; is an attribute applied to the Contract struct, designating it as the type to which contract functions are associated. It implies that this struct will have contract functions implemented for it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;pub struct Contract;&lt;/strong&gt; defines a public struct named Contract. In Soroban contracts, contract functions are associated with this struct.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#[contractimpl]
impl Contract {
    pub fn hello(env: Env, to: Symbol) -&amp;gt; Vec&amp;lt;Symbol&amp;gt; {
        vec![&amp;amp;env, symbol_short!("Hello"), to]
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;#[contractimpl]&lt;/strong&gt; is an attribute that is applied to the &lt;strong&gt;impl&lt;/strong&gt; block for the &lt;strong&gt;Contract&lt;/strong&gt; struct, indicating that this block contains the implementation of contract functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;impl Contract { ... }&lt;/strong&gt;: This is the implementation block for the Contract struct, where contract functions are defined.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;pub fn hello(env: Env, to: Symbol) -&amp;gt; Vec { ... }&lt;/strong&gt;: This line defines a public function named &lt;strong&gt;hello&lt;/strong&gt;. It takes two arguments, &lt;strong&gt;env&lt;/strong&gt; of type &lt;strong&gt;Env&lt;/strong&gt; and "to" of type &lt;strong&gt;Symbol&lt;/strong&gt;(in this case, a string of up to 8 characters). It also specifies the return type as &lt;strong&gt;Vec&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;{ vec![&amp;amp;env, symbol_short!("Hello"), to] }&lt;/strong&gt;: This block of code is where a length-2 vector/array containing "Hello" and then the value passed as "to" is constructed and returned.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all the breaks we have for today. Don't get crabby on me!(🥁)&lt;/p&gt;

&lt;p&gt;Now that the code is in the editor, compile it by clicking the compile button or pushing “cmd+k”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hzarri8r6sz4lwio77x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hzarri8r6sz4lwio77x.png" alt="Rust smart contract compile" width="800" height="1188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open the contract tab and push the &lt;code&gt;hello()&lt;/code&gt; button&lt;/p&gt;

&lt;p&gt;Pass in an value for &lt;code&gt;to&lt;/code&gt; and click the “call” button&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56jsucl90igjvrtruv11.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56jsucl90igjvrtruv11.png" alt="Rust smart contract function call" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The "Console" tab should open and you should see your message!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr45631dinv52gyh2t78a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr45631dinv52gyh2t78a.png" alt="Rust smart contract return" width="532" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparison and Conclusion
&lt;/h2&gt;

&lt;p&gt;Both Solidity and Soroban provide the functionality to declare public functions. However, their approaches to data handling and state management differ, influenced by their core languages – JavaScript for Solidity and Rust for Soroban. Solidity is ideal for those familiar with JavaScript, while Soroban's Rust foundation offers advantages in concurrency and safety.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;p&gt;For developers interested in transitioning from EVM to Soroban, we have comprehensive documentation that covers everything from the basics of the Soroban Rust SDK  compared to Solidity, up to deploying your own smart contracts with Rust. Learn more about migrating from EVM here. &lt;br&gt;
If you’re looking for more tools and want to learn more about the sdk, you can check out the official Soroban docs &lt;a href="https://soroban.stellar.org/docs/migrate/evm/introduction-to-solidity-and-rust" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://soroban.stellar.org/docs/getting-started/setup" rel="noopener noreferrer"&gt;Soroban CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://soroban.stellar.org/docs/reference/sdks/write-contracts" rel="noopener noreferrer"&gt;Soroban Rust SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay tuned for more insights and tutorials in this series, and happy coding in the world of smart contracts!&lt;/p&gt;

</description>
      <category>rust</category>
      <category>solidity</category>
      <category>ethereum</category>
      <category>smartcontract</category>
    </item>
    <item>
      <title>Build Better With Stellar Smart Contract Challenge: A Companion Guide</title>
      <dc:creator>Julian Martinez</dc:creator>
      <pubDate>Tue, 09 Jul 2024 13:16:16 +0000</pubDate>
      <link>https://dev.to/stellar/build-better-with-stellar-smart-contract-challenge-a-companion-guide-2ing</link>
      <guid>https://dev.to/stellar/build-better-with-stellar-smart-contract-challenge-a-companion-guide-2ing</guid>
      <description>&lt;p&gt;Interested in &lt;a href="https://dev.to/devteam/join-us-for-the-first-community-smart-contract-challenge-with-50000-in-prizes-41gl"&gt;our web3 challenge&lt;/a&gt; but not sure where to start? In this post, we'll share an overview of web3 and blockchain technology and set you up with all the information you need to learn about Stellar and the Soroban smart contracts platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Quick Primer on Web3
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is web3 and blockchain?
&lt;/h3&gt;

&lt;p&gt;Blockchain provides a way for people around the world to collectively maintain a database without relying on a central authority. It's a model for sharing and reconciling information, designed for our interconnected, global future. &lt;a href="https://stellar.org/resources/quick-explainer-on-crypto-blockchain-and-stellar" rel="noopener noreferrer"&gt;Read Blockchain Basics&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does crypto relate to this?
&lt;/h3&gt;

&lt;p&gt;The blockchain, the core technology behind cryptocurrencies, is replicated across all computers in the network. New data is added to this chain using cryptographic methods that make it simple to detect even the smallest alteration to any previous transaction. Each time a new block of data is added, the entire network effectively verifies the integrity of all earlier data. This process is known as reaching consensus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why are people skeptical of crypto/blockchain?
&lt;/h3&gt;

&lt;p&gt;Critics of cryptocurrency and blockchain technology often make three main arguments:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Crypto and blockchain lack practical applications.&lt;/li&gt;
&lt;li&gt;Traditional technologies outperform blockchain for similar functions.&lt;/li&gt;
&lt;li&gt;The industry faces significant regulatory uncertainty.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By participating in the Stellar ecosystem and this hackathon, we aim to challenge at least the first two points. Our goal is to show that you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Contribute to innovative decentralized finance solutions.&lt;/li&gt;
&lt;li&gt;Help provide financial access to billions of people.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While regulatory uncertainty remains a concern, it’s important to remember that most emerging technologies experience regulatory uncertainty, and we encourage developers to explore these technologies responsibly. Our hope is to bridge traditional and decentralized finance in a compliant manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Smart Contracts?
&lt;/h2&gt;

&lt;p&gt;Smart contracts are programs stored on a blockchain that run automatically when predetermined conditions are met. However, a platform that only allows developers to write code to a blockchain is not enough. To create robust, practical, and sustainable products and services, additional features are necessary to ensure safe and efficient execution. &lt;a href="https://stellar.org/learn/smart-contract-basics" rel="noopener noreferrer"&gt;Learn about smart contract basics&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why are dApps interesting?
&lt;/h2&gt;

&lt;p&gt;Decentralized Applications (dApps) are programs that operate on blockchain networks, enabling direct peer-to-peer services. This eliminates the need for centralized intermediaries, effectively decentralizing various processes.&lt;/p&gt;

&lt;p&gt;A common example of a dApp is a decentralized exchange (DEX). On a DEX, users can trade assets directly with each other using a transparent, peer-to-peer order book. This removes the need for a broker or other middleman. Decentralized apps have the potential to improve efficiency and transparency across various applications. They are particularly useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lending and borrowing&lt;/li&gt;
&lt;li&gt;Exchanging value&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By removing intermediaries, dApps can offer these services more directly and often at lower costs than traditional centralized systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  DeFi Glossary
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Decentralized Finance (DeFi):&lt;/strong&gt; A movement that leverages decentralized networks to transform traditional financial products into trustless and transparent protocols.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Wallets:&lt;/strong&gt; Used to store digital assets like tokens or NFTs, associated with an account. Must be funded on both testnet and mainnet.Learn more about &lt;a href="https://developers.stellar.org/docs/smart-contracts/guides/freighter/integrate-freighter-react" rel="noopener noreferrer"&gt;connecting wallets to a dApp here&lt;/a&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testnet:&lt;/strong&gt; Sandbox blockchain environment for building and prototyping.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mainnet:&lt;/strong&gt; Production blockchain environment for real assets/transactions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/build/smart-contracts/example-contracts/tokens" rel="noopener noreferrer"&gt;&lt;strong&gt;Tokens:&lt;/strong&gt;&lt;/a&gt; These are assets that can be created or are already on the network. They can be tied to real-world value (ex. Stablecoins are pegged to real fiat currency like the dollar), they can be representative of a real-world asset, or they can simply be made unrelated to anything in the real world (ex. memecoin)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Staking:&lt;/strong&gt; Staking is the process of putting digital assets to productive use within a blockchain network. In decentralized finance (DeFi) applications, users can 'stake' their assets, allowing them to be used by the network in various ways. This often generates rewards for the asset holder in the form of earned interest.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/build/smart-contracts/example-contracts/liquidity-pool" rel="noopener noreferrer"&gt;&lt;strong&gt;Liquidity Pools:&lt;/strong&gt;&lt;/a&gt; Liquidity pools are collections of funds locked in smart contracts, enabling decentralized trading, lending, and more. Users contribute assets and receive Liquidity Provider (LP) tokens, representing their share. These pools ensure liquidity for traders, reducing slippage and improving market efficiency. Liquidity providers earn rewards through transaction fees and additional incentives from DeFi platforms.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  An Overview of Web3 Development
&lt;/h2&gt;

&lt;p&gt;Web3 development introduces new paradigms for creating decentralized applications. This section covers key aspects of the Web3 development process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Local Development:&lt;/strong&gt;  Local development involves using specialized tools and frameworks that allow you to write, compile, and test smart contracts locally. Stellar's new smart contract platform, Soroban, uses Rust for writing smart contracts. For local development, you'll use the Soroban CLI, which allows you to set up a local network, compile Rust contracts, and deploy them. The Stellar SDK is still used for interacting with the Stellar network, and it's available in multiple languages including JavaScript, Python, and others. Tools like the Stellar Laboratory remain useful for testing operations, and the Stellar Core can be used for running a local network for testing purposes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;App Hosting:&lt;/strong&gt; Stellar apps usually have a traditional web front-end that can be hosted on standard &lt;a href="https://developers.stellar.org/docs/learn/interactive/dapps/challenges/challenge-0-crowdfund#checkpoint-4--ship-it-" rel="noopener noreferrer"&gt;web servers like Vercel&lt;/a&gt;. The backend interacts with the Stellar network through Horizon API. Smart contracts on Stellar, called Stellar Core Contracts, are deployed directly to the Stellar network. Users interact with your app through Stellar-compatible wallets or interfaces you create using the Stellar SDK.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compute and Storage:&lt;/strong&gt; Computation happens on the Stellar network when transactions or operations are processed. For data storage, Stellar offers limited on-chain storage through account data entries. For larger data needs, developers often use off-chain solutions and store references or hashes on the Stellar blockchain. Payments for network usage are made in Lumens (XLM), Stellar's native currency.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more in-depth information about the Stellar tech stack, visit &lt;a href="https://developers.stellar.org/docs/learn/fundamentals" rel="noopener noreferrer"&gt;our dev docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn How to Build dApps
&lt;/h2&gt;

&lt;p&gt;Learn how to build dApps with an example built by &lt;a href="https://github.com/paltalabs" rel="noopener noreferrer"&gt;PaltaLabs&lt;/a&gt; illustrating the implementation of a full-stack dApp using a simple greeting contract. Check out the &lt;a href="https://github.com/paltalabs/create-soroban-dapp" rel="noopener noreferrer"&gt;Create Soroban DApp repository&lt;/a&gt; for a practical guide on developing decentralized applications on the Stellar network:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/paltalabs" rel="noopener noreferrer"&gt;
        paltalabs
      &lt;/a&gt; / &lt;a href="https://github.com/paltalabs/create-soroban-dapp" rel="noopener noreferrer"&gt;
        create-soroban-dapp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Boilerplate for Soroban dApps in ReactJS
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;@create-soroban-dapp&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;@create-soroban-dapp&lt;/code&gt; is both an &lt;code&gt;npx&lt;/code&gt; script and a boilerplate dApp for kickstarting any of your ideas for a Soroban-based DApp.&lt;/p&gt;
&lt;p&gt;Largely inspired by the &lt;a href="https://github.com/scio-labs/inkathon" rel="noopener noreferrer"&gt;ink!athon&lt;/a&gt; project by &lt;a href="https://github.com/scio-labs" rel="noopener noreferrer"&gt;Scio Labs&lt;/a&gt; and by &lt;a href="https://github.com/t3-oss/create-t3-app" rel="noopener noreferrer"&gt;@create-t3-app&lt;/a&gt; by &lt;a href="https://github.com/t3-oss" rel="noopener noreferrer"&gt;T3 Open Source&lt;/a&gt; for the script mechanisms.&lt;/p&gt;
&lt;p&gt;Check the &lt;a href="https://create-soroban-dapp.vercel.app/" rel="nofollow noopener noreferrer"&gt;&lt;code&gt;LIVE VERSION&lt;/code&gt;&lt;/a&gt; of the dApp utilizing already deployed testnet contracts!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Read the docs &lt;a href="https://create-soroban-dapp.paltalabs.io" rel="nofollow noopener noreferrer"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; 📚📚&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Introduction&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;@create-soroban-dapp&lt;/code&gt; is composed of two key components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A boilerplate dApp utilizing the &lt;a href="https://github.com/paltalabs/soroban-react" rel="noopener noreferrer"&gt;@soroban-react&lt;/a&gt; library.&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;npx&lt;/code&gt; script allowing any developer to quickly start their project via the command line using &lt;code&gt;npx create-soroban-dapp&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Usage&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;To create a new Soroban dApp project, simply use one of the following commands:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npx create-soroban-dapp@latest&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm create soroban-dapp@latest&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;After the script completes, navigate into your newly created project directory:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;cd&lt;/span&gt; your-project-name&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Troubleshooting&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;If the &lt;code&gt;npm create&lt;/code&gt; Script Malfunctions&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The script, in its early stage, might not function perfectly on every OS and configuration. If it…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/paltalabs/create-soroban-dapp" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>rust</category>
      <category>smartcontract</category>
      <category>web3</category>
      <category>stellarchallenge</category>
    </item>
    <item>
      <title>RPCiege: How to Complete Skirmish No.1</title>
      <dc:creator>Tyler van der Hoeven</dc:creator>
      <pubDate>Tue, 27 Jun 2023 19:30:53 +0000</pubDate>
      <link>https://dev.to/stellar/rpciege-how-to-complete-skirmish-no1-148</link>
      <guid>https://dev.to/stellar/rpciege-how-to-complete-skirmish-no1-148</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Earn digital collectible playing cards in &lt;a href="https://rpciege.com/" rel="noopener noreferrer"&gt;RPCiege&lt;/a&gt;, a smart contract coding game teaching the fundamentals of developing and deploying performant and secure blockchain applications though small, fun, code puzzles.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Skirmish 1 of the RPCiege couldn't be any more straight forward. All you've gotta do is successfully invoke a Soroban smart contract on the &lt;code&gt;Futurenet&lt;/code&gt; network via the official RPCiege RPC endpoint &lt;code&gt;https://futurenet.rpciege.com:443&lt;/code&gt;. Definitely simple however the things you'll learn here will form the foundation for all other Skirmishes so be sure you take your time to fully understand each step of the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: &lt;strong&gt;Create a new Soroban smart contract project&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;small&gt;Consult &lt;a href="https://soroban.stellar.org/docs/getting-started/hello-world" rel="noopener noreferrer"&gt;https://soroban.stellar.org/docs/getting-started/hello-world&lt;/a&gt; for more details&lt;/small&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Using the Cargo CLI you installed during the Setup step create a new Rust project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo new &lt;span class="nt"&gt;--lib&lt;/span&gt; &amp;lt;project-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From here &lt;code&gt;cd&lt;/code&gt; into your new project and edit your &lt;code&gt;Cargo.toml&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[package]&lt;/span&gt;
&lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"project-name"&lt;/span&gt;
&lt;span class="py"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.1.0"&lt;/span&gt;
&lt;span class="py"&gt;edition&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"2021"&lt;/span&gt;

&lt;span class="nn"&gt;[lib]&lt;/span&gt;
&lt;span class="py"&gt;crate-type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"cdylib"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nn"&gt;[features]&lt;/span&gt;
&lt;span class="py"&gt;testutils&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"soroban-sdk/testutils"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nn"&gt;[dependencies]&lt;/span&gt;
&lt;span class="py"&gt;soroban-sdk&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.8.4"&lt;/span&gt;

&lt;span class="nn"&gt;[dev_dependencies]&lt;/span&gt;
&lt;span class="py"&gt;soroban-sdk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.8.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;features&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"testutils"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nn"&gt;[profile.release]&lt;/span&gt;
&lt;span class="py"&gt;opt-level&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"z"&lt;/span&gt;
&lt;span class="py"&gt;overflow-checks&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;debug&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="py"&gt;strip&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"symbols"&lt;/span&gt;
&lt;span class="py"&gt;debug-assertions&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="py"&gt;panic&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"abort"&lt;/span&gt;
&lt;span class="py"&gt;codegen-units&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="py"&gt;lto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: &lt;strong&gt;Construct a new empty contract&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;From here navigate to the &lt;code&gt;src&lt;/code&gt; directory and modify the &lt;code&gt;lib.rs&lt;/code&gt; file as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="nd"&gt;#![no_std]&lt;/span&gt;

&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;soroban_sdk&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;contractimpl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nd"&gt;#[contractimpl]&lt;/span&gt;
&lt;span class="k"&gt;impl&lt;/span&gt; &lt;span class="n"&gt;Contract&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_nft_dest&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Option&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Address&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;mod&lt;/span&gt; &lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next create a &lt;code&gt;test.rs&lt;/code&gt; file with the following contents:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="nd"&gt;#![cfg(test)]&lt;/span&gt;

&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="k"&gt;crate&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ContractClient&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;soroban_sdk&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nd"&gt;#[test]&lt;/span&gt;
&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;env&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;default&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;contract_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="nf"&gt;.register_contract&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;ContractClient&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;contract_id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="nf"&gt;.run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nn"&gt;Option&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;None&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally feel free to run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or if you're using &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VSCode&lt;/a&gt; and have &lt;a href="https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer" rel="noopener noreferrer"&gt;Rust Analyzer&lt;/a&gt; installed you can just run the tests inline right in the code editor itself!&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3y1olc2jygm8grkvc1i8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3y1olc2jygm8grkvc1i8.png" alt="Run tests inline via Rust Analyzer" width="169" height="75"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3: &lt;strong&gt;Deploy your contract to the &lt;code&gt;Futurenet&lt;/code&gt; via the Soroban CLI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once you've completed constructing your contract you need to deploy it to the &lt;code&gt;Futurenet&lt;/code&gt;. We can accomplish this via the Soroban CLI. Before we can do that we need to build our contract and compile it to the WASM format that the Soroban VM expects. To do that simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo build &lt;span class="nt"&gt;--target&lt;/span&gt; wasm32-unknown-unknown &lt;span class="nt"&gt;--release&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will build and place your contract inside the &lt;code&gt;./target/wasm32-unknown-unknown/release/&lt;/code&gt; directory of your project. From here you can deploy the &lt;code&gt;.wasm&lt;/code&gt; file of your contract to the Soroban &lt;code&gt;Futurenet&lt;/code&gt; like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban contract deploy &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--wasm&lt;/span&gt; target/wasm32-unknown-unknown/release/hello_world.wasm &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://futurenet.rpciege.com:443 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--network-passphrase&lt;/span&gt; &lt;span class="s2"&gt;"Test SDF Future Network ; October 2022"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If all goes according to plan you should receive an output of the freshly deployed contract id. This was mine: &lt;code&gt;34447d1457fd860d5faec2434c1b6087fa3a7420655593866190b594b1136989&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is a bit of a messy command though and the Soroban CLI includes a pretty nifty feature which will speed up deploying and invoking contracts in the future via the &lt;code&gt;config&lt;/code&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban config &lt;span class="nt"&gt;-h&lt;/span&gt;
Read and update config

Usage: soroban config &amp;lt;COMMAND&amp;gt;

Commands:
  identity  Configure different identities to sign transactions
  network   Configure different networks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's go ahead and configure both a network and an identity for future use so we don't have to use the &lt;code&gt;--rpc-url&lt;/code&gt; and &lt;code&gt;--network-passphrase&lt;/code&gt; and we aren't borrowing the default Soroban &lt;code&gt;--source&lt;/code&gt; which could result in sequence number conflicts if someone else were to also be executing a command with this default &lt;code&gt;Address&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban config identity generate Default &lt;span class="nt"&gt;--global&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we need to ensure this address is funded so it can be used as a fee source for all our &lt;code&gt;soroban&lt;/code&gt; commands. To do this first we need to get the public address of our newly generated &lt;code&gt;Default&lt;/code&gt; keypair.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban config identity address Default
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mine was &lt;code&gt;GBCXL3JLGJ6V2LFWKX5VZ2D42E65MVLX5LTAAN6H7C57J5US7JNCDOSB&lt;/code&gt;. Finally then we can fund this new account on the &lt;code&gt;Futurenet&lt;/code&gt; via our &lt;code&gt;Friendbot&lt;/code&gt; faucet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; GET &lt;span class="s2"&gt;"https://friendbot-futurenet.stellar.org/?addr=GBCXL3JLGJ6V2LFWKX5VZ2D42E65MVLX5LTAAN6H7C57J5US7JNCDOSB"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With any luck you should get a successful &lt;code&gt;200&lt;/code&gt; response.&lt;/p&gt;

&lt;p&gt;With a new identity added and funded we're ready to add our &lt;code&gt;Futurenet&lt;/code&gt; network shortcut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban config network add Futurenet &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--global&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://futurenet.rpciege.com:443 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--network-passphrase&lt;/span&gt; &lt;span class="s2"&gt;"Test SDF Future Network ; October 2022"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sweet! Now the command from above can be shortened to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban contract deploy &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--wasm&lt;/span&gt; target/wasm32-unknown-unknown/release/hello_world.wasm &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--source&lt;/span&gt; Default &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--network&lt;/span&gt; Futurenet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pretty clean eh?&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: &lt;strong&gt;Invoke your contract&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now that our contract has been deployed to the &lt;code&gt;Futurenet&lt;/code&gt; it's time to invoke it and win the skirmish!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;soroban contract invoke &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--id&lt;/span&gt; &amp;lt;contract-id-from-above&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--source&lt;/span&gt; Default &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--network&lt;/span&gt; Futurenet &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--&lt;/span&gt; run &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--_nft_dest&lt;/span&gt; &amp;lt;stellar-mainnet-public-key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;contract-id-from-above&amp;gt;&lt;/code&gt; will be the contract id from your previous contract deployment in the prior step. e.g. remember mine was &lt;code&gt;34447...36989&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;stellar-mainnet-public-key&amp;gt;&lt;/code&gt; should be your own mainnet Stellar public key where you’d like to receive your pack of
commemorative NFT cards. e.g. Mine is &lt;a href="https://stellar.expert/explorer/public/account/GDAYVCINVNUZ57EOCN4FK2VVWGQ3L3NW37L6UJLZCK3C7S7CNSS5EHHG" rel="noopener noreferrer"&gt;&lt;code&gt;GDAYV...5EHHG&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: &lt;strong&gt;Claim your pack of digital collectible cards&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The final step to collect your rewards is to navigate to &lt;a href="https://rpciege.com/claim" rel="noopener noreferrer"&gt;https://rpciege.com/claim&lt;/a&gt; and login with your &lt;code&gt;&amp;lt;stellar-mainnet-public-key&amp;gt;&lt;/code&gt; account in order to claim your digital collectible card pack for this skirmish.&lt;/p&gt;

&lt;p&gt;Congratulations! You've completed the first game, from here on out it'll only get more fun and fantastic!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>rust</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>RPCiege: Setup</title>
      <dc:creator>Tyler van der Hoeven</dc:creator>
      <pubDate>Tue, 27 Jun 2023 19:28:39 +0000</pubDate>
      <link>https://dev.to/stellar/rpciege-setup-3d1g</link>
      <guid>https://dev.to/stellar/rpciege-setup-3d1g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Earn digital collectible playing cards in &lt;a href="https://rpciege.com/" rel="noopener noreferrer"&gt;RPCiege&lt;/a&gt;, a smart contract coding game teaching the fundamentals of developing and deploying performant and secure blockchain applications though small, fun, code puzzles.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before we begin the siege of the RPC we need to ensure our system is configured for building Soroban smart contracts. You have two clear options. The first is to use a virtual environment like &lt;a href="https://www.gitpod.io/" rel="noopener noreferrer"&gt;Gitpod&lt;/a&gt; or &lt;a href="https://github.com/features/codespaces" rel="noopener noreferrer"&gt;Codespaces&lt;/a&gt; which can have everything pre-installed and configured for you. In fact here's a good &lt;code&gt;hello-world&lt;/code&gt; Gitpod VM we've built for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitpod.io/#https://github.com/stellar/soroban-examples" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgitpod.io%2Fbutton%2Fopen-in-gitpod.svg" alt="Open in Gitpod" width="160" height="45"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second option is to setup your own local machine to develop Rust Soroban smart contracts. Personally that's my recommendation as everything will be faster and cheaper but if you're just getting started and still evaluating your interest the Gitpod can be great way to get off the ground quickly and painlessly. Here's the instructions for how to do that.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;small&gt;Instructions sniped from &lt;a href="https://soroban.stellar.org/docs/getting-started/setup" rel="noopener noreferrer"&gt;https://soroban.stellar.org/docs/getting-started/setup&lt;/a&gt;&lt;/small&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Soroban contracts are small programs written in the &lt;a href="https://www.rust-lang.org/" rel="noopener noreferrer"&gt;Rust&lt;/a&gt; programming language.&lt;/p&gt;

&lt;p&gt;To build and develop contracts you need only a couple prerequisites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;a href="https://www.rust-lang.org/" rel="noopener noreferrer"&gt;Rust&lt;/a&gt; toolchain&lt;/li&gt;
&lt;li&gt;An editor that supports Rust&lt;/li&gt;
&lt;li&gt;&lt;a href="https://soroban.stellar.org/docs/reference/soroban-cli" rel="noopener noreferrer"&gt;Soroban CLI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install Rust
&lt;/h2&gt;

&lt;p&gt;If you use macOS, Linux, or another Unix-like OS, the simplest method to install&lt;br&gt;
a Rust toolchain is to install &lt;code&gt;rustup&lt;/code&gt;. Install &lt;code&gt;rustup&lt;/code&gt; with the following&lt;br&gt;
command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--proto&lt;/span&gt; &lt;span class="s1"&gt;'=https'&lt;/span&gt; &lt;span class="nt"&gt;--tlsv1&lt;/span&gt;.2 &lt;span class="nt"&gt;-sSf&lt;/span&gt; https://sh.rustup.rs | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you use Windows, or need an alternative method of installing Rust, check out: &lt;a href="https://www.rust-lang.org/tools/install" rel="noopener noreferrer"&gt;https://www.rust-lang.org/tools/install&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install the target
&lt;/h2&gt;

&lt;p&gt;Install the &lt;code&gt;wasm32-unknown-unknown&lt;/code&gt; target.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rustup target add wasm32-unknown-unknown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure an Editor
&lt;/h2&gt;

&lt;p&gt;Many editors have support for Rust. Visit the following link to find out how to&lt;br&gt;
configure your editor:&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.rust-lang.org/tools" rel="noopener noreferrer"&gt;https://www.rust-lang.org/tools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A popular editor is Visual Studio Code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; editor.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer" rel="noopener noreferrer"&gt;Rust Analyzer&lt;/a&gt; for Rust language support.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb" rel="noopener noreferrer"&gt;CodeLLDB&lt;/a&gt; for step-through-debugging.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Install the Soroban CLI
&lt;/h2&gt;

&lt;p&gt;The Soroban CLI can execute Soroban contracts in the same environment the&lt;br&gt;
contract will execute on network, however in a local sandbox.&lt;/p&gt;

&lt;p&gt;Install the Soroban CLI using &lt;code&gt;cargo install&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Note depending on when you read this&lt;/span&gt;
&lt;span class="c"&gt;# 0.8.0 may not be the most recent version&lt;/span&gt;
cargo &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--locked&lt;/span&gt; &lt;span class="nt"&gt;--version&lt;/span&gt; 0.8.0 soroban-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;p&gt;Run the &lt;code&gt;soroban&lt;/code&gt; command and you should see output like below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;% soroban
Build, deploy, &amp;amp; interact with contracts&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;set &lt;/span&gt;identities to sign with&lt;span class="p"&gt;;&lt;/span&gt; configure networks&lt;span class="p"&gt;;&lt;/span&gt; generate keys&lt;span class="p"&gt;;&lt;/span&gt; and more.

Intro: https://soroban.stellar.org
CLI Reference: https://github.com/stellar/soroban-tools/tree/main/docs/soroban-cli-full-docs.md

Usage: soroban &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS] &amp;lt;COMMAND&amp;gt;

Commands:
  contract    Tools &lt;span class="k"&gt;for &lt;/span&gt;smart contract developers
  config      Read and update config
  events      Watch the network &lt;span class="k"&gt;for &lt;/span&gt;contract events
  lab         Experiment with early features and expert tools
  version     Print version information
  completion  Print shell completion code &lt;span class="k"&gt;for &lt;/span&gt;the specified shell

Options:
      &lt;span class="nt"&gt;--global&lt;/span&gt;                     Use global config
  &lt;span class="nt"&gt;-f&lt;/span&gt;, &lt;span class="nt"&gt;--filter-logs&lt;/span&gt; &amp;lt;FILTER_LOGS&amp;gt;  Filter logs output. To turn on &lt;span class="s2"&gt;"soroban_cli::log::footprint=debug"&lt;/span&gt; or off &lt;span class="s2"&gt;"=off"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; Can also use &lt;span class="nb"&gt;env &lt;/span&gt;var &lt;span class="sb"&gt;`&lt;/span&gt;RUST_LOG&lt;span class="sb"&gt;`&lt;/span&gt;
  &lt;span class="nt"&gt;-q&lt;/span&gt;, &lt;span class="nt"&gt;--quiet&lt;/span&gt;                      Do not write logs to stderr including &lt;span class="sb"&gt;`&lt;/span&gt;INFO&lt;span class="sb"&gt;`&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt;, &lt;span class="nt"&gt;--verbose&lt;/span&gt;                    Log DEBUG events
      &lt;span class="nt"&gt;--very-verbose&lt;/span&gt;               Log DEBUG and TRACE events
      &lt;span class="nt"&gt;--list&lt;/span&gt;                       List installed plugins. E.g. &lt;span class="sb"&gt;`&lt;/span&gt;soroban-hello&lt;span class="sb"&gt;`&lt;/span&gt;
  &lt;span class="nt"&gt;-h&lt;/span&gt;, &lt;span class="nt"&gt;--help&lt;/span&gt;                       Print &lt;span class="nb"&gt;help&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;see more with &lt;span class="s1"&gt;'--help'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="nt"&gt;-V&lt;/span&gt;, &lt;span class="nt"&gt;--version&lt;/span&gt;                    Print version

TESTING_OPTIONS:
      &lt;span class="nt"&gt;--config-dir&lt;/span&gt; &amp;lt;CONFIG_DIR&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Great! Now that you're hopefully all setup you're ready to begin skirmishing! Proceed to &lt;a href="https://rpciege.com/booklet" rel="noopener noreferrer"&gt;The Booklet™&lt;/a&gt; and let the gaming begin!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>rust</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
