Trust Wallet has ended support for NIM as of Sept 15. Withdraw your NIM and move to Nimiq Pay. Trust Wallet recovery phrases aren’t compatible with Nimiq Wallet, use Nimiq Pay instead.

Nimiq Pay's Source Code is Now Public

Nimiq Pay, our self-custodial payment app, is now open source under GPLv3. Anyone can read the code behind its Nimiq and EVM wallets and the host that runs Mini Apps.

byTeam Nimiq
Nimiq Pay's Source Code is Now Public

Over the past months, we have shared more details about where Nimiq stands and where it is going next. We have explained what changed inside the Foundation, elaborated on our renewed vision and the commitments that come with it, and opened the protocol technical roadmap to discussion in the Nimiq Forum. We made those commitments in the open, and this post follows through on one of them.

Building open source software is one of those commitments and one of Nimiq’s pillars. The Nimiq protocol and its reference implementations are already public, and we set out why this matters to us in Why Open Source Is Part of Nimiq’s DNA. Today, we double down on it, starting with Nimiq Pay.

Nimiq Pay is now open source. Its full source code is public on GitHub at github.com/nimiq/nimiq-pay-app under the GPLv3 license, so the app people use to pay with Nimiq now follows the same philosophy as the protocol underneath it.

What Nimiq Pay is

Nimiq Pay is a self-custodial mobile wallet for iOS and Android. It is built to make crypto payments feel easy and smooth, like contactless payments: you hold your own keys, and paying takes little effort.

With Nimiq Pay, you can currently:

  • Hold, send, and receive NIM and USDT, and enter amounts in crypto or in your local currency
  • Send USDT without holding any other token to pay network fees
  • Pay merchants by scanning a CryptoPayment.link QR code
  • Pay Bitcoin Lightning invoices with NIM or USDT, with the swap handled in the background
  • Open Mini Apps, third-party apps that run inside Nimiq Pay

If you are curious to know more about the integration of Bitcoin Lightning, how a Lightning payment settles from NIM is explained in this blog post.

Inside Nimiq Pay

Three parts of the app matter most for anyone reading the code: how it keeps custody with the user, how it works across two networks, and how it hosts Mini Apps.

Self-custody, enforced by the app

Keys stay on the device, and Nimiq never has access to user funds. The app is protected by a PIN or biometrics, and it stores local data in an encrypted database. Every action that moves funds, signs a message, or shares an account goes through a native confirmation screen.

Self-custody also stays out of the way until it matters. Recovery phrases and network details appear only when they are needed, such as during backup or recovery, so everyday payments stay simple.

Two networks in one app

Nimiq Pay is a Nimiq wallet, an EVM wallet, and a Bitcoin Lightning wallet in one. NIM moves on the Nimiq blockchain, where the app runs its own Nimiq client. USDT moves on Polygon. For Mini Apps, the app's Ethereum provider also reaches Ethereum, Arbitrum One, Optimism, Base, and BNB Smart Chain, with the same address on every chain.

A host for Mini Apps

Every Mini App is a web app that runs inside Nimiq Pay. The app injects two providers into it: a Nimiq provider, used through the Mini App SDK, and a standard Ethereum provider, window.ethereum. When a Mini App makes a request, the app validates it, shows a native confirmation where needed, and only then executes it.

Through these providers, Mini Apps can request payments (including Lightning payments), read NIM balances, and switch to fullscreen. The repository includes the provider injected into Mini Apps and a demo app so that builders can see exactly what their Mini App talks to. For more info and Mini Apps features, check our documentation.

Mini Apps and the ongoing building competition

As of now, Cycle 3 of the Mini Apps Competition is starting, running from October 14 to November 11. The competition invites builders to ship a Mini App over four weeks, and the Nimiq Community Council scores every submission.

Every submitted Mini App runs inside Nimiq Pay, and the app includes its own showcase of competition entries. With the code now public, builders can read the host their Mini Apps run in, not only the documentation that describes it. For a fuller introduction, see Mini Apps Framework, and start building with the Mini Apps documentation on the Developer Center.

What's next

Once the protocol technical roadmap is finalized, a public version will be added to the Nimiq website and announced with a changelog showing what moved and why.

In the coming weeks, we will share more about the flagship end-user app we have been designing and how it connects with Nimiq Pay. As we set out in Beyond the Crypto Label, we are focusing new product development on this one application while maintaining our existing core products.

Narrowing our own product work does not narrow the ecosystem. Our objective is to make it easier for others to build on Nimiq, and opening Nimiq Pay is part of that path: its code, the Mini Apps framework, and the Developer Center are open for anyone to read, learn from, and build on. We look forward to what you'll build with us in the future.

Pura Vida,

Team Nimiq