<?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: The QIE team</title>
    <description>The latest articles on DEV Community by The QIE team (@qieteam).</description>
    <link>https://dev.to/qieteam</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%2F4191760%2F41d2b414-0b3e-4c51-8bbf-e648af9c27a8.jpg</url>
      <title>DEV Community: The QIE team</title>
      <link>https://dev.to/qieteam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qieteam"/>
    <language>en</language>
    <item>
      <title>Deploy and verify your first Solidity contract on QIE testnet in 15 minutes</title>
      <dc:creator>The QIE team</dc:creator>
      <pubDate>Wed, 21 Oct 2026 06:09:46 +0000</pubDate>
      <link>https://dev.to/qieteam/deploy-and-verify-your-first-solidity-contract-on-qie-testnet-in-15-minutes-2i7b</link>
      <guid>https://dev.to/qieteam/deploy-and-verify-your-first-solidity-contract-on-qie-testnet-in-15-minutes-2i7b</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: this article is written by the QIE team. Every command below was run end to end on QIE testnet (chain ID 1983) on 20 Oct 2026.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You have a contract idea and a free evening. What eats the evening is rarely the Solidity. It's finding a chain ID you can rely on, an RPC that actually answers, a faucet, and the one verifier flag that makes the explorer show your source code instead of raw bytecode.&lt;/p&gt;

&lt;p&gt;This walkthrough removes that guesswork for QIE testnet. You'll write a small contract, deploy it with Foundry, verify it on the explorer and call it from the terminal. We ran every step ourselves: the example contract is live and verified at &lt;a href="https://testnet.qie.digital/address/0x733DA66D594D6d839F8316C949d6ef0B62003E69" rel="noopener noreferrer"&gt;0x733DA66D594D6d839F8316C949d6ef0B62003E69&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you'll build
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HackathonGreeter&lt;/strong&gt;: a contract that stores a greeting, counts how many times it changed and emits a &lt;code&gt;GreetingChanged&lt;/code&gt; event on every change. Small enough to read in a minute, but it covers the whole loop: write, test, deploy, verify, interact.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Linux, macOS or Windows (WSL) with &lt;code&gt;git&lt;/code&gt; and &lt;code&gt;curl&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A self-custody EVM wallet such as QIE Wallet (browser extension) or MetaMask, with a &lt;strong&gt;fresh, testnet-only account&lt;/strong&gt;. QIE Wallet is non-custodial: your keys are created and stay on your device. Never reuse an account that holds mainnet funds for development.&lt;/li&gt;
&lt;li&gt;About 15 minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;QIE testnet details (checked live):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network name&lt;/td&gt;
&lt;td&gt;QIE Testnet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chain ID&lt;/td&gt;
&lt;td&gt;1983 (hex 0x7BF)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Currency symbol&lt;/td&gt;
&lt;td&gt;QIE (18 decimals)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RPC&lt;/td&gt;
&lt;td&gt;&lt;a href="https://rpc2testnet.qie.digital" rel="noopener noreferrer"&gt;https://rpc2testnet.qie.digital&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explorer (Blockscout)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://testnet.qie.digital" rel="noopener noreferrer"&gt;https://testnet.qie.digital&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faucet&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.qie.digital/faucet" rel="noopener noreferrer"&gt;https://www.qie.digital/faucet&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;QIE Mainnet is a different chain (ID 1990). Everything here targets testnet 1983 only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install Foundry
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; https://foundry.paradigm.xyz | bash &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; foundryup   &lt;span class="c"&gt;# once&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We tested with forge 1.8.5.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create the project
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;forge init hello-qie &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;hello-qie
&lt;span class="nb"&gt;rm &lt;/span&gt;src/Counter.sol &lt;span class="nb"&gt;test&lt;/span&gt;/Counter.t.sol script/Counter.s.sol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;foundry.toml&lt;/code&gt; with the settings we deployed and verified with. Pinning &lt;code&gt;evm_version = "paris"&lt;/code&gt; gives the widest EVM compatibility:&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;[profile.default]&lt;/span&gt;
&lt;span class="py"&gt;src&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"src"&lt;/span&gt;
&lt;span class="py"&gt;out&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"out"&lt;/span&gt;
&lt;span class="py"&gt;libs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"lib"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="py"&gt;solc_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.8.24"&lt;/span&gt;
&lt;span class="py"&gt;evm_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"paris"&lt;/span&gt;
&lt;span class="py"&gt;optimizer&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;optimizer_runs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;

&lt;span class="nn"&gt;[rpc_endpoints]&lt;/span&gt;
&lt;span class="py"&gt;qie_testnet&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://rpc2testnet.qie.digital"&lt;/span&gt;

&lt;span class="nn"&gt;[etherscan]&lt;/span&gt;
&lt;span class="py"&gt;qie_testnet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;key&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"verifyContract"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;chain&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1983&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://testnet.qie.digital/api/"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3: Write and test the contract
&lt;/h2&gt;

&lt;p&gt;Create &lt;code&gt;src/HackathonGreeter.sol&lt;/code&gt;:&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
pragma solidity 0.8.24;

/// @title HackathonGreeter - QIE Hackathon 3.0 quickstart example (QIE TESTNET)
/// @notice Stores a greeting, counts updates and emits an event on every change.
contract HackathonGreeter {
    string public greeting;
    uint256 public updates;
    address public immutable deployer;

    event GreetingChanged(address indexed by, uint256 indexed updateNumber, string greeting);

    constructor(string memory initialGreeting) {
        deployer = msg.sender;
        greeting = initialGreeting;
        emit GreetingChanged(msg.sender, 0, initialGreeting);
    }

    function setGreeting(string calldata newGreeting) external {
        require(bytes(newGreeting).length &amp;gt; 0, "empty greeting");
        updates += 1;
        greeting = newGreeting;
        emit GreetingChanged(msg.sender, updates, newGreeting);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add a test in &lt;code&gt;test/HackathonGreeter.t.sol&lt;/code&gt; that checks the initial greeting, the event on &lt;code&gt;setGreeting&lt;/code&gt; and the revert on an empty string, then run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;forge build
forge &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;-vv&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Our run: &lt;code&gt;Suite result: ok. 3 passed; 0 failed; 0 skipped&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Get testnet QIE from the faucet
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://www.qie.digital/faucet" rel="noopener noreferrer"&gt;https://www.qie.digital/faucet&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Paste your testnet address (0x...) and click &lt;strong&gt;Send Me QIE&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You can claim up to 2 testnet QIE per address every 24 hours. Our deploy used 354,264 gas at 8 wei per gas, a tiny fraction of one testnet QIE.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cast balance 0xYourAddress &lt;span class="nt"&gt;--ether&lt;/span&gt; &lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://rpc2testnet.qie.digital
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Testnet QIE has no value and exists only for testing. The faucet will never ask for a seed phrase, private key, deposit or mainnet funds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Put your key in an encrypted keystore
&lt;/h2&gt;

&lt;p&gt;Don't pass a private key on the command line or put it in a &lt;code&gt;.env&lt;/code&gt; file. Import your testnet-only key once into Foundry's encrypted keystore. Foundry prompts for the key and a password (nothing is echoed) and stores the encrypted file under &lt;code&gt;~/.foundry/keystores/&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;cast wallet import qie-testnet-dev &lt;span class="nt"&gt;--interactive&lt;/span&gt;
cast wallet address &lt;span class="nt"&gt;--account&lt;/span&gt; qie-testnet-dev        &lt;span class="c"&gt;# prints your public 0x address&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From now on you sign with &lt;code&gt;--account qie-testnet-dev&lt;/code&gt; and type only the password when Foundry asks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Deploy
&lt;/h2&gt;

&lt;p&gt;Confirm the chain first, then deploy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cast chain-id &lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://rpc2testnet.qie.digital        &lt;span class="c"&gt;# must print 1983&lt;/span&gt;

forge create src/HackathonGreeter.sol:HackathonGreeter &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://rpc2testnet.qie.digital &lt;span class="nt"&gt;--chain-id&lt;/span&gt; 1983 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--account&lt;/span&gt; qie-testnet-dev &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--broadcast&lt;/span&gt; &lt;span class="nt"&gt;--constructor-args&lt;/span&gt; &lt;span class="s2"&gt;"Hello, QIE testnet!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Real output from our run (block 9258585):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Deployer: 0x664eC56c09802160FCA0C0C49a5883B61DF1cD45
Deployed to: 0x733DA66D594D6d839F8316C949d6ef0B62003E69
Transaction hash: 0x86fcc150432e5ee6ce5f55397fcf8841238e45377aceb43d01906577a3d6b2f0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy your own "Deployed to" address; you need it for the next two steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Verify on the explorer
&lt;/h2&gt;

&lt;p&gt;The QIE testnet explorer runs Blockscout and accepts verification through its API. No API key needed. Swap in your address:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;forge verify-contract 0x733DA66D594D6d839F8316C949d6ef0B62003E69 &lt;span class="se"&gt;\&lt;/span&gt;
  src/HackathonGreeter.sol:HackathonGreeter &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--chain-id&lt;/span&gt; 1983 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--verifier&lt;/span&gt; blockscout &lt;span class="nt"&gt;--verifier-url&lt;/span&gt; https://testnet.qie.digital/api/ &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--constructor-args&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;cast abi-encode &lt;span class="s2"&gt;"constructor(string)"&lt;/span&gt; &lt;span class="s2"&gt;"Hello, QIE testnet!"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--watch&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After a short &lt;code&gt;Pending in queue&lt;/code&gt;, ours returned:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Details: `Pass - Verified`
Contract successfully verified
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open your address on &lt;a href="https://testnet.qie.digital" rel="noopener noreferrer"&gt;https://testnet.qie.digital&lt;/a&gt; and the Contract tab now shows readable source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Interact with cast
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cast call 0x733DA66D594D6d839F8316C949d6ef0B62003E69 &lt;span class="s2"&gt;"greeting()(string)"&lt;/span&gt; &lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://rpc2testnet.qie.digital
&lt;span class="c"&gt;# "Hello, QIE testnet!"&lt;/span&gt;

cast send 0x733DA66D594D6d839F8316C949d6ef0B62003E69 &lt;span class="s2"&gt;"setGreeting(string)"&lt;/span&gt; &lt;span class="s2"&gt;"gm from yourname.qie"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://rpc2testnet.qie.digital &lt;span class="nt"&gt;--account&lt;/span&gt; qie-testnet-dev
&lt;span class="c"&gt;# status 1 (success)&lt;/span&gt;

cast call 0x733DA66D594D6d839F8316C949d6ef0B62003E69 &lt;span class="s2"&gt;"updates()(uint256)"&lt;/span&gt; &lt;span class="nt"&gt;--rpc-url&lt;/span&gt; https://rpc2testnet.qie.digital
&lt;span class="c"&gt;# 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the full loop: a deployed, verified contract you can read and write from the terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TLS handshake EOF or timeout on an RPC&lt;/td&gt;
&lt;td&gt;Switch endpoint: rpc2testnet, rpc4testnet or rpc5testnet.qie.digital all answered chain 1983 in our tests.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;cast chain-id&lt;/code&gt; prints 1990&lt;/td&gt;
&lt;td&gt;You're on QIE Mainnet. Stop and switch to a testnet RPC.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;insufficient funds for gas&lt;/td&gt;
&lt;td&gt;Claim from the faucet and check with &lt;code&gt;cast balance&lt;/code&gt; (2 testnet QIE per address per 24 h).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wallet error 4902 switching to chain 1983&lt;/td&gt;
&lt;td&gt;In QIE Wallet, turn on the testnet toggle in settings first.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;invalid opcode / PUSH0 errors at deploy&lt;/td&gt;
&lt;td&gt;Compile with &lt;code&gt;evm_version = "paris"&lt;/code&gt;, as above.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification: bytecode mismatch&lt;/td&gt;
&lt;td&gt;Use the same compiler version, optimizer runs and EVM version as your build, and identical constructor args.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification stuck on "Pending in queue"&lt;/td&gt;
&lt;td&gt;Keep &lt;code&gt;--watch&lt;/code&gt;, or run &lt;code&gt;forge verify-check &amp;lt;GUID&amp;gt; --verifier blockscout --verifier-url https://testnet.qie.digital/api/&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;nonce too low&lt;/td&gt;
&lt;td&gt;Wait for the previous transaction to confirm (blocks are about 4 s) or check &lt;code&gt;cast nonce &amp;lt;address&amp;gt;&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Foundry shows amounts in "ETH"&lt;/td&gt;
&lt;td&gt;Cosmetic; on QIE testnet the native coin is testnet QIE.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Next: build something real for QIE Hackathon 3.0
&lt;/h2&gt;

&lt;p&gt;Testnet is where you prototype. QIE Hackathon 3.0 is where you ship. It's an online EVM hackathon with a $17K prize pool, and the site lists a mainnet deployment requirement for final projects, so use this testnet loop to get your contracts right first. Pick one of the five tracks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeFi &amp;amp; Financial Infrastructure&lt;/li&gt;
&lt;li&gt;AI + Autonomous Agents&lt;/li&gt;
&lt;li&gt;Consumer Apps &amp;amp; Social&lt;/li&gt;
&lt;li&gt;Commerce &amp;amp; Real World&lt;/li&gt;
&lt;li&gt;Developer Infrastructure &amp;amp; Tooling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prizes as listed on the site: 1st place $5,000, 2nd $3,000, 3rd $2,000; $500 Category Excellence awards for each track; and special awards for Most Traction ($2,500), Community Choice ($1,000) and Best Student Team ($1,000). Half of each prize is paid on Dec 10, 2026 and half after three traction milestones within 90 days.&lt;/p&gt;

&lt;p&gt;Projects that integrate QIE ecosystem components get bonus consideration: connect QIE Wallet (it's non-custodial, so your dApp asks the user to sign), show a QIE ID such as yourname.qie instead of a raw 0x address, or plug into QIEDEX or the QIE Oracle.&lt;/p&gt;

&lt;p&gt;Your submission needs a public GitHub repo, a live demo URL, your verified contract address and your track. Before you push, check that no keys, keystore files or passwords are in the repo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Submit by Nov 30, 2026.&lt;/strong&gt; Register your team here: &lt;a href="https://hackathon.qie.digital/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=hackathon3" rel="noopener noreferrer"&gt;hackathon.qie.digital&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See you on chain 1983.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The QIE team&lt;/em&gt;&lt;/p&gt;

</description>
      <category>solidity</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
