An app that wants a user to pay should not hold the user's keys. The clean answer is a wallet that other apps can call: hand it a request, let the user approve, get the result. Eoonia does this through deep links, and it is the mechanism behind every "pay with Eoonia" and "mint with Eoonia" button in the ecosystem.
The link
eoonia://tx?chain=empooriochain&call=<encoded call>&callback=<app url>
eoonia://sign?message=<challenge>&callback=<app url>
An Empoorio app builds a link describing what it wants — a native call, an EVM transaction, or a plain message to sign — and opens it. If Eoonia is installed, it opens on the request screen; the user sees a human-readable description, approves or rejects, and Eoonia returns to the calling app with the result. If Eoonia is not installed, the link falls back to the web (eoonia.com) where the user can install it.
What it already does
- Wallet linking in Empoorio Warehouse: the app sends a challenge, Eoonia signs it, the backend verifies the signature and binds the accounts. No key leaves the wallet.
- NFT passport minting in Warehouse: the app hands Eoonia a
pallet-dynamic-nftmint call for a real product; Eoonia signs and submits; the app receives the block hash. - The public-sale page on the official site uses the same handoff for wallet connection alongside browser wallets.
Payments
The payment request is the same shape: a balances or stablecoins transfer, or an escrow.lock, encoded by the app, approved in the wallet. What is not yet live is an Empoorio commerce app sending one at checkout — the apps settle in fiat today. The plumbing is exercised by the linking and minting flows; the checkout call is the next one to wire.
Two states, shown honestly
Eoonia reports the three states the chain distinguishes — submitted, included, finalized — and the calling app receives them in the callback. A merchant app should treat included as "payment seen" and finalized as "payment done"; on the testnet benchmark those were about 3.5 and 17 seconds respectively.
The Android lesson
Deep links are simple to describe and fiddly to ship. Two things bit during Eoonia's 2026 audit: the routing call that opens the request screen would not stay on an unrecognised route, and the stream that delivers incoming links is broadcast-only, so a link that launched the app cold was lost before any listener attached. Both were fixed in a shared routing mixin, and the fixes are now tested with the app launched cold, warm and from background — because a payment request that vanishes on cold start is not a payment mechanism.
Security
The wallet shows exactly what it will sign, decoded from chain metadata; a request it cannot decode is refused. Callbacks return results, never keys. And Eoonia is the reference implementation of the chain's extrinsic envelope — including the two custom signed extensions — so a request it approves is one the chain will accept.
Based on the Eoonia Wallet audit and integration matrix (September 2026) and the Warehouse feature inventory.


