Haudi Crypto, Inc.
Openloop Pay is a mini wallet that makes stablecoins easy to use. You can check balances and send crypto assets. It runs as a browser extension on your desktop and as a web app on your smartphone.
Supported tokens and networks are EVM chains (Ethereum and EVM-compatible chains) and TRON. Alongside the built-in stablecoins (JPYC / USDC / USDT / TUSD / USDD), you can add other tokens on the EVM chains. See §13 “Specifications” for the full list.
Your private keys stay inside your Openloop hardware wallet (or the wallet you connect); Openloop Pay never stores or accesses them (non-custodial).
Openloop Pay is a companion wallet that holds no keys of its own. The wallet itself (your keys) lives in your Openloop device or the wallet you connect over WalletConnect; Openloop Pay only shows balances and relays transactions for signing. So, unlike wallets that keep an (encrypted) key in the browser, even if the web app or extension were compromised, there are no secrets inside to steal.
| Feature | Description |
|---|---|
| Wallet connection | Connect Openloop over USB / Bluetooth, or connect a supported wallet via WalletConnect |
| Balances | View your token balances and your gas (fee) assets |
| Manage tokens & networks | Choose which token × network to show and send; add and remove them |
| Sending | Enter a recipient and amount, then approve with the connected wallet |
| QR scanning | Read a payment-request QR code to pre-fill the send form |
| History | Review send history and export it as CSV |
| dApp integration (extension only) | Connect to dApps in your browser and approve requested signatures on your Openloop device |
Openloop Pay ships in two forms: a browser extension
(Chrome/Edge only) and a web app
(https://www.crypto.haudi.jp/openloop/pay/app/). Which
connection methods the web app can offer depends on the browser.
| Environment | USB (WebHID) | Bluetooth (BLE) | Safari-extension bridge | WalletConnect |
|---|---|---|---|---|
| Desktop Chrome / Edge | ✓ | – | – | ✓ |
| Desktop Firefox | – | – | – | ✓ |
| Desktop Safari (macOS) | – | – | ✓ (requires the macOS Openloop Connect) | ✓ |
| Android Chrome / Samsung Internet | – | ✓ | – | ✓ |
| Android Firefox | – | – | – | ✓ |
| iPhone / iPad Safari | – | – | ✓ (requires iOS Openloop Connect) | ✓ |
| iPhone / iPad Chrome / Firefox / Edge | – | – | – | ✓ |
Safari does not implement WebHID or WebBluetooth, so it cannot talk to an Openloop device directly. Enabling the Safari extension bundled with the Openloop Connect app bridges Safari to the Openloop device.
| Device | App to install | Path to the Openloop device |
|---|---|---|
| iPhone / iPad | iOS Openloop Connect | Bluetooth |
| Mac | macOS Openloop Connect | USB |
This manual only covers what Openloop Pay does. For the Openloop Connect app itself, see the Openloop Connect user manual.
The steps below are for iPhone / iPad.
Setup:
Important — open Openloop Pay in Safari itself, not from a Home Screen icon. If you use “Add to Home Screen”, iOS runs the web app in a standalone window that is isolated from Safari, and Safari extensions do not run inside it — so the Openloop Connect bridge is unavailable and Bluetooth appears greyed out. This is an iOS platform limitation and cannot be fixed by any Safari extension setting. Always open Openloop Pay from a normal Safari tab (
https://www.crypto.haudi.jp/openloop/pay/app/). (WalletConnect, §3.3, still works from a Home Screen icon because it does not need the extension.)
On a Mac the connection is over USB. With the Safari extension bundled in the macOS Openloop Connect enabled, Safari can use an Openloop device plugged in over USB (not Bluetooth). Note that on a Mac without the extension enabled, USB cannot be selected on the connect screen — use WalletConnect (QR code) instead (§3.3).
The iOS Openloop Connect app also works as a WalletConnect-compatible wallet (§3.3), independently of the Safari extension. WalletConnect works whether or not the Safari extension is enabled.
When you open the app, the “Connect a wallet” screen appears. Choose how to connect.
▲ Plug in only one Openloop. If two or more Openloop devices are connected over USB, the app cannot choose which one to use — so it may show the address and balances of a device you never picked (this can happen if, say, a second one is plugged in just to charge). Leave only the device you want to use plugged in, and unplug the rest.
The browser’s USB device chooser may not open inside the extension’s side panel. In that case, connect from a full tab. Once you’ve granted access, it reconnects without the chooser next time.
The name in the list depends on your environment.
Environment Chooser Example Android (Chrome) The browser’s own Bluetooth chooser Openloop (30:ED:A0:D4:BE:F6)iPhone / iPad (Safari) Openloop Pay’s own list Openloop-BEF6(for reference) Openloop Connect app The app’s own list Openloop-BEF6On Android the browser’s chooser is used, so the device name appears simply as
Openloop; when several are found the browser appends the Bluetooth address to tell them apart. On iPhone / iPad, Openloop Pay draws the list itself, so you see the sameOpenloop-BEF6form as in Openloop Connect.All of these are the same device. The last four characters (
BE:F6→BEF6in the example) correspond. Use this to tell them apart if you own more than one Openloop.
Right after connecting, the selected wallet may still be on the network it used last. If the network isn’t switched automatically when you send, set the network on the wallet’s side.
On macOS Safari you have to allow pop-ups. Safari blocks pop-up windows by default. When you pick Desktop (the Openloop Connect desktop app) from the WalletConnect list, Openloop Pay only opens the app after finishing a round trip to the relay server — and Safari treats a window opened that long after your click as a pop-up and blocks it, so nothing happens when you choose it. Open Safari’s Settings → Websites → Pop-up Windows and set crypto.haudi.jp to Allow. You do not need this if you connect to Openloop Connect on your phone by scanning the QR code, or if you use Chrome / Edge.
Once connected, the main screen shows:
You choose which tokens and networks appear under “Assets” in the next chapter, “Manage tokens & networks.” Gas native tokens appear automatically for the networks your assets are on, so you normally don’t need to select them separately.
Turn on Show testnets to add testnet tokens and networks to the list (their gas coins are shown too). This is useful for testing. When it’s off, testnets appear neither in balances nor in the lists. Leave it off for normal use.
This screen is where you choose which tokens — and on which networks — to show and send. Open it from the Manage tokens & networks link on the connect screen, or the manage button (coin icon) on the balances screen.
The screen is divided into sections. The basic rule is: built-in items (shipped with the app) can’t be removed; added items (ones you brought in) can. Alternating sections have a tinted background to keep them visually separate.
Each screen has a breadcrumb at the top (e.g. Home › Manage tokens & networks › Add a token) so you can see where you are. Tap any crumb to jump straight to that screen. Back goes up one level.
The network list also shows, dimmed, the networks where that token is available as a built-in token. You can see which of them are currently selected, but you can’t change them here — change those in the “Built-in tokens” section.
Networks this app has no RPC endpoint for can’t read balances or broadcast, so they aren’t listed. For a token or network that isn’t listed, use “Not found? Add manually” to enter a contract address or RPC by hand (at your own risk — shown as “unverified”).
Anything that takes an entry off your list asks first. Removing and deleting are treated as different things.
| Action | What happens | Confirmation title |
|---|---|---|
| Unchecking a box | Only the selection goes. The definition stays, so checking it again brings it back | Remove from your list |
| 🗑 on an added token | The definition itself is deleted. To use it again you must re-enter its address and decimals | Delete token |
| 🗑 on a network | The network and the tokens on it are deleted | Delete network |
Buttons at the bottom let you export / import your token and network settings (as a JSON file) — handy for moving your setup to another device. Importing shows a confirmation that it will overwrite your current settings, along with an integrity check.
Anything that could not be imported is listed with the
reason (no endpoint could be determined / it has no name and
currency symbol / its explorer URL does not start with
https:// / it matches an entry in Openloop’s own table, and
so on). Nothing is dropped silently.
You can save a recipient with a label of your choice. Next time, just pick it from the address book to fill in the recipient.
When you read a payment-request QR code, the send panel’s fields (token, recipient, amount) are filled in automatically. There are two ways to read it.
A printed payment link posted by a store can be read with your phone’s stock camera. It shows a link; tapping it opens Openloop Pay with the payment pre-filled.
A standard format (EIP-681) is used so printed paper QRs work. Split QR formats like BBQr are not used.
A single Openloop has multiple accounts. Use Switch account on the wallet card to change which account is shown and used for sending.
Your send records appear in the History on the main screen.
History is stored only on your device (browser). It is never sent to any external server.
The browser-extension build of Openloop Pay can connect directly to dApps (decentralized apps) on the web. Connection and signature requests from a dApp are relayed through Openloop Pay to your Openloop device, where you always review and approve the final action on-device.
The web app and the smartphone build do not integrate with dApps. To connect to dApps, install the Openloop Pay extension in your desktop browser.
You can check the list of sites currently allowed to see your wallet at any time.
Connections are per browser tab. Opening and connecting the same site in more than one tab creates a separate connection on its own row (in the example above,
app.uniswap.orgappears twice — as “Tab 1” and “Tab 3”). Closing a tab automatically ends that tab’s connection, and disconnecting is done per tab.
If a dApp requests an action (signing, switching accounts, …) while the Openloop Pay side panel is closed, a small hint popup appears. Press Open to open the side panel, then retry the action in the dApp.
Openloop Pay is built to help you send safely.
Openloop Pay supports tokens on EVM chains (Ethereum and EVM-compatible chains) and on TRON. The following five stablecoins ship built in and are ready to send and receive without any setup.
| Token | Supported mainnets |
|---|---|
| JPYC | Ethereum / Polygon / Avalanche C-Chain / Kaia (4 chains) |
| USDC | Ethereum / Polygon / Avalanche C-Chain / Base / Arbitrum One / OP Mainnet / TRON (7 chains; on the EVM chains this is Circle-issued native USDC) |
| USDT | Ethereum / Polygon / TRON (3 chains) |
| TUSD | TRON (1 chain) |
| USDD | TRON (1 chain) |
Testnet JPYC ships on Sepolia / Polygon Amoy / Avalanche Fuji / Kaia Kairos (4 chains — enable Show testnets, §4.1). On the TRON testnets (Shasta / Nile) a test tUSDT is provided.
TRON tokens cannot be added. The five built-in entries above (the TRON column) are the full set. The dictionary search and manual add described in §13.3 are for the EVM chains only.
| Type | Networks |
|---|---|
| Mainnets (8) | Ethereum / Polygon / Avalanche C-Chain / Base / Arbitrum One / OP Mainnet / Kaia / TRON |
| Testnets (3) | Sepolia / Polygon Amoy / Base Sepolia |
The TRON testnets (TRON Shasta / TRON Nile) are treated as added networks, the same as Avalanche Fuji. Selecting them in a built-in token’s network column enables them.
Each network ships with a public RPC endpoint (publicnode family) and a block-explorer URL.
The TronGrid endpoints for TRON ship with the app and cannot be changed.
This whole section is EVM-only. On TRON you can neither add tokens nor change the endpoint (§13.1, §13.2).
The browser-extension build talks to dApps over the following standards.
| Item | Supported |
|---|---|
| Provider API | EIP-1193 (the window.ethereum
interface) |
| Provider discovery | EIP-6963 (Multi Injected Provider Discovery — coexists with other wallets) |
| Chain ID | EIP-155 / CAIP-2 |
| RPC methods | eth_requestAccounts / eth_accounts /
eth_chainId / eth_sendTransaction
(EIP-1559 type-2 tx) / personal_sign /
eth_signTypedData_v3 / eth_signTypedData_v4
(EIP-712) / wallet_switchEthereumChain
(EIP-3326) / wallet_addEthereumChain
(EIP-3085) |
| Not supported | eth_signTypedData_v1 (legacy — dropped, no type info) /
eth_sign (blind-signing of an opaque hash — a strong red
warning is shown if requested) |
| Access grants | Granted and revoked per tab (the tab where a dApp is open) (§10) |
ethereum: URI
format (contract address / transfer function / chain ID /
amount). Printed paper QRs can be opened from your phone’s stock camera
(§7).| Item | Web app | Browser extension (Chrome / Edge) |
|---|---|---|
| Runs on | Desktop and smartphone | Desktop only |
| Openloop (USB) | Yes (WebHID-capable browser) | Yes (may need full-tab consent) |
| Openloop (Bluetooth) | Yes (supported smartphones) | No (blocked by extension permissions) |
| WalletConnect | Yes | Yes |
| dApp integration (EIP-6963 / EIP-1193) | No | Yes |
| Camera QR scan | Yes | Limited (may not work in the side panel) |
| Open from payment link | Yes | Yes |
| Storage for history / address book | In the browser | In the extension storage |
If you have any questions or trouble, please contact us.
Haudi Crypto, Inc. Email: support@crypto.haudi.jp
You can also open the version, links to each document, and the settings screen (payment sound, dApp connections) from the in-app info (ⓘ) button.
Related documents: Terms of Service / Privacy Policy / Licenses