<?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: mrk.gvrr</title>
    <description>The latest articles on DEV Community by mrk.gvrr (@markyy0411).</description>
    <link>https://dev.to/markyy0411</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4009723%2Fedf79cfb-cb02-4d50-8fd2-eed831d45b53.jpg</url>
      <title>DEV Community: mrk.gvrr</title>
      <link>https://dev.to/markyy0411</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/markyy0411"/>
    <language>en</language>
    <item>
      <title>Building KlassPay: A Gasless Split-Payment Engine on Stellar Soroban</title>
      <dc:creator>mrk.gvrr</dc:creator>
      <pubDate>Tue, 30 Jun 2026 14:14:06 +0000</pubDate>
      <link>https://dev.to/markyy0411/building-klasspay-a-gasless-split-payment-engine-on-stellar-soroban-85p</link>
      <guid>https://dev.to/markyy0411/building-klasspay-a-gasless-split-payment-engine-on-stellar-soroban-85p</guid>
      <description>&lt;p&gt;As a university student, nothing is more frustrating than trying to collect money for a group project or an event. People forget, funds get mixed up, and transparency is zero. I wanted to solve this by building &lt;strong&gt;KlassPay&lt;/strong&gt;, a decentralized split-payment application powered by the Stellar network and Soroban smart contracts. &lt;/p&gt;

&lt;p&gt;In this post, I’ll walk you through how I built KlassPay, from the Rust smart contract to a sleek, modern React frontend.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smart Contract:&lt;/strong&gt; Rust (Soroban)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, TypeScript, Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wallet Integration:&lt;/strong&gt; @stellar/freighter-api&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Vanilla CSS with Glassmorphism &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How KlassPay Works
&lt;/h3&gt;

&lt;p&gt;The core functionality relies on a custom Soroban smart contract. An organizer creates a new "Bill" with a specific XLM target. The app generates a shareable link that the organizer can send to their classmates. &lt;/p&gt;

&lt;p&gt;When a classmate opens the link, they are greeted by a sleek UI showing the total goal and how much has been funded so far. They connect their Freighter wallet and pay their share directly into the smart contract. Once the goal is reached, the funds are released to the organizer!&lt;/p&gt;

&lt;h3&gt;
  
  
  Leveling Up: Implementing Gasless Transactions
&lt;/h3&gt;

&lt;p&gt;One of the biggest hurdles for web3 adoption is requiring users to hold native tokens just to pay for network gas fees. I didn't want my classmates to worry about that.&lt;/p&gt;

&lt;p&gt;To achieve a "Black Belt" standard of user experience, I implemented &lt;strong&gt;Fee Sponsorship&lt;/strong&gt; using Stellar's &lt;code&gt;FeeBumpTransaction&lt;/code&gt;. When a user submits a payment, the transaction is wrapped and signed by a background "Sponsor Wallet." This means the user pays exactly their share of the bill, and the sponsor wallet automatically handles the network fee! &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Building KlassPay on Stellar has been an incredible learning experience. Soroban is incredibly fast, and building a polished frontend with React and Vite made the development process a breeze. &lt;/p&gt;

&lt;p&gt;You can check out the live project here: &lt;a href="https://klass-pay.vercel.app/" rel="noopener noreferrer"&gt;https://klass-pay.vercel.app/&lt;/a&gt;&lt;br&gt;
And view the open-source code on my GitHub: &lt;a href="https://github.com/Markyy0411/klass-pay" rel="noopener noreferrer"&gt;https://github.com/Markyy0411/klass-pay&lt;/a&gt;&lt;/p&gt;

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