Skip to content

In-Pay staking: staking NIM from inside Nimiq Pay

Last updated Written by the ImpactZero validator team

In short

Nimiq Pay lets you stake from the app itself, so you can delegate without opening the browser wallet. It is the same on chain staking contract and the same self custodial model, just a different interface. This guide covers what the mobile flow exposes, what it hides, and when to use the browser wallet instead.

What in-Pay staking actually means

Staking NIM is an on chain transaction signed by your own account. That sentence is the whole of it, and it is why the question "can I stake in Nimiq Pay" has a simple answer: yes, because Nimiq Pay holds an account and can sign for it.

So in-Pay staking is not a separate product, a pool, or a version of staking that only exists inside the app. It is the same delegation to the same protocol contract, initiated from a phone instead of a browser tab. A stake created that way can be topped up, moved or unstaked from wallet.nimiq.com afterwards, and the reverse, because neither app owns anything. The chain does.

How to stake NIM covers what staking is and what it commits you to. This page is only about the phone route: how it works underneath, what it guarantees, and where it is the wrong tool.

What is underneath it

Nimiq Pay is a host. Pages opened inside it are mini apps, and the app injects a wallet provider they can talk to. That provider is the staking route, and its shape is published rather than described: in @nimiq/mini-app-sdk version 0.1.0, which this site carries as a dependency, the provider exposes exactly ten wallet methods, and six of the ten are the staking lifecycle.

Provider method Staking transaction What it does
sendNewStakerTransaction Create staker First delegation, naming a validator address
sendStakeTransaction Add stake Tops up an existing stake, keeping the delegation
sendUpdateStakerTransaction Update staker Moves the delegation to a different validator
sendSetActiveStakeTransaction Set active stake Step one of unstaking. Takes the balance to leave active
sendRetireStakeTransaction Retire stake Step two, once the lock has passed
sendRemoveStakeTransaction Remove stake Step three, taking the whole retired balance out

Amounts on all of them are in luna, the smallest unit, at 100,000 luna to one NIM. That is the same convention the rest of the protocol uses and it is the single most common source of a figure that looks wrong by five decimal places.

The division of labour on this path is worth stating, because it is the real difference between the phone and the browser. The wallet does everything. It builds the transaction, shows it to you, signs it and broadcasts it. The page that asked never sees a key, never assembles transaction bytes and never needs a way onto the network of its own.

The approval, and what it guarantees

Every one of those calls surfaces as a dialog drawn by Nimiq Pay. The documentation puts it as a rule rather than a courtesy: mini apps run in an isolated WebView with no access to private keys, keys never leave the wallet, and every sensitive action requires explicit approval through native dialogs mini apps cannot bypass.

Read that from the staking side and it tells you what to check. A page can misdescribe anything in its own interface. It cannot change a character of what the wallet's dialog says. So on a staking approval the field that matters most is the validator address, because that is the one thing a dishonest page would want to differ between its own screen and yours. Amount second. If the two disagree, the dialog is the one telling the truth.

This is the same separation Keyguard enforces in a browser, where the developer documentation treats the requesting application as untrusted and Keyguard as the only fully trusted component. Nimiq Pay collapses those layers into one installed app and keeps the boundary at the same place. Nimiq Pay explained covers the custody model in full.

The session model: it already knows who you are

In a browser, a site that wants to stake for you has to ask which account, and Nimiq answers that with a popup you interact with. Inside Nimiq Pay there is nothing to ask. The account is on the device, the host can list it, and the first step of a browser flow simply does not exist.

That is a genuine convenience and it is worth naming the trade honestly. The step it removes is also the step where a browser user consciously chooses which of their addresses is about to act. On a phone that choice was made when the app was set up, so the thing to be deliberate about moves to the approval dialog instead.

Our own dialog is built to that model: opened inside the app it connects quietly, reads the account and goes straight to the amount, and if the host declines it falls back to an ordinary connect button rather than showing an error over a page somebody was only reading.

Everything the protocol enforces is unchanged

A different interface does not buy different rules. Whichever route you take:

  • The minimum is the same. 100 NIM is the protocol floor for creating a staker. An interface may ask for more, and Nimiq's own staking page did when we read it, so the floor you face is whichever is higher.
  • The timing is the same. Stake changes take effect at the next election block, and an epoch is 43,200 blocks, roughly 12 hours. A fresh delegation from a phone waits exactly as long as one from a desk.
  • Unstaking is still three steps. Deactivate, wait out the lock, retire, then withdraw the retired balance in full. There is no mobile shortcut, and an interface offering one would be promising something the chain refuses. How to unstake NIM walks it.
  • Changing validator still has a lock. Your NIM never leaves the staking contract, but the update staker transaction is only valid once the active balance is zero and the inactive balance has been released. Staking mistakes sets that out properly, because it is the rule most often described wrongly.
  • No network fee, either way. Staking transactions carry none. The only fee in staking is a validator's cut of what it distributes.

When to open the browser wallet instead

The phone is the better tool for acting on a decision. The browser is the better tool for making one, and for the account admin that has nothing to do with staking.

  • Choosing a validator properly. Comparing fees, elected status, payout policy and size is reading work, and it is miserable on a small screen. Our validators page compares the whole set from live chain data, and choosing a Nimiq validator is the method to run against it.
  • Backups. Creating or exporting one runs inside Keyguard, in the browser, so that the app which triggered it never receives your recovery words. Nimiq backups compared covers the three methods, and how to create a Nimiq wallet covers where each piece lives.
  • Account administration. Labelling addresses, adding new ones, and working through a long history. Nimiq's own staking page names the Nimiq Wallet as the place to stake, and it is the fuller interface generally.
  • A first delegation you want to take slowly. There is no prize for doing it on the smaller screen.

None of that argues against the phone. It is one account and one key, and most people who use Nimiq for a while end up using both.

What this page is not telling you

Two deliberate absences, both because we could not stand the claim up on 14 September 2026.

  • No screens, no button labels, no navigation. We describe the capability and the mechanism, not the interface. Nimiq's own Nimiq Pay page did not mention staking at all when we read it, the App Store listing for version 2.19.1 did not mention it either, and nimiq.com/staking names the Nimiq Wallet. There is no first party source we can cite for a particular screen, and mobile interfaces change faster than articles about them. Open the app and look.
  • Our own integration is our word. The description of the provider path above comes from the published SDK, which anyone can read, and from shipping against it, which nobody can audit, because this site's source is not public. Treat the second part as a first hand report rather than a citation. The part that is checkable either way is the outcome: a stake sent from a phone lands on the chain as an ordinary staking transaction, and you can find it in our block explorer or draw it in NimMap like any other.

Where to go next

If you have not made an account yet, start with how to create a Nimiq wallet, then make the backup before anything else. If the account exists and the question is what staking commits you to, that is how to stake NIM. If you are already staking and something looks wrong, the usual causes are in staking mistakes we see as operators. Everything else is on the Learn hub.

Nothing on this page is financial advice, we publish no price figures anywhere on this site, and nothing here promises a reward.

Questions people ask

Can you stake NIM inside Nimiq Pay?
Yes. The wallet provider Nimiq Pay injects exposes the whole staking lifecycle: create a staker, add stake, change delegation, set active stake, retire and remove. A page opened inside the app can ask for any of them, the wallet signs on the device, and the result is an ordinary staking transaction. We ship an integration that does exactly this, so the description here is first hand.
Is staking in Nimiq Pay different from staking in the Nimiq Wallet?
Not in any way the chain can see. Both produce the same transactions against the same staking contract, so a stake created on a phone can be topped up or unstaked from a browser later, and the other way round. What differs is the interface around it and where the signature happens. The protocol rules, the minimum and the waiting periods are identical.
Does Nimiq Pay hold my NIM while it is staked?
No. The NIM moves into the staking contract, which is part of the protocol rather than an account belonging to Nimiq, to the app or to your validator. Only your own address can deactivate, retire or withdraw it. Nimiq Pay is self custodial throughout: the key stays on the device and every signature is produced there.
What does the approval dialog show me?
It is drawn by Nimiq Pay rather than by whatever asked for the signature, which is the whole point of it. The documentation states that sensitive actions require explicit approval through native dialogs mini apps cannot bypass. On a staking call the field worth reading twice is the validator address, because that is the one a page could describe wrongly in its own interface and still not change in the dialog.
Why did the app not ask me to pick an account?
Because it already knows. Nimiq Pay holds the account on the device, so a page opened inside it can list the account rather than send you through an address chooser the way a browser has to. Our own dialog uses that: inside the app it connects quietly when it opens, and if the host declines it falls back to an ordinary connect button rather than an error.
When should I use the browser wallet instead?
For the jobs the phone is not built for. Comparing the full validator list before choosing, creating or exporting a backup, which runs inside Keyguard, working through a long transaction history, and anything where you want the fuller account administration surface. Nimiq points at the Nimiq Wallet for staking on its own staking page, and it is the more complete interface for a first delegation.
Are the fees different on a phone?
No. Nimiq staking transactions carry no network fee on either route, and our own integration builds every one of them with a fee of zero. The only fee anywhere in staking is the cut a validator may take from the rewards it distributes off chain, which is a policy set by the operator and has nothing to do with which app you signed in.

Sources

  • Nimiq Developer Center, Mini apps, mini apps as web applications running inside Nimiq Pay, the five step request lifecycle, an isolated WebView with no access to private keys, keys never leaving the wallet, and native confirmation dialogs mini apps cannot bypass, read 14 September 2026
  • @nimiq/mini-app-sdk 0.1.0, provider definitions, the ten wallet methods, of which six are the staking lifecycle: sendNewStakerTransaction, sendStakeTransaction, sendUpdateStakerTransaction, sendSetActiveStakeTransaction, sendRetireStakeTransaction and sendRemoveStakeTransaction, with values in Luna. Read from the package in this site's own dependencies on 14 September 2026
  • Nimiq, Nimiq Pay, the official product page, which described self custodial payments, loyalty and cash back integrations and marked Bluecode and BTC Lightning as coming soon, and did not mention staking at all when we read it on 14 September 2026
  • Nimiq Pay on the App Store, version 2.19.1, describing instant transactions with NIM and BTC Lightning, mini apps and the crypto acceptance map, with no mention of staking in the description or the version history we read on 14 September 2026
  • Nimiq, Staking, the official staking page, which names the Nimiq Wallet as the place to stake and says as little as 1000 NIM, read 14 September 2026
  • Nimiq Developer Center, Stakers, the staking transactions themselves, the 100 NIM protocol minimum, and the release rules that apply whichever interface sent them
  • Nimiq Developer Center, Hub concepts, the browser trust boundary this page compares the app against: requesting application untrusted, Hub semi trusted, Keyguard the only fully trusted component