<?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: SolInPy A Python SDK to Solana</title>
    <description>The latest articles on DEV Community by SolInPy A Python SDK to Solana (@solinpy).</description>
    <link>https://dev.to/solinpy</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%2F4030895%2Fd5709c34-2e78-4940-93b3-7896ed567d0d.png</url>
      <title>DEV Community: SolInPy A Python SDK to Solana</title>
      <link>https://dev.to/solinpy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/solinpy"/>
    <language>en</language>
    <item>
      <title>SolInPy: Automating Web3 Out of Pure Passion for Open-Source &amp; DX 🦅 | DEV Weekend Challenge: Passion Edition</title>
      <dc:creator>SolInPy A Python SDK to Solana</dc:creator>
      <pubDate>Thu, 16 Jul 2026 02:04:24 +0000</pubDate>
      <link>https://dev.to/solinpy/solinpy-automating-web3-out-of-pure-passion-for-open-source-dx-dev-weekend-challenge-do1</link>
      <guid>https://dev.to/solinpy/solinpy-automating-web3-out-of-pure-passion-for-open-source-dx-dev-weekend-challenge-do1</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr5ux18vw0eezjawnwqps.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr5ux18vw0eezjawnwqps.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  DEV Weekend Challenge: Passion Edition Submission
&lt;/h1&gt;

&lt;p&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;DEV Weekend Challenge: Passion Edition&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🦅 What We Built
&lt;/h2&gt;

&lt;p&gt;We built &lt;strong&gt;SolInPy&lt;/strong&gt;, a production-ready, open-source Python SDK designed to completely revolutionize the Developer Experience (DX) on the Solana blockchain. &lt;/p&gt;

&lt;p&gt;If you have ever tried building off-chain Web3 applications, trading bots, or data analytics backends using Python, you know the struggle. Dealing with raw byte serialization, low-level Rust bindings, complex Associated Token Account (ATA) derivation, and RPC rate limits is an absolute headache. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SolInPy&lt;/strong&gt; acts as the ultimate bridge: it abstracts away the intimidating low-level cryptography and blockchain mechanics into clean, Pythonic, and highly intuitive interfaces.&lt;/p&gt;

&lt;h2&gt;
  
  
  ❤️‍🔥 The Passion Behind It
&lt;/h2&gt;

&lt;p&gt;Passion isn't just about hobbies or sports; &lt;strong&gt;passion is the obsession with craftsmanship and the devotion to building open-source tools that empower others.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The inspiration behind SolInPy came from late-night coding sessions where our team, the &lt;strong&gt;Carcarás&lt;/strong&gt;, was struggling to integrate simple automated token transfers into a Python backend. We spent more time fighting cryptic error codes and reading low-level documentation than actually building our application. &lt;/p&gt;

&lt;p&gt;Instead of accepting that "Web3 development is just hard," our passion for clean code and developer advocacy took over. We decided to build the exact SDK we wished existed. We poured our love for Python and open-source into creating a tool where developers can import a wallet, connect to real-time on-chain streams, and send tokens without losing their minds.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Key Features Built with Love for DX
&lt;/h2&gt;

&lt;p&gt;We focused 100% of our engineering effort on eliminating developer friction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔐 &lt;strong&gt;Native Mnemonic / Seed Phrase Import (BIP39):&lt;/strong&gt; Instead of generating raw keypairs from scratch every time, developers can now import standard 12-to-24-word seed phrases (from Phantom, Solflare, etc.) directly into Python with native Ed25519 derivation.&lt;/li&gt;
&lt;li&gt;⛓️ &lt;strong&gt;Frictionless SPL Token Transfers (Auto-ATA):&lt;/strong&gt; Our &lt;code&gt;send_token_transfer&lt;/code&gt; module automatically checks, derives, and creates the receiver's Associated Token Account within the exact same transaction. No more failed transfers due to missing token accounts!&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Asynchronous Real-Time WebSockets (&lt;code&gt;SolanaWebSocketClient&lt;/code&gt;):&lt;/strong&gt; To avoid triggering HTTP 429 rate limits through endless polling, we implemented an async WebSocket client with auto-reconnect logic to listen to live account balance changes and smart contract execution logs.&lt;/li&gt;
&lt;li&gt;💰 &lt;strong&gt;Smart Airdrops &amp;amp; RPC Resilience:&lt;/strong&gt; Automated retry logic, intelligent error handling, and transaction polling built directly into the core client.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💻 Code Demo: See the Passion in Action
&lt;/h2&gt;

&lt;p&gt;Here is how clean and effortless Web3 development looks when using SolInPy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;solinpy.client.client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SolanaRPCClient&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;solinpy.client.entities&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;RPCConfig&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;solinpy.client.websocket&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SolanaWebSocketClient&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;solinpy.wallet.manager&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;WalletManager&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;solinpy.transaction.token&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;send_token_transfer&lt;/span&gt;

&lt;span class="c1"&gt;# 1. Seamless Wallet Import via BIP39 Seed Phrase
&lt;/span&gt;&lt;span class="n"&gt;mnemonic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;my_wallet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;WalletManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;import_from_mnemonic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mnemonic&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🦅 Wallet loaded: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;my_wallet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pubkey&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 2. Resilient RPC Connection
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SolanaRPCClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;RPCConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cluster&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;devnet&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# 3. Frictionless SPL Token Transfer (Auto-ATA handled under the hood!)
&lt;/span&gt;&lt;span class="n"&gt;receiver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;HXyFmHK21YGwu2ZpTUUF2pz5aFuWuFsBCXtJLwBMFzhi&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;token_mint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;# e.g., USDC
&lt;/span&gt;
&lt;span class="n"&gt;tx_sig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;send_token_transfer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;sender_keypair&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;my_wallet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;receiver_pubkey_str&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;receiver&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;mint_pubkey_str&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;token_mint&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;10.5&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🚀 Transfer complete! Signature: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;tx_sig&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 4. Asynchronous Real-Time WebSocket Listening
&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_balance_change&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;account_info&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚡ Instant update detected! New data: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;account_info&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;listen_live&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nc"&gt;SolanaWebSocketClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cluster&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;devnet&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ws_client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;ws_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;subscribe_account&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_wallet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pubkey&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt; &lt;span class="n"&gt;callback&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_balance_change&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Future&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# Keep listening indefinitely
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🏗️ How We Built It &amp;amp; The Carcarás Team
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SolInPy&lt;/strong&gt; is built on top of &lt;code&gt;solders&lt;/code&gt; and &lt;code&gt;solana-py&lt;/code&gt;, leveraging modern Python &lt;code&gt;asyncio&lt;/code&gt; for high-performance WebSocket streaming and strict type-hinting for an exceptional IDE IntelliSense experience.&lt;/p&gt;

&lt;p&gt;This project is maintained by the &lt;strong&gt;Carcarás Team&lt;/strong&gt; — a group of developers driven by the belief that open-source infrastructure is forever. Hackathons and challenges come and go, but the tools we build out of passion continue to live on and help the global developer community.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Repository &amp;amp; Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/carcaras/solinpy" rel="noopener noreferrer"&gt;https://github.com/carcaras/solinpy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyPI Package:&lt;/strong&gt; &lt;code&gt;pip install solinpy&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>python</category>
      <category>solana</category>
    </item>
  </channel>
</rss>
