<?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>Forem: Alfred Zhang</title>
    <description>The latest articles on Forem by Alfred Zhang (@alfredz0x).</description>
    <link>https://forem.com/alfredz0x</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%2Fuser%2Fprofile_image%2F3778703%2F58735bc3-dfd5-4ed6-9c8a-d82b53f81dc6.png</url>
      <title>Forem: Alfred Zhang</title>
      <link>https://forem.com/alfredz0x</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alfredz0x"/>
    <language>en</language>
    <item>
      <title>TCP/IP for Money: Why Card Networks Are the Next Telcos</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 11:53:17 +0000</pubDate>
      <link>https://forem.com/alfredz0x/tcpip-for-money-why-card-networks-are-the-next-telcos-2jdg</link>
      <guid>https://forem.com/alfredz0x/tcpip-for-money-why-card-networks-are-the-next-telcos-2jdg</guid>
      <description>&lt;p&gt;Visa is AT&amp;amp;T in 1995.&lt;/p&gt;

&lt;p&gt;Hear me out.&lt;/p&gt;

&lt;p&gt;AT&amp;amp;T charged per-minute for calls. Visa charges per-tap for payments. Both built proprietary networks. Both claimed alternatives were impossible.&lt;/p&gt;

&lt;p&gt;Then VoIP happened. Same phone. Same call quality. No per-minute charges. The network was replaced by a protocol.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; is doing the same thing to card networks.&lt;/p&gt;

&lt;p&gt;Same EMV tap. Same terminal. Same sub-500ms experience. But the network underneath is different: P-256 cryptography, on-chain settlement via RIP-7212 on Base L2, AUD stablecoins. No interchange. No scheme fees. No 2-3 day settlement.&lt;/p&gt;

&lt;p&gt;The IIN from ISO is the key. It lets any terminal recognize our card, just like it recognizes Visa. We're not asking merchants to install new hardware. We're upgrading the rails under their existing setup.&lt;/p&gt;

&lt;p&gt;3,200+ users across 20+ Sydney cafes. 45,509 transactions. Built by 3 people with zero funding.&lt;/p&gt;

&lt;p&gt;The RBA just banned card surcharges in Australia. The surcharge was the symptom. The 0.3-0.8% extraction by intermediaries was the disease. The ban hides it. OpenPasskey removes it.&lt;/p&gt;

&lt;p&gt;Blackbird Giants Cohort 11. Australia's largest VC recognized the pattern.&lt;/p&gt;

&lt;p&gt;The card networks are the next telcos. The question isn't if, it's when.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;openpasskey.com&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>fintech</category>
      <category>payments</category>
      <category>disruption</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Building a Custom Java Card Applet for Payment Cards</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 09:39:48 +0000</pubDate>
      <link>https://forem.com/alfredz0x/building-a-custom-java-card-applet-for-payment-cards-4f18</link>
      <guid>https://forem.com/alfredz0x/building-a-custom-java-card-applet-for-payment-cards-4f18</guid>
      <description>&lt;p&gt;Our card runs a custom applet on a JCOP4 (Java Card Open Platform) chip. Here's what that actually means and how we built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Java Card?
&lt;/h2&gt;

&lt;p&gt;Java Card is a technology that allows Java-based applets to run on smart cards and secure elements. It's the platform behind most EMV chip cards, SIM cards, and government ID cards.&lt;/p&gt;

&lt;p&gt;JCOP (Java Card Open Platform) is NXP's implementation. JCOP4 is the latest generation, supporting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RSA up to 4096 bits&lt;/li&gt;
&lt;li&gt;ECC including P-256 (secp256r1)&lt;/li&gt;
&lt;li&gt;AES-256&lt;/li&gt;
&lt;li&gt;Secure key storage&lt;/li&gt;
&lt;li&gt;Multiple applet isolation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Our Applet Does
&lt;/h2&gt;

&lt;p&gt;The OpenPasskey applet:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Key Generation
&lt;/h3&gt;

&lt;p&gt;On first use, the applet generates a P-256 key pair inside the card's secure element. The private key &lt;strong&gt;never leaves the chip&lt;/strong&gt;. Not during manufacturing, not during use, not ever.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. EMV Protocol
&lt;/h3&gt;

&lt;p&gt;The applet implements the EMV contactless protocol (ISO 14443-4). When a terminal emits an NFC field:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Card powers up from the RF field&lt;/li&gt;
&lt;li&gt;Terminal sends SELECT command with our AID&lt;/li&gt;
&lt;li&gt;Applet responds with card capabilities&lt;/li&gt;
&lt;li&gt;Terminal sends GET PROCESSING OPTIONS&lt;/li&gt;
&lt;li&gt;Applet prepares transaction data&lt;/li&gt;
&lt;li&gt;Terminal sends GENERATE AC (authorization cryptogram)&lt;/li&gt;
&lt;li&gt;Applet signs transaction data with P-256&lt;/li&gt;
&lt;li&gt;Returns signature + payment metadata&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Total time: under 500ms.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Transaction Signing
&lt;/h3&gt;

&lt;p&gt;For each tap, the applet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increments a transaction counter (prevents replay)&lt;/li&gt;
&lt;li&gt;Builds a data structure: amount, merchant ID, counter, timestamp&lt;/li&gt;
&lt;li&gt;Signs with P-256 ECDSA using the stored private key&lt;/li&gt;
&lt;li&gt;Returns: signature (r, s), public key (x, y), transaction data&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Multiple Interfaces
&lt;/h3&gt;

&lt;p&gt;The same applet supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contact interface&lt;/strong&gt; (chip inserted into reader)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contactless interface&lt;/strong&gt; (NFC tap)&lt;/li&gt;
&lt;li&gt;Both use the same key pair and signing logic&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Host Card Emulation (HCE)
&lt;/h2&gt;

&lt;p&gt;For mobile phones, we implement the same protocol in software using HCE (Host Card Emulation). The phone's NFC chip emulates a contactless card, speaking the same APDU commands.&lt;/p&gt;

&lt;p&gt;The key difference: on HCE, the private key is stored in the phone's secure element or TEE (Trusted Execution Environment) rather than a Java Card chip.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Java Card?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hardware security&lt;/strong&gt;: Private key in a certified secure element&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EMV compliance&lt;/strong&gt;: Industry-standard protocol implementation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal compatibility&lt;/strong&gt;: Works at any existing EMV terminal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tamper resistance&lt;/strong&gt;: Physical + logical protection&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;A card that taps identically to Visa from the terminal's perspective, but signs with P-256 (stronger than Visa's 3DES) and settles on-chain instead of through banks.&lt;/p&gt;

&lt;p&gt;3,200+ users, 20+ Sydney cafes. Zero complaints about tap speed or reliability.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>hardware</category>
      <category>security</category>
      <category>payments</category>
    </item>
    <item>
      <title>How Any Acquirer Can Add OpenPasskey in 1 Day (No Integration Needed)</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 09:39:18 +0000</pubDate>
      <link>https://forem.com/alfredz0x/how-any-acquirer-can-add-openpasskey-in-1-day-no-integration-needed-43jm</link>
      <guid>https://forem.com/alfredz0x/how-any-acquirer-can-add-openpasskey-in-1-day-no-integration-needed-43jm</guid>
      <description>&lt;p&gt;The biggest question we get: how do you get merchants to adopt a new card?&lt;/p&gt;

&lt;p&gt;The answer: we don't have to. EMV handles distribution for us.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Card Routing Works
&lt;/h2&gt;

&lt;p&gt;When you tap a card at a terminal, the terminal reads the card's IIN (first 6-8 digits) and looks it up in a routing table maintained by the acquirer (the merchant's payment processor).&lt;/p&gt;

&lt;p&gt;Visa's IINs start with 4. The acquirer's routing table says: "IIN starts with 4 → route to Visa network."&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding OpenPasskey
&lt;/h2&gt;

&lt;p&gt;We have our own IIN from ISO. When an acquirer adds our IIN to their routing table:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Every terminal they manage instantly recognizes our cards&lt;/li&gt;
&lt;li&gt;Merchants don't install anything&lt;/li&gt;
&lt;li&gt;Merchants don't sign anything new&lt;/li&gt;
&lt;li&gt;The terminal just works&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This takes approximately one day of configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Acquirers Would Do This
&lt;/h2&gt;

&lt;p&gt;Acquirers make money on the merchant service fee (typically 1-2.5% including interchange). With OpenPasskey:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No interchange to pass through&lt;/strong&gt; (they keep more of the fee, or offer lower rates)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant settlement reduces risk&lt;/strong&gt; (no 2-3 day float)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Differentiation&lt;/strong&gt; in a commoditized market&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For acquirers competing on price (Tyro, Zeller, Square in Australia), offering a zero-interchange card network is a compelling feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;p&gt;Australia has several major acquirers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tyro (~80,000 merchants)&lt;/li&gt;
&lt;li&gt;Zeller (growing fast in SMB)&lt;/li&gt;
&lt;li&gt;Square/Block&lt;/li&gt;
&lt;li&gt;Airwallex&lt;/li&gt;
&lt;li&gt;Novatti&lt;/li&gt;
&lt;li&gt;The big four banks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One acquirer partnership = instant access to their entire merchant base.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current State
&lt;/h2&gt;

&lt;p&gt;3,200+ users across 20+ Sydney cafes on our direct integration. The acquirer distribution path scales this to tens of thousands of merchants per partnership.&lt;/p&gt;

&lt;p&gt;Blackbird Giants Cohort 11. Base ecosystem grant. Zero external funding.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>fintech</category>
      <category>payments</category>
      <category>distribution</category>
    </item>
    <item>
      <title>How a New Card Network Gets Distribution Without Partnerships</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 09:09:44 +0000</pubDate>
      <link>https://forem.com/alfredz0x/how-a-new-card-network-gets-distribution-without-partnerships-1cag</link>
      <guid>https://forem.com/alfredz0x/how-a-new-card-network-gets-distribution-without-partnerships-1cag</guid>
      <description>&lt;p&gt;The hardest part of building a payment network isn't the technology. It's distribution.&lt;/p&gt;

&lt;p&gt;Visa has 100+ million terminals worldwide. How does a 3-person startup compete with that?&lt;/p&gt;

&lt;p&gt;The answer: you don't compete. You use the same terminals.&lt;/p&gt;

&lt;h2&gt;
  
  
  The EMV Distribution Hack
&lt;/h2&gt;

&lt;p&gt;EMV (Europay, Mastercard, Visa) is an open standard. Any terminal that reads Visa cards can read any EMV-compliant card. The terminal doesn't care who issued the card. It cares about the protocol.&lt;/p&gt;

&lt;p&gt;When you tap a card:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Terminal reads the card's Application Identifier (AID)&lt;/li&gt;
&lt;li&gt;Matches it against supported applications&lt;/li&gt;
&lt;li&gt;Routes the transaction accordingly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Visa's AID: A0000000031010&lt;br&gt;
Mastercard's AID: A0000000041010&lt;br&gt;
OpenPasskey's AID: [registered under our IIN]&lt;/p&gt;

&lt;h2&gt;
  
  
  The Acquirer Route
&lt;/h2&gt;

&lt;p&gt;Acquirers are the companies that provide payment terminals to merchants (think Tyro, Square, Zeller, Airwallex in Australia).&lt;/p&gt;

&lt;p&gt;Adding a new card network to an acquirer's routing table is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Register our IIN and AID&lt;/li&gt;
&lt;li&gt;Configure routing rules&lt;/li&gt;
&lt;li&gt;Done. Their terminals now recognize our cards.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Estimated time: approximately one day.&lt;/p&gt;

&lt;p&gt;The merchant doesn't install anything. They don't sign a new contract. Their existing terminal just starts accepting our cards alongside Visa and Mastercard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Works
&lt;/h2&gt;

&lt;p&gt;This is exactly how Visa and Mastercard got distribution. They didn't install custom terminals. They used the EMV standard. Acquirers added them to routing tables. Terminals recognized them.&lt;/p&gt;

&lt;p&gt;We're doing the same thing, but our settlement layer is on-chain instead of through the banking system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;p&gt;Right now: 20+ Sydney cafes, direct merchant relationships.&lt;/p&gt;

&lt;p&gt;Next: acquirer partnerships that scale to thousands of merchants without individual onboarding.&lt;/p&gt;

&lt;p&gt;With our IIN from ISO: any acquirer, any country that uses EMV contactless.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Business Model
&lt;/h2&gt;

&lt;p&gt;Visa charges interchange (0.3-0.8%) and scheme fees. That's how they monetize the routing.&lt;/p&gt;

&lt;p&gt;We remove those fees. Our monetization comes from the settlement layer, not from taxing every tap.&lt;/p&gt;

&lt;p&gt;3,200+ users. 20+ cafes. Zero external funding. Blackbird Giants Cohort 11.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>payments</category>
      <category>fintech</category>
      <category>distribution</category>
    </item>
    <item>
      <title>Building a Payment Applet on Java Card: From JCOP4 to EMV Contactless</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 09:09:12 +0000</pubDate>
      <link>https://forem.com/alfredz0x/building-a-payment-applet-on-java-card-from-jcop4-to-emv-contactless-3hi2</link>
      <guid>https://forem.com/alfredz0x/building-a-payment-applet-on-java-card-from-jcop4-to-emv-contactless-3hi2</guid>
      <description>&lt;p&gt;Java Card is the platform that runs inside billions of smart cards worldwide. If you've ever tapped a Visa or Mastercard, you've interacted with a Java Card applet.&lt;/p&gt;

&lt;p&gt;We built our own. Here's what that looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Java Card?
&lt;/h2&gt;

&lt;p&gt;Java Card is a stripped-down Java environment designed for smart cards and secure elements. It runs on chips with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1-5 KB RAM&lt;/li&gt;
&lt;li&gt;32-128 KB EEPROM&lt;/li&gt;
&lt;li&gt;8-32 bit processors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Despite these constraints, it supports cryptographic operations, secure storage, and the APDU (Application Protocol Data Unit) communication protocol that EMV relies on.&lt;/p&gt;

&lt;h2&gt;
  
  
  JCOP4: Our Chip Platform
&lt;/h2&gt;

&lt;p&gt;JCOP4 (Java Card Open Platform 4) is NXP's latest Java Card platform. It supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java Card 3.0.5 API&lt;/li&gt;
&lt;li&gt;GlobalPlatform 2.3&lt;/li&gt;
&lt;li&gt;P-256 ECDSA (critical for our use case)&lt;/li&gt;
&lt;li&gt;ISO 14443 contactless interface&lt;/li&gt;
&lt;li&gt;Common Criteria EAL5+ certification&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The OpenPasskey Applet
&lt;/h2&gt;

&lt;p&gt;Our applet does four things:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Key Generation
&lt;/h3&gt;

&lt;p&gt;On first initialization, the applet generates a P-256 key pair inside the card's secure element. The private key never leaves the chip.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Simplified flow&lt;/span&gt;
&lt;span class="nc"&gt;KeyPair&lt;/span&gt; &lt;span class="n"&gt;kp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;KeyPair&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;KeyPair&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ALG_EC_FP&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;KeyBuilder&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;LENGTH_EC_FP_256&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;kp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;genKeyPair&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;// Private key is stored in chip's secure storage&lt;/span&gt;
&lt;span class="c1"&gt;// Public key is exportable for on-chain registration&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. EMV Protocol Implementation
&lt;/h3&gt;

&lt;p&gt;The applet implements the EMV contactless protocol so that payment terminals recognize it. This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application selection (AID matching)&lt;/li&gt;
&lt;li&gt;Get Processing Options&lt;/li&gt;
&lt;li&gt;Read Record&lt;/li&gt;
&lt;li&gt;Generate Application Cryptogram&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our AID is registered under our IIN from ISO. When a terminal selects our AID, it follows the standard EMV flow.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Transaction Signing
&lt;/h3&gt;

&lt;p&gt;On each tap, the applet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Receives transaction data (amount, merchant ID, nonce, timestamp)&lt;/li&gt;
&lt;li&gt;Signs it with P-256 ECDSA using the card's private key&lt;/li&gt;
&lt;li&gt;Returns the signature, public key reference, and transaction metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. NFC Communication
&lt;/h3&gt;

&lt;p&gt;All communication happens via ISO 14443 (13.56 MHz NFC). The card harvests power from the terminal's RF field. No battery needed. Tap-to-response in under 500ms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Host Card Emulation (HCE)
&lt;/h2&gt;

&lt;p&gt;The same protocol runs on Android phones via Host Card Emulation. Instead of a physical chip, the phone's NFC controller emulates the card. The private key is stored in the phone's secure element or TEE (Trusted Execution Environment).&lt;/p&gt;

&lt;p&gt;From the terminal's perspective, a phone tap and a card tap are identical.&lt;/p&gt;

&lt;h2&gt;
  
  
  The On-Chain Bridge
&lt;/h2&gt;

&lt;p&gt;The card's P-256 signature is the bridge between physical world and blockchain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Card signs with P-256 (in the chip)&lt;/li&gt;
&lt;li&gt;Signature submitted to Base L2&lt;/li&gt;
&lt;li&gt;RIP-7212 precompile verifies the signature (~3,450 gas)&lt;/li&gt;
&lt;li&gt;ClearingVault settles the payment in stablecoins&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the key insight: EMV cards already produce cryptographic signatures. We just verify them on-chain instead of through Visa's network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why P-256 Over secp256k1?
&lt;/h2&gt;

&lt;p&gt;Ethereum uses secp256k1. EMV cards use P-256. These are different elliptic curves.&lt;/p&gt;

&lt;p&gt;We use P-256 because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's the EMV standard (compatibility with 11B+ cards)&lt;/li&gt;
&lt;li&gt;Java Card chips have hardware acceleration for P-256&lt;/li&gt;
&lt;li&gt;RIP-7212 makes on-chain verification economical&lt;/li&gt;
&lt;li&gt;It's the same curve as TLS 1.3, FIDO2, and Apple Secure Enclave&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;3,200+ users across 20+ Sydney cafes. Three payment methods (card, phone, QR) through one settlement pipeline. All starting from a Java Card applet on a JCOP4 chip.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>hardware</category>
      <category>security</category>
      <category>payments</category>
    </item>
    <item>
      <title>Australia's Card Surcharge Ban: What Actually Happens on October 1</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:40:22 +0000</pubDate>
      <link>https://forem.com/alfredz0x/australias-card-surcharge-ban-what-actually-happens-on-october-1-1</link>
      <guid>https://forem.com/alfredz0x/australias-card-surcharge-ban-what-actually-happens-on-october-1-1</guid>
      <description>&lt;p&gt;On March 31, 2026, the Reserve Bank of Australia announced sweeping changes to the payment system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Card surcharges banned&lt;/strong&gt; from October 1, 2026 (Eftpos, Visa, Mastercard)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interchange fee caps reduced&lt;/strong&gt; (credit cards from 0.8% to 0.3%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consumer savings&lt;/strong&gt;: estimated $1.6 billion/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business savings&lt;/strong&gt;: estimated $910 million/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mid-2026 consultation&lt;/strong&gt; planned on mobile wallets, BNPL, and e-commerce&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sounds great. Here's what's actually going to happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Headlines Say
&lt;/h2&gt;

&lt;p&gt;"Australians save $1.6 billion in surcharge fees!"&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Happens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For Consumers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The 1.5% surcharge line item disappears ✓&lt;/li&gt;
&lt;li&gt;Your coffee price goes up ~10 cents (RBA's own estimate: 0.1% one-off price increase)&lt;/li&gt;
&lt;li&gt;Your credit card rewards get cut (banks already warned)&lt;/li&gt;
&lt;li&gt;Your annual card fee increases&lt;/li&gt;
&lt;li&gt;Your interest-free period may shrink&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For Merchants
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;They can no longer pass card costs to card users&lt;/li&gt;
&lt;li&gt;They still pay 0.3-0.8% on every tap (reduced from 0.3-0.8% after interchange cap changes, but not zero)&lt;/li&gt;
&lt;li&gt;They raise prices across the board to compensate&lt;/li&gt;
&lt;li&gt;Small businesses hit hardest (thin margins)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For Banks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Interchange revenue drops ~$910M/year&lt;/li&gt;
&lt;li&gt;They cut rewards, raise fees, reduce interest-free periods&lt;/li&gt;
&lt;li&gt;Net effect on bank profitability: minimal (they pass the cost to consumers)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Core Problem
&lt;/h2&gt;

&lt;p&gt;The surcharge ban removes the &lt;strong&gt;visibility&lt;/strong&gt; of the cost. It doesn't remove the &lt;strong&gt;cost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every card tap still goes through: issuing bank → card network (Visa/MC) → acquirer → processor → terminal provider. Each takes a cut. The merchant pays. The consumer pays indirectly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Alternative
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; built a payment network that removes the intermediaries entirely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Own IIN from ISO (same card identifier system as Visa)&lt;/li&gt;
&lt;li&gt;EMV contactless standard (works at any terminal)&lt;/li&gt;
&lt;li&gt;No bank, no card network, no interchange&lt;/li&gt;
&lt;li&gt;Settlement on Base L2 in seconds&lt;/li&gt;
&lt;li&gt;Merchant keeps the full amount&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3,200+ users across 20+ Sydney cafes. Built by 3 people with zero external funding. Blackbird Giants Cohort 11.&lt;/p&gt;

&lt;p&gt;The surcharge ban is a bandaid. OpenPasskey is the fix.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;openpasskey.com&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>australia</category>
      <category>fintech</category>
      <category>payments</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>The IIN Is the Moat: Why Most Crypto Payment Projects Are Wrappers</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:39:55 +0000</pubDate>
      <link>https://forem.com/alfredz0x/the-iin-is-the-moat-why-most-crypto-payment-projects-are-wrappers-3bmn</link>
      <guid>https://forem.com/alfredz0x/the-iin-is-the-moat-why-most-crypto-payment-projects-are-wrappers-3bmn</guid>
      <description>&lt;p&gt;Every month, a new "crypto debit card" launches. They all have one thing in common: they're Visa cards.&lt;/p&gt;

&lt;p&gt;They settle through Visa's network. They pay interchange. The merchant pays the same 0.3-0.8%. The only difference is what happens before the Visa transaction: your crypto gets converted to fiat.&lt;/p&gt;

&lt;p&gt;That's not disruption. That's a wrapper.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Disrupts Card Networks
&lt;/h2&gt;

&lt;p&gt;To replace Visa, you need three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Your own IIN from ISO&lt;/strong&gt; — Without it, you can't issue cards that terminals recognize&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EMV compliance&lt;/strong&gt; — Without it, your cards don't work at existing terminals&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An alternative settlement layer&lt;/strong&gt; — Without it, you're still using Visa's rails&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; has all three.&lt;/p&gt;

&lt;h2&gt;
  
  
  The IIN
&lt;/h2&gt;

&lt;p&gt;An Issuer Identification Number is the first 6-8 digits of every card number. It's how terminals know where to route a transaction. Visa's IINs start with 4. Mastercard's start with 5.&lt;/p&gt;

&lt;p&gt;We applied directly to ISO (International Organization for Standardization) and received our own IIN range. Capacity: 99 billion unique card numbers.&lt;/p&gt;

&lt;p&gt;With an IIN, any acquirer can add us to their routing table in approximately one day. The merchant doesn't install anything. They don't sign a new contract. Their terminal just starts recognizing our cards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Is Hard
&lt;/h2&gt;

&lt;p&gt;Most crypto payment projects skip the IIN because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They don't know it exists&lt;/li&gt;
&lt;li&gt;They don't understand EMV&lt;/li&gt;
&lt;li&gt;It's easier to partner with Visa and slap a logo on a card&lt;/li&gt;
&lt;li&gt;Building a custom Java Card applet requires firmware expertise most teams don't have&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result: hundreds of "crypto cards" that are really Visa cards with a crypto on-ramp.&lt;/p&gt;

&lt;h2&gt;
  
  
  The OpenPasskey Difference
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IIN from ISO&lt;/strong&gt; ✓ (same standard as Visa)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Java Card applet&lt;/strong&gt; ✓ (P-256 ECDSA, stronger than Visa's 3DES)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EMV contactless compliance&lt;/strong&gt; ✓ (works at any terminal)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On-chain settlement&lt;/strong&gt; ✓ (Base L2, seconds not days)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three payment methods&lt;/strong&gt; ✓ (card tap, phone tap, QR scan)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero interchange&lt;/strong&gt; ✓ (merchant keeps everything)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;p&gt;3,200+ users. 20+ Sydney cafes. 45,509 transactions. AU$66K volume. 4.5x industry average retention.&lt;/p&gt;

&lt;p&gt;3 people. 10 months. Zero external funding. Blackbird Giants Cohort 11.&lt;/p&gt;

&lt;p&gt;The IIN is the moat. Everything else is a wrapper.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>crypto</category>
      <category>fintech</category>
      <category>payments</category>
    </item>
    <item>
      <title>CREATE2 in Payments: Deterministic Merchant Addresses on Base L2</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:12:58 +0000</pubDate>
      <link>https://forem.com/alfredz0x/create2-in-payments-deterministic-merchant-addresses-on-base-l2-4dm5</link>
      <guid>https://forem.com/alfredz0x/create2-in-payments-deterministic-merchant-addresses-on-base-l2-4dm5</guid>
      <description>&lt;p&gt;One of the lesser-discussed technical decisions in our payment architecture: using Ethereum's CREATE2 opcode to generate deterministic merchant receiver addresses.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;When settling card payments on-chain, each merchant needs a unique address to receive funds. You could:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Generate random addresses&lt;/strong&gt;: Simple, but the card/terminal needs to know the merchant's address at tap time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a central registry&lt;/strong&gt;: Works, but adds a lookup step and a centralization point&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use CREATE2&lt;/strong&gt;: Compute the address deterministically from the merchant ID&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We chose option 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  How CREATE2 Works
&lt;/h2&gt;

&lt;p&gt;CREATE2 computes a contract address from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The deployer address (our ClearingVault)&lt;/li&gt;
&lt;li&gt;A salt (derived from the merchant's ID)&lt;/li&gt;
&lt;li&gt;The bytecode of the receiver contract
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;address receiver = address(uint160(uint256(keccak256(
    abi.encodePacked(bytes1(0xff), clearingVault, salt, bytecodeHash)
))));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The receiver address is known before deployment&lt;/li&gt;
&lt;li&gt;Any party can compute it from the merchant ID&lt;/li&gt;
&lt;li&gt;The contract only needs to be deployed when first receiving funds&lt;/li&gt;
&lt;li&gt;No central registry or lookup needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters for Card Payments
&lt;/h2&gt;

&lt;p&gt;At tap time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Card signs transaction data (includes merchant ID)&lt;/li&gt;
&lt;li&gt;ClearingVault receives the transaction&lt;/li&gt;
&lt;li&gt;ClearingVault computes the merchant's receiver address via CREATE2&lt;/li&gt;
&lt;li&gt;If receiver doesn't exist yet, deploy it&lt;/li&gt;
&lt;li&gt;Route stablecoins to the receiver&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The merchant's address is deterministic. The card doesn't need to store it. The terminal doesn't need to look it up. It's computed on the fly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Receiver Contract
&lt;/h2&gt;

&lt;p&gt;Each merchant's receiver is a minimal contract:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;contract MerchantReceiver {
    address public merchant;
    address public clearingVault;

    function withdraw(address token) external {
        require(msg.sender == merchant);
        IERC20(token).transfer(merchant, IERC20(token).balanceOf(address(this)));
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Merchants can withdraw at any time. Funds accumulate between withdrawals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gas Efficiency
&lt;/h2&gt;

&lt;p&gt;On Base L2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Computing a CREATE2 address: ~100 gas&lt;/li&gt;
&lt;li&gt;First-time deployment: ~50,000 gas (~$0.001)&lt;/li&gt;
&lt;li&gt;Subsequent settlements: ~30,000 gas (~$0.0005)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compare this to Visa's 0.3-0.8% per transaction. On a $5 coffee, Visa takes $0.015-$0.04. Our on-chain cost is less than $0.001.&lt;/p&gt;

&lt;h2&gt;
  
  
  For Developers
&lt;/h2&gt;

&lt;p&gt;If you're building any system that needs deterministic, per-entity addresses:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use CREATE2 with entity ID as salt&lt;/li&gt;
&lt;li&gt;Keep receiver contracts minimal&lt;/li&gt;
&lt;li&gt;Consider lazy deployment (only deploy on first receipt)&lt;/li&gt;
&lt;li&gt;Use Base L2 for sub-cent gas costs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This pattern works for: payment settlement, subscription billing, marketplace escrow, royalty distribution.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ethereum</category>
      <category>solidity</category>
      <category>web3</category>
      <category>payments</category>
    </item>
    <item>
      <title>Stablecoin Settlement: How We Replace 2-3 Day Card Settlement with Seconds</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:12:26 +0000</pubDate>
      <link>https://forem.com/alfredz0x/stablecoin-settlement-how-we-replace-2-3-day-card-settlement-with-seconds-2hhe</link>
      <guid>https://forem.com/alfredz0x/stablecoin-settlement-how-we-replace-2-3-day-card-settlement-with-seconds-2hhe</guid>
      <description>&lt;p&gt;When you tap your Visa card at a cafe, the money doesn't arrive for 2-3 business days. On weekends and holidays, it's even longer.&lt;/p&gt;

&lt;p&gt;Our settlement happens in seconds. Here's how.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Visa Settlement Works
&lt;/h2&gt;

&lt;p&gt;Visa's settlement process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Authorization&lt;/strong&gt; (~2 seconds): Issuer approves the transaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clearing&lt;/strong&gt; (~24-48 hours): Transaction data is batched and reconciled&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settlement&lt;/strong&gt; (~2-3 business days): Actual funds move between banks via ACH/wire&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During this 2-3 day window:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The merchant doesn't have the money&lt;/li&gt;
&lt;li&gt;The consumer's bank has put a hold on the funds&lt;/li&gt;
&lt;li&gt;Multiple intermediaries are reconciling ledgers&lt;/li&gt;
&lt;li&gt;Each intermediary takes a fee&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How OpenPasskey Settlement Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tap&lt;/strong&gt; (~500ms): Card signs transaction with P-256&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification&lt;/strong&gt; (~2 seconds): RIP-7212 precompile verifies signature on Base L2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settlement&lt;/strong&gt; (~3 seconds): AUD stablecoin transfers to merchant's CREATE2 receiver&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Total time: under 6 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ClearingVault
&lt;/h2&gt;

&lt;p&gt;Our settlement happens through a ClearingVault smart contract. When a valid card tap is verified:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The ClearingVault checks the P-256 signature (via RIP-7212)&lt;/li&gt;
&lt;li&gt;Verifies the transaction hasn't been replayed (nonce check)&lt;/li&gt;
&lt;li&gt;Routes AUD stablecoins to the merchant's dedicated receiver address&lt;/li&gt;
&lt;li&gt;The receiver is a CREATE2 address, deterministically generated from the merchant's ID&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each merchant gets their own receiver address. Funds are instantly accessible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Stablecoins?
&lt;/h2&gt;

&lt;p&gt;Regulated AUD stablecoins maintain a 1:1 peg with the Australian dollar, backed by AUD reserves held in regulated Australian institutions.&lt;/p&gt;

&lt;p&gt;For the merchant, the experience is: tap happens, AUD appears in their account. The fact that settlement happens on-chain is invisible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Visa&lt;/th&gt;
&lt;th&gt;OpenPasskey&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Settlement time&lt;/td&gt;
&lt;td&gt;2-3 business days&lt;/td&gt;
&lt;td&gt;~5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interchange fee&lt;/td&gt;
&lt;td&gt;0.3-0.8%&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheme fee&lt;/td&gt;
&lt;td&gt;~0.05%&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-chain gas&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;&amp;lt;$0.001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Merchant receives&lt;/td&gt;
&lt;td&gt;99.2-99.7%&lt;/td&gt;
&lt;td&gt;~100%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  For Developers
&lt;/h2&gt;

&lt;p&gt;The ClearingVault is a standard Solidity contract deployed on Base. The key innovation is using RIP-7212 to bridge the gap between EMV card cryptography (P-256) and on-chain settlement.&lt;/p&gt;

&lt;p&gt;This pattern (physical device signature → on-chain verification → instant settlement) is applicable beyond payments: access control, ticketing, supply chain, identity.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;3,200+ users, 20+ Sydney cafes, settling in seconds. &lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>defi</category>
      <category>payments</category>
      <category>solidity</category>
    </item>
    <item>
      <title>How 3 People Built a Card Network in 10 Months with Zero Funding</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:06:33 +0000</pubDate>
      <link>https://forem.com/alfredz0x/how-3-people-built-a-card-network-in-10-months-with-zero-funding-419f</link>
      <guid>https://forem.com/alfredz0x/how-3-people-built-a-card-network-in-10-months-with-zero-funding-419f</guid>
      <description>&lt;p&gt;In January 2025, three engineers in Sydney started building a payment network to compete with Visa.&lt;/p&gt;

&lt;p&gt;By November 2025, they had 20+ cafes live with 3,200+ users. Zero external funding. No VC. No grants (yet).&lt;/p&gt;

&lt;p&gt;Here's what that actually looked like.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Team
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Victor Zhang&lt;/strong&gt;: Co-invented Ethereum token standards ERC-5169 and ERC-7738. Co-founded AlphaWallet. 8 years building on Ethereum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;James Brown&lt;/strong&gt;: Co-founded AlphaWallet. 25 years systems engineering. IoT firmware expert.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cindy Chuah&lt;/strong&gt;: Growth and merchant success. Previously scaled 1,500+ SMBs at Booking.com and TripAdvisor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No payments industry veterans. No card network experience. Just engineers who understood cryptography and a growth person who understood merchants.&lt;/p&gt;

&lt;h2&gt;
  
  
  Month 1-3: The IIN
&lt;/h2&gt;

&lt;p&gt;The first thing we did was apply for our own Issuer Identification Number from ISO. This is the same identifier that Visa and Mastercard use. Without it, you can't issue cards that work in the existing payment ecosystem.&lt;/p&gt;

&lt;p&gt;Getting an IIN means you're recognized at the same level as Visa. You're in routing tables. Terminals read your cards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Month 3-6: The Card
&lt;/h2&gt;

&lt;p&gt;We built a custom applet for JCOP4 (Java Card Open Platform) chips. The applet:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generates a P-256 key pair in the card's secure element&lt;/li&gt;
&lt;li&gt;Implements EMV contactless protocol&lt;/li&gt;
&lt;li&gt;Signs transaction data on each tap&lt;/li&gt;
&lt;li&gt;Works identically to a Visa card from the terminal's perspective&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Simultaneously, we built the mobile NFC version using Host Card Emulation (HCE) and a QR code payment option using ERC-681.&lt;/p&gt;

&lt;h2&gt;
  
  
  Month 6-8: The Settlement Layer
&lt;/h2&gt;

&lt;p&gt;This is where the blockchain part comes in. We built a ClearingVault smart contract on Base L2 (Coinbase's Ethereum layer 2) that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Accepts P-256 signatures from card taps&lt;/li&gt;
&lt;li&gt;Verifies them on-chain via the RIP-7212 precompile&lt;/li&gt;
&lt;li&gt;Routes AUD stablecoins to merchant-specific CREATE2 receivers&lt;/li&gt;
&lt;li&gt;Enables instant settlement&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Month 8-10: Going Live
&lt;/h2&gt;

&lt;p&gt;We launched with a loyalty solution first. Cafe customers get a card, tap for rewards, build the habit. Then payments come next.&lt;/p&gt;

&lt;p&gt;The results:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3,200+ wallet users&lt;/li&gt;
&lt;li&gt;45,509 total transactions&lt;/li&gt;
&lt;li&gt;AU$66,000 in volume&lt;/li&gt;
&lt;li&gt;4.5x industry average week-12 retention&lt;/li&gt;
&lt;li&gt;20+ Sydney cafes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Month 11: Blackbird Giants
&lt;/h2&gt;

&lt;p&gt;Blackbird Ventures (Australia's largest VC, Canva's earliest investor) selected us for Giants Cohort 11. This isn't investment, it's an accelerator program. But it's validation from the most respected VC in the country.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The IIN is everything.&lt;/strong&gt; Without it, you're just another crypto card on Visa's rails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EMV compatibility is the distribution hack.&lt;/strong&gt; Merchants don't need to change anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start with loyalty, add payments.&lt;/strong&gt; Users build the tap habit first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 people is enough.&lt;/strong&gt; If you know the tech deeply, you don't need a large team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero funding forces focus.&lt;/strong&gt; We couldn't build features nobody wanted.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The RBA just banned card surcharges in Australia. Mid-2026, they're opening a consultation on mobile wallets and BNPL. The regulatory environment is shifting in our favor.&lt;/p&gt;

&lt;p&gt;We're building TCP/IP for money. One cafe tap at a time.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>entrepreneurship</category>
      <category>fintech</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>EMV: The Global Standard That Makes OpenPasskey Work at Any Terminal</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 07:58:30 +0000</pubDate>
      <link>https://forem.com/alfredz0x/emv-the-global-standard-that-makes-openpasskey-work-at-any-terminal-5bbn</link>
      <guid>https://forem.com/alfredz0x/emv-the-global-standard-that-makes-openpasskey-work-at-any-terminal-5bbn</guid>
      <description>&lt;p&gt;11 billion cards. 100+ million terminals. One standard.&lt;/p&gt;

&lt;p&gt;EMV (Europay, Mastercard, Visa) is the global standard for chip card payments. It's why your Australian Visa card works at a terminal in Tokyo. And it's why our card works at the same terminal Visa does.&lt;/p&gt;

&lt;h2&gt;
  
  
  What EMV Actually Standardizes
&lt;/h2&gt;

&lt;p&gt;EMV defines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Physical card dimensions&lt;/strong&gt; and chip placement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication protocol&lt;/strong&gt; between card and terminal (contact and contactless)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cryptographic authentication&lt;/strong&gt; (card proves it's genuine)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transaction flow&lt;/strong&gt; (authorization, clearing, settlement)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Application selection&lt;/strong&gt; (how the terminal picks which card app to use)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key insight: EMV doesn't require Visa or Mastercard. It's an open standard. Any card issuer with an IIN from ISO can build a card that speaks EMV.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Terminal Routing Works
&lt;/h2&gt;

&lt;p&gt;When you tap a card, the terminal:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reads the card's AID (Application Identifier)&lt;/li&gt;
&lt;li&gt;Matches it against the terminal's supported applications&lt;/li&gt;
&lt;li&gt;Routes the transaction to the appropriate network&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Visa's AID starts with A0000000031010. Mastercard's starts with A0000000041010.&lt;/p&gt;

&lt;p&gt;OpenPasskey has its own AID. When we're in an acquirer's routing table, their terminals recognize our card just like they recognize Visa.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Contactless (NFC) Part
&lt;/h2&gt;

&lt;p&gt;Modern EMV contactless uses ISO 14443 for NFC communication. When you tap:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Terminal emits RF field (13.56 MHz)&lt;/li&gt;
&lt;li&gt;Card's antenna harvests power from the field&lt;/li&gt;
&lt;li&gt;Card and terminal exchange APDUs (Application Protocol Data Units)&lt;/li&gt;
&lt;li&gt;Card signs transaction data&lt;/li&gt;
&lt;li&gt;Terminal receives signature and payment details&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This happens in under 500ms.&lt;/p&gt;

&lt;p&gt;Our Java Card applet implements this exact protocol. A terminal can't tell the difference between tapping our card and tapping a Visa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Is Our Moat
&lt;/h2&gt;

&lt;p&gt;EMV compatibility means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No new terminals needed&lt;/strong&gt; (merchants change nothing)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Familiar UX&lt;/strong&gt; (tap like you always do)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global potential&lt;/strong&gt; (EMV is used in 100+ countries)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Any acquirer can add us&lt;/strong&gt; in approximately one day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The payment industry has spent decades building EMV infrastructure. We're using that infrastructure with different rails underneath.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Rails
&lt;/h2&gt;

&lt;p&gt;All three of our payment methods speak EMV-compatible protocols:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Physical card&lt;/strong&gt; (Java Card NFC applet)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile phone&lt;/strong&gt; (Host Card Emulation, same protocol)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QR scan&lt;/strong&gt; (ERC-681 URI, for wallets without NFC)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All three settle through the same on-chain pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;3,200+ users, 20+ Sydney cafes&lt;/li&gt;
&lt;li&gt;45,509 transactions, AU$66K volume&lt;/li&gt;
&lt;li&gt;3 people, 10 months, zero external funding&lt;/li&gt;
&lt;li&gt;Blackbird Giants Cohort 11&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>payments</category>
      <category>hardware</category>
      <category>nfc</category>
      <category>fintech</category>
    </item>
    <item>
      <title>RIP-7212: The Precompile That Makes Card Payments On-Chain</title>
      <dc:creator>Alfred Zhang</dc:creator>
      <pubDate>Fri, 03 Apr 2026 07:56:55 +0000</pubDate>
      <link>https://forem.com/alfredz0x/rip-7212-the-precompile-that-makes-card-payments-on-chain-1j6l</link>
      <guid>https://forem.com/alfredz0x/rip-7212-the-precompile-that-makes-card-payments-on-chain-1j6l</guid>
      <description>&lt;p&gt;If you're building payment infrastructure on Ethereum L2s, RIP-7212 is the most important precompile you've never heard of.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;EMV payment cards (Visa, Mastercard, and now OpenPasskey) use P-256 (secp256r1) elliptic curve cryptography. Ethereum natively supports secp256k1 (a different curve). Verifying a P-256 signature in Solidity costs approximately 300,000 gas, making on-chain card payment verification economically impractical.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: RIP-7212
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md" rel="noopener noreferrer"&gt;RIP-7212&lt;/a&gt; adds a precompiled contract for P-256 signature verification at address &lt;code&gt;0x100&lt;/code&gt;. It reduces verification cost from ~300K gas to ~3,450 gas.&lt;/p&gt;

&lt;p&gt;This is deployed on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Base&lt;/strong&gt; (Coinbase's L2)&lt;/li&gt;
&lt;li&gt;Optimism&lt;/li&gt;
&lt;li&gt;Polygon&lt;/li&gt;
&lt;li&gt;Arbitrum&lt;/li&gt;
&lt;li&gt;And several other L2s&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why It Matters for Payments
&lt;/h2&gt;

&lt;p&gt;With RIP-7212, you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Verify EMV card signatures on-chain&lt;/strong&gt; at minimal cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build trustless payment settlement&lt;/strong&gt; without centralized processors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable card-to-blockchain bridges&lt;/strong&gt; that don't require trusted intermediaries&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How We Use It at OpenPasskey
&lt;/h2&gt;

&lt;p&gt;Our payment flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Card Tap → P-256 Signature → Base L2 → RIP-7212 Verify → ClearingVault → Merchant
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Customer taps their OpenPasskey card (Java Card with P-256 key pair)&lt;/li&gt;
&lt;li&gt;Card signs transaction data (amount, merchant, nonce)&lt;/li&gt;
&lt;li&gt;Signature submitted to Base L2&lt;/li&gt;
&lt;li&gt;Smart contract calls RIP-7212 precompile to verify (~3,450 gas, sub-cent)&lt;/li&gt;
&lt;li&gt;ClearingVault releases AUD stablecoins to merchant's CREATE2 receiver&lt;/li&gt;
&lt;li&gt;Merchant gets AUD in their bank account&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Total on-chain cost: fractions of a cent.&lt;br&gt;
Settlement time: seconds.&lt;br&gt;
Intermediary fees: zero.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Broader Implication
&lt;/h2&gt;

&lt;p&gt;There are &lt;strong&gt;11+ billion EMV cards&lt;/strong&gt; in circulation globally. All modern ones use P-256 or compatible curves. RIP-7212 means any of these cards could theoretically interact with on-chain settlement.&lt;/p&gt;

&lt;p&gt;We're proving this with physical cards in 20+ Sydney cafes. 3,200+ users. 45,509 transactions.&lt;/p&gt;
&lt;h2&gt;
  
  
  For Developers
&lt;/h2&gt;

&lt;p&gt;If you're building on Base or any L2 with RIP-7212:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Verify P-256 signature via precompile
function verifyP256(
    bytes32 messageHash,
    bytes32 r,
    bytes32 s,
    bytes32 x,
    bytes32 y
) internal view returns (bool) {
    (bool success, bytes memory result) = address(0x100).staticcall(
        abi.encode(messageHash, r, s, x, y)
    );
    return success &amp;amp;&amp;amp; abi.decode(result, (uint256)) == 1;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens up payment applications that were previously impossible on-chain.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://openpasskey.com" rel="noopener noreferrer"&gt;OpenPasskey&lt;/a&gt; | &lt;a href="https://twitter.com/OpenPasskey" rel="noopener noreferrer"&gt;@OpenPasskey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ethereum</category>
      <category>solidity</category>
      <category>blockchain</category>
      <category>payments</category>
    </item>
  </channel>
</rss>
