PolkaTap: NFC Tap-and-Pay for Polkadot Wallets

Project Overview

PolkaTap is an Android app that enables NFC tap-and-pay for Polkadot wallets, using the Polkadot SDK for secure on-chain transactions without banks or third-party fees. It's a simple, lightweight prototype demonstrating decentralized payments in action.

Inspiration

As a beta tester for Polkadot Pay, I was frustrated by the lack of NFC support—scanners broke, pins failed, and partnerships with Apple/Google meant 20% fees. I wanted to build a native solution for adults to pay with DOT seamlessly, proving Polkadot can rival centralized systems without compromises.

How We Built It

  • Frontend: Kotlin on Android with NFCAdapter for tag reading/writing, integrating Polkadot SDK for transaction signing (e.g., api.tx.balances.transfer on Westend testnet).
  • Backend: Ktor server on Hetzner as a mock POS (Dockerized, 128MB RAM), verifying transactions via Polkadot.js API.
  • Tech Stack: Polkadot SDK, Kotlin Coroutines for async RPC calls, Semaphore for rate-limiting (5 concurrent taps).

What I Learned

  • Kotlin's null-safety and coroutines make blockchain apps efficient—e.g., suspending on I/O for 5k taps without thread bloat.
  • NFC is straightforward with Android's NdefMessage, but real-world edge cases (e.g., tag conflicts) require robust error handling.
  • Polkadot SDK's XCM for cross-chain payments is powerful but needs careful gas estimation for testnet.

Challenges Faced

  • Syntax errors in Kotlin DSL for HTML mocked POS UI—fixed by simplifying to p tags (no ul/div nesting).
  • Docker volume bloat on Hetzner—pruned with docker system prune --volumes, dropping usage from 79% to 60%.
  • Secure cookie timeouts in n8n for monitoring—resolved with Nginx WebSocket headers.

This hackathon pushed me to iterate fast—PolkaTap isn't just a demo; it's a call for open NFC in crypto. Let's tap into Polkadot's future! 🚀iration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for PolkaTap

Built With

  • kotlin
Share this project:

Updates

posted an update

Recent Updates and Milestones

Development is fast-paced, with daily X updates from @DazeOfTheWolf since mid-October 2025:Oct 13: Initial repo live; NFC reading wallet addresses on emulator, mock tx toasts.

  • Oct 14: Real-device tests (Samsung S23+); basic tx mocks.
  • Oct 15: Added shielded tx mocks with Kusama Shield toggle.
  • Oct 16: Outreach to Square for PoS collab.
  • Oct 19: Full testnet live on Kusama; NFC tap-to-send with DAO skim.
  • Oct 22: Privacy-by-default emphasis in replies.
  • Oct 24: Kotlin LIVE build; JAM off-chain stubs for hackathons (aiming 65% win odds on 10M DOT pool).
  • Oct 25: Repo to standalone GitLab; NFC → Shield mix → ghost payment flow diagrammed.
  • Oct 26: Edge-case fixes from Polkadot App Pay beta.
  • Oct 27: Treasury proposal dropped; JAM Light-Node mocks for ZK on-device.
  • Oct 28: NFC tap mocks JAM proofs; shielded sends with treasury skim; eyes glow green on success. Proposal seeks seconds for 100K KSM.

Repo migrations (e.g., to https://gitlab.com/dwulf/dazeofthewolf-polkatap) and APKs are build-ready in Gitpod. Videos show glowing UI animations during taps.

Log in or sign up for Devpost to join the conversation.

posted an update

PolkaTap NFC milestone:

NFC tap-and-pay working on emulator! Read wallet address, mock tx toast—shielded with Kusama Shield integration next. Time for polish and branding. Who's in to help support and build this?

PolkadotBuilderParty #NFC #Web3

Repo:

Log in or sign up for Devpost to join the conversation.