Skip to navigation
DigitalOcean Referral Badge

Get $200 credit on DigitalOcean

Open extra topbar

Monero Wallet Adapter extension

Bitcoin and Altcoin Wallets Monero Wallet Adapter extension
Connect to a Monero wallet, or to any other wallet that is a fork of Monero.

This is a Wallet Adapter for Bitcoin and Altcoin Walles version 6.0.0 or later. Wallet adapters connect the plugin with various wallet APIs. Use this adapter to connect to full node Monero wallets (or to wallets for Monero forks).

features

  • Admins can
    • Connect to any number of monero full node wallets
      • Control the mixin and ring size parameters
      • Account indices are mapped to WP sites (if plugin is network-activated in a multisite installation)
    • View the max block height for the wallet
    • View the hot wallet balance
    • View the software version of the connected wallet
    • View error messages in case connection fails
  • Users can
    • Create new deposit addresses
  • Plugin’s cron jobs can
    • Perform withdrawals
      • Batch multiple withdrawals into a single transaction
      • Address + Payment ID tuples are merged into integrated address before sending
      • If withdrawal fails due to wallet being view only, the wallet is marked as locked for a few minutes
      • While the wallet is view-only, withdrawals are not attempted
    • Detect incoming deposits
      • Integrated addresses are decoded into Address and Payment ID, to match any known deposit addresses

installation

Installing the Monero wallet adapter in summary involves the following steps:

  1. Build Monero from source (cmon, don’t use pre-built binaries, that’s super lame)
  2. Run monerod, the blockchain daemon
  3. Create a wallet file for your site
  4. Run monero-wallet-rpc to expose the wallet via Monero’s RPC API
  5. Install this wallet adapter on your WordPress
  6. Define a new wallet in Bitcoin and Altcoin Wallets and connect to your RPC API
  7. Define a Monero currency and attach it to your wallet.

You can do this for Monero, or for any other currency that is a Monero fork.

During Monero installation, you will be asked if you want to enable Monero mining.

WARNING: If you are on a shared host or VPS slice, don’t enable mining, because this is likely not allowed by your hosting provider.

What follows is step-by-step instructions:

Installing Monero

1 Login using ssh to a Linux server that you control.

TIP: Check the requirements for running a full node against your server.

2 Install the required dependencies. If you’re on a Debian-based distro, you would do the following, according to the Monero readme file:

sudo apt update && sudo apt install build-essential cmake pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev ccache doxygen graphviz

3 Download Monero from source:

git clone --recursive https://github.com/monero-project/monero && cd monero

4 Do a git tag to see which version is the latest, then checkout that version, e.g.:

git checkout v0.17.3.0

5 Run make, or make -j <NUMBER OF THREADS>. For example, on a quadcore CPU, you would do:

make -j 4

6 Wait until the build finishes. The binaries will be in build/release/bin. You can install these to your system by adding PATH="$PATH:$HOME/monero/build/release/bin" to .profile

7 We need to start the monerod server. For example:

monerod --rpc-bind-port 18081 --rpc-login monero_daemon_user:monero_daemon_pass --no-zmq --non-interactive

You can use a different port if you want. You should change the username/password in the example above.

The blockchain will take a long time to sync. You can continue to perform the next steps immediately, but the wallet will only be able to transact once it syncs.

TIP: You should probably install monerod as a service. This will ensure that the daemon is always running, even after a crash or reboot. See: https://github.com/monero-project/monero/issues/3777

8 Now you can create a wallet file. For example:

monero-wallet-cli --daemon-login monero_daemon_user:monero_daemon_pass --generate-new-wallet /path/to/monero/wallet

If you are using an existing wallet file (not recommended), you can do the following:

monero-wallet-cli --daemon-login monero_daemon_user:monero_daemon_pass --wallet-file /path/to/monero/wallet

Use the same username and password as before, in step 7.

(You should change the wallet file name from /path/to/monero/wallet to something else.)

9 Follow the console instructions to generate the wallet. Save the seed somewhere safe, away from your server.

10 Start a wallet and connect it to the daemon. For example:

monero-wallet-rpc --rpc-login monero_rpc_user:monero_rpc_pass --rpc-bind-port 18082 --wallet-file /path/to/monero/wallet --password wallet_pass --daemon-login monero_daemon_user:monero_daemon_pass --daemon-address=127.0.0.1:18081

Note that the RPC user is different from the daemon user. The daemon user/pass is what monero-wallet-rpc uses to login to monerod. The RPC user/pass is what the WordPress plugin will later use to login to monero-wallet-rpc.

Change wallet_pass with the wallet password you chose when creating the wallet in step 8.

TIP: If you are installing the wallet on a machine other than your WordPress server, then see here.

Installing the wallet adapter

11 Log in to dashed-slug.net using your account.

TIP: You do not need to pay for a premium account to download wallet adapters. They are available with a free subscription to the site.)

12 Go to https://www.dashed-slug.net/bitcoin-altcoin-wallets-wordpress-plugin/monero-coin-adapter-extension

13 Download the latest version of this wallet adapter extension.

14 Login to your WordPress installation as an admin.

15 Go to Plugins.

16 Click on Add New.

17 Click on Upload Plugin.

18 Click on Choose file.

19 Select the zip file that you downloaded.

20 Click on Activate plugin.

Connecting to your wallet

21 Go to Wallets.

22 Click Add New.

23 Give a title to your new Wallet. Let’s call it Monero wallet.

24 At the Wallet Adapter dropdown, pick DSWallets\Monero_Like_Wallet_Adapter. Use this adapter when connecting to Monero, or Monero forks.

20 Hit Publish to save the Wallet. The settings that are specific to the Wallet Adapter you chose will appear.

21 Check the Wallet Enabled box.

22 Enter the IP address of the machine running the wallet. Set to 127.0.0.1 if you are running the wallet on the same machine as WordPress. If you want to enter an IPv6 address, enclose it in square brackets e.g.: [0:0:0:0:0:0:0:1].

23 Enter the port number for the wallet’s RPC API. In our example, this is 18082 (the port where monero-wallet-rpc listens to).

24 Enter the RPC username and password. In our example, these are monero_rpc_user and monero_rpc_pass.

25 Hit Publish, then check to see the connection status in the metabox on the side of the screen.

Defining the currency

26 Go to Curencies.

22 Click Add New.

23 Give a title to your new Currency. Here we’ll call it Monero.

24 Enter the currency’s ticker symbol. For Monero, this is XMR.

25 Choose the wallet you just created from the dropdown.

26 Set the decimal places to 12 for Monero. Unlike Bitcoin which uses 8 decimals, Monero and many of its forks use 12 decimals.

27 Click the Update button.

28 Set the withdrawal fee to something that is more than what you’d typically pay to miners for a new transaction.

29 Set the CoinGecko ID to Monero. This will help the plugin retrieve exchange rate data for this currency.

30 Optionally set the block explorer link for transactions. For example, you can use:

https://blockchair.com/monero/transaction/%s

Note the use of %s to signify where the TXID goes in the URL.

There is no link for addresses since these are private, so leave that empty.

31 Hit the Update button again to save the changes.

32 Check that the Currency’s hot wallet balance is 0, or that it matches the wallet balance in your actual wallet.

33 Wait until the blockchain and wallet fully sync, then test a deposit and a withdrawal.

That’s it!

downloads

This is a free plugin extension available to all subscribers.

  • If you are running Bitcoin and Altcoin Wallets version 6.0.0 or later, use at least version 2.0.0 of this extension.
  • If you are running a Bitcoin and Altcoin Wallets version before 6.0.0, choose a version of this extension up to 1.1.4.

Subscribe for free and get access to all the wallet adapters.

documentation

As of Bitcoin and Altcoin Wallets version 6.0.0, the documentation can be accessed from the WordPress admin screens. Look for Wallets Admin Docs in the Admin menu.

Note that the documentation is only shown to administrators (users with the manage_wallets capability).

Previous versions of the plugin and its extensions had documentation in the form of an accompanying PDF file. This has now been replaced with markdown files placed in the source code directories of each component.

support

Please use the appropriate support forum:

You are welcome to send in any problems, questions, suggestions, thoughts, etc.

For all other communication, such as questions and issues regarding membership, you can email me.

Monero Wallet Adapter extension

Updated on 2023-08-24T11:36:58+00:00, by alexg.