<?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: Ura Labs</title>
    <description>The latest articles on DEV Community by Ura Labs (@uralabs).</description>
    <link>https://dev.to/uralabs</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%2F4116400%2F5504ad22-9f8d-4a10-ad66-79ec9e8d0bf3.png</url>
      <title>DEV Community: Ura Labs</title>
      <link>https://dev.to/uralabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uralabs"/>
    <language>en</language>
    <item>
      <title>Who pays the transaction fee? Building sponsored execution on Midnight</title>
      <dc:creator>Ura Labs</dc:creator>
      <pubDate>Wed, 09 Sep 2026 08:13:07 +0000</pubDate>
      <link>https://dev.to/uralabs/who-pays-the-transaction-fee-building-sponsored-execution-on-midnight-n1j</link>
      <guid>https://dev.to/uralabs/who-pays-the-transaction-fee-building-sponsored-execution-on-midnight-n1j</guid>
      <description>&lt;p&gt;A user arrives at your app to do something useful. Before they can finish, they discover that they need another balance to pay the network fee.&lt;/p&gt;

&lt;p&gt;If you build on Solana or another blockchain, that onboarding problem may feel familiar. The implementation below is specific to Midnight. Ura Relay Club does not currently offer Solana or multi-chain integration.&lt;/p&gt;

&lt;p&gt;I’m Press from Ura Labs. We’re building &lt;strong&gt;Ura Relay Club&lt;/strong&gt;, a &lt;strong&gt;Midnight Preprod pilot&lt;/strong&gt; that sponsors DUST fees for supported application transactions through an API. The aim is to let an application offer sponsored actions without requiring each user to supply their own DUST.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate application logic from fee sponsorship
&lt;/h2&gt;

&lt;p&gt;The responsibility boundary matters:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your application&lt;/th&gt;
&lt;th&gt;Ura Relay Club&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Contract logic and wallet experience&lt;/td&gt;
&lt;td&gt;Sponsorship eligibility and configured limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transaction preparation and proving&lt;/td&gt;
&lt;td&gt;DUST fee sponsorship and submission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checking the intended application result&lt;/td&gt;
&lt;td&gt;Request tracking and chain-confirmation receipt&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;An API key does not create a contract or prove a transaction. A chain confirmation also does not replace checking that the intended application action actually happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Read the &lt;a href="https://relayclub.ura.finance/docs/get-started/environment" rel="noopener noreferrer"&gt;environment and prerequisites&lt;/a&gt; before adapting a transaction.&lt;/li&gt;
&lt;li&gt;Follow &lt;a href="https://relayclub.ura.finance/docs/get-started/project-access" rel="noopener noreferrer"&gt;project access and key setup&lt;/a&gt;. Keep the API key on your backend, outside browser code and public repositories.&lt;/li&gt;
&lt;li&gt;Request Preprod sponsorship access. &lt;strong&gt;A valid key alone does not enable sponsorship.&lt;/strong&gt; The pilot requires project approval and operates within configured limits.&lt;/li&gt;
&lt;li&gt;Use the client-helper guide and API reference to understand transaction preparation, submission and status lookup. Include confirmation and application-result checks in your test plan.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The public docs also cover retry and recovery. A timeout is a reason to check the request's status before deciding whether another submission is appropriate.&lt;/p&gt;

&lt;p&gt;Here is a 30-second tour of the website and developer setup. It is a walkthrough, not a recording of a completed transaction:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2097390569282515084-30" src="https://platform.twitter.com/embed/Tweet.html?id=2097390569282515084"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2097390569282515084-30');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2097390569282515084&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/Urafinance/status/2097390569282515084" rel="noopener noreferrer"&gt;Watch the walkthrough on X&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we want to learn from builders
&lt;/h2&gt;

&lt;p&gt;Broader developer integration testing is ongoing. This is not a mainnet service or a claim that every application transaction is compatible. Ura's separate Preprod bridge has not been demonstrated through Relay Club's public API.&lt;/p&gt;

&lt;p&gt;For your application, which action would benefit most from sponsorship? What would you need to see in a receipt, quota response or recovery flow before trusting the integration?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://relayclub.ura.finance/" rel="noopener noreferrer"&gt;Explore Relay Club and the docs&lt;/a&gt;. For the longer development story and future capacity direction, read &lt;a href="https://uralabs.medium.com/ura-is-building-the-workflow-layer-for-midnight-9ab01e325f95" rel="noopener noreferrer"&gt;Ura Is Building the Workflow Layer for Midnight&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Press, Ura Labs&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>api</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
