![Bitcoin and Altcoin Wallets - WordPress plugin by dashed-slug.net](https://www.dashed-slug.net/wp-content/uploads/2022/07/wallets.png)
disclaimers
By using this free plugin, you accept all responsibility for storing and handling user funds.
Under no circumstances is dashed-slug.net or any of its affiliates responsible for any damages incurred by the use of this plugin.
By continuing to use the plugin, you indicate that you have understood and agreed to this disclaimer.
features
- Admins can create and edit the following custom post types: Wallet, Currency, Address, Transaction.
- Can create/edit one or several Wallets:
- Edit the wallet name.
- Enable/disable wallet.
- Assign wallet to a wallet adapter depending on the wallet type.
- Edit wallet adapter settings (e.g. Authentication, IP, Port, etc).
- Quickly view the connection status of each wallet.
- Quickly view any other relevant data, depending on the wallet adapter.
- Can create/edit Currencies:
- Set the name, icon, number of decimals, and ticker symbol
- Set the preferred display of amounts (as an
sprintf
pattern) - Set withdrawal fees
- Set fees for internal transfers between users.
- Set the exchange rates of a currency, either automatically or manually:
- With a CoinGecko currency ID, so that the rates are always updated
- With static exchange rate values, useful for custom currencies.
- Set links to block explorers. These are used when addresses/transactions are displayed. Some links to common currencies are provided.
- Set minimum/maximum limits for withdrawals.
- Can also set limits per WordPress user role.
- Group currencies into tags using a special Currencies taxonomy.
- Quickly navigate from a currency to a list of associated Addresses/Transactions
- The currencies can represent cryptocurrencies, fiat currencies, or other custom currencies that are internal to the site, like credits.
- Once there exist transactions associated with a currency, its “Decimals” field becomes uneditable. This is done to prevent serious errors in interpreting integer amounts stored on the DB.
- Can create/edit Addresses:
- Can set a short label
- Are assigned to a user
- Can group Addresses into tags using a special Addresses taxonomy.
- For deposits/withdrawals:
- Can edit the address string
- Depending on wallet adapter, may display the extra field, appropriately named depending on the wallet adapter (Payment ID, Destination Tag, etc.)
- For fiat deposits/withdrawals:
- Can edit user mail address, bank mail address, etc.
- Can create/edit Transactions:
- Edit a short title, used as the transaction comment
- Change the transaction status
- Assign to a user
- Assign to a currency
- Edit the transacted amount and fees paid
- For deposits/withdrawals
- Edit the address that this transaction is associated with
- For internal transfers
- Assign a counterpart transaction (for debit/credit pairs)
- Group transactions into tags using a special Transactions taxonomy.
- Can modify the frontend UIs
- Using the Customizer.
- Using WordPress filters to modify the UI texts.
- Using WordPress actions to add header / footer markup to UIs.
- By overriding the built-in templates in a theme or child theme.
- Can use a cold storage solution
- Monitor percentage of funds on hot wallet vs total user balances
- Transfer funds to and from cold storage
- Can create/edit one or several Wallets:
- Admins can view the Bitcoin and Altcoin Wallets panel in the dashboard
- Statistics on wallets, and recent transactions and addresses.
- Tag cloud for transactions taxonomy.
- Debug information on WordPress, the host system, and the plugin.
- User profiles displays wallet information.
- Link to all user addresses.
- Link to all user transactions.
- Summary of user’s total and available balances, per currency.
- User’s API key for the deprecated JSON-API
- Admins can view this information for all users, not just their self.
- Users can view info about their crypto and perform transactions on the site’s frontend:
- Deposit cryptocurrencies
- Users can find their deposit addresses using the UI of the
[wallets_deposit]
shortcode, or create a new deposit address. - Users are notified by email about their deposit status.
- These emails are HTML/PHP templates that you can override in your theme or child theme.
- Users can find their deposit addresses using the UI of the
- Withdraw cryptocurrencies
- Users can request to withdraw their cryptocurrencies using the UI of the
[wallets_withdraw]
shortcode.- Subject to capability restriction.
- Users can approve withdrawal via link in their email if enabled by admin.
- These emails are HTML/PHP templates that you can override in your theme or child theme.
- Users are notified by email about their withdrawal status.
- These emails are HTML/PHP templates that you can override in your theme or child theme.
- Users can request to withdraw their cryptocurrencies using the UI of the
- Deposit fiat currencies
- Users can find their bank deposit details using the UI of the
[wallets_fiat_deposit]
shortcode.- Subject to capability restriction.
- Admins can process bank transactions manually, via Tools → Fiat Deposits.
- Users are notified by email about their deposit status.
- These emails are HTML/PHP templates that you can override in your theme or child theme.
- Users can find their bank deposit details using the UI of the
- Withdraw fiat currencies
- Users can request to withdraw their fiat currencies to a bank account, using the UI of the
[wallets_fiat_withdraw]
shortcode.- Subject to capability restriction.
- Users are notified by email about their withdrawal status.
- These emails are HTML/PHP templates that you can override in your theme or child theme.
- Users can request to withdraw their fiat currencies to a bank account, using the UI of the
- Admins can process bank withdrawals manually, via Tools → Fiat Withdrawals.
- Transfer funds to other users
- Users can request to transfer funds of any currency they hold to another user.
- Subject to capability restriction.
- Users can approve withdrawal via link in their email if enabled by admin
- These emails are HTML/PHP templates that you can override in your theme or child theme
- Users can request to transfer funds of any currency they hold to another user.
- View balances
- Users can check their balances using the
[wallets_balance]
shortcode.- All amounts are also shown in equivalent amounts in one or more well-known currencies, e.g.: USD, EUR, BTC, ETH, etc.
- User can click on this amount to rotate between well-known currencies
- All amounts are also shown in equivalent amounts in one or more well-known currencies, e.g.: USD, EUR, BTC, ETH, etc.
- Users can check the total account value using the
[wallets_account_value]
shortcode.
- Users can check their balances using the
- View transactions
- Users can view their past or pending transactions for a particular currency.
- Subject to capability restriction.
- Transactions can be shown tabulated and paginated using the
[wallets_transactions]
shortcode.- The admin can use atttibutes to choose the rows per page.
- The admin can use atttibutes to choose which columns are shown.
- The transaction rows are color-coded based on their status.
- The admin can use attributes to filter the displayed transactions by category (Deposit, Withdraw Move), tags (
wallets_txs_tags
taxonomy), currency, or other user.
- The admin can choose to have the rows rendered without HTML table using the
[wallets_transactions template="rows"]
shortcode.
- View exchange rates
- Users can check the exchange rates of currencies using the
[wallets_rates]
shortcode. - Exchange rates are shown for the currencies against any one of the CoinGecko “VS Currencies”.
- The admin can use attributes to specify the number of displayed decimals in exchange rates.
- The user can click on the exchange rates to rotate the “VS Currencies”.
- Users can check the exchange rates of currencies using the
- View wallet statuses
- Users can check whether the wallet is online for each of the available currencies using the
[wallets_status]
shortcode.
- Users can check whether the wallet is online for each of the available currencies using the
- Deposit cryptocurrencies
installation
- If you are migrating from wallets 5.x, see Migrating from 5.x.
- If you are performing a new installation, continue reading here:
Before you begin installation, familiarize yourself with the available wallet adapter extensions. Decide which ones you will use.
1 Go to Plugins.
2 Click on Add New.
3 Search for Bitcoin and Altcoin Wallets.
4 Click Install Now.
5 Click Activate.
Install a Bitcoin core wallet
With the next steps we install a Bitcoin core wallet. This will also work with other similar wallets, e.g. Litecoin core, Dogecoin core, etc. Any wallets with a Bitcoin-like JSON-RPC API will work.
If you are not interested in installing any Bitcoin or Bitcoin-compatible full node wallets, skip to step 53.
6 Install a Bitcoin core full node on a (Linux) server that your WordPress machine can access. For installation instructions refer to bitcoin.org.
7 Optionally, make your wallet run as a service on your server. For example, here’s how I do this using systemd
. First, I create a file /etc/systemd/system/bitcoin.service
.
8 In that file, I add the following text:
[Unit]
Description=Bitcoin wallet service
After=network.target
StartLimitBurst=5
StartLimitIntervalSec=10
[Service]
Type=simple
Restart=always
RestartSec=1
User=alexg
ExecStart=/usr/local/bin/bitcoind
[Install]
WantedBy=multi-user.target
9 Change alexg
to your user name. (Unsure which user you are? On the Linux shell, type whoami
.)
10 Check to see that the path to the Bitcoin binary is correct for your server. Unsure where the Bitcoin binary is? On the Linux shell, type which bitcoind
.
11 Save your file.
12 Enter systemctl start bitcoin
to start the Bitcoin service.
13 Enter systemctl status bitcoin
to check that your bitcoin service is active. (Press q
to exit the status view.)
14 Enter systemctl enable bitcoin
to make the service start when your server reboots.
15 Out of scope for this guide, but you should think how you will keep your server software updated, how to back up the wallets file regularly, how to harden the OS security, etc.
16 Go to Wallets.
17 Click Add New.
18 Give a title to your new Wallet. Let’s call it Bitcoin core wallet.
19 At the Wallet Adapter dropdown, pick DSWallets\Bitcoin_Core_Like_Wallet_Adapter
. Use this adapter when connecting to Bitcoin core or similar wallets, e.g. Litecoin core, Dogecoin core, etc.
TIP: To add more Wallet Adapers, install wallet adapter extensions. These are available free of charge on dashed-slug.net.
20 Hit Publish to save the Wallet. The settings that are specific to the Wallet Adapter you chose will appear on your screen.
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 that you plan on using for the wallet’s RPC API. For Bitcoin, the default is 8332
(or 18332
for testnet). Other wallets use different ports by default.
24 Choose a username that you want to use for the wallet’s JSON-RPC API. For our example, we’ll use rpcuser
.
25 Choose a password that you want to use for the wallet’s JSON-RPC API. For our example, we’ll use rpcpass
. You should use a password that is hard to guess.
26 If your wallet has been encrypted with a passphrase, enter it too. This will let the plugin create transactions. Without it, the Wallet Adapter will not process withdrawals.
27 Hit Publish to save your settings. Note the Recommended .conf file settings on the right hand of the screen.
28 Edit the bitcoin.conf
file. If you are unsure where the file is, see here.
29 Enter the following configuration lines:
server=1
rpcallowip=127.0.0.1/8
rpcport=8332
30 If the Bitcoin wallet runs on a different machine to your WordPress server, replace the IP address on the rpcallowip
line. Note that the address is in CIDR notation (You must add a netmask, which is usually /8
, /16
, or /24
depending on whether your server is on a Class A, Class B, or Class C network).
31 Add the rpcauth
line from the Recommended .conf file settings (see step 20). This value is a salted hash of the JSON-RPC API username and password you provided above.
32 Save your bitcoin.conf
file.
33 Restart the bitcoin server, with systemctl restart bitcoin
for the configuration changes to take effect.
34 Go to Wallets. Check the Connection status / version column next to your Bitcoin core wallet. If connection was successful, this will read Version X ready .
35 Check the Block height to see if your wallet is synced. Compare the block height you see with one from a public block explorer. If your wallet is not synced, it will not function properly.
36 Go to Currencies.
37 Click Add New. We are going to create a Bitcoin currency and link it to our wallet.
38 Leave the title blank, as it will be autofilled from CoinGecko. In the CoinGecko ID field below, type bitcoin
. Notice the autocomplete feature.
39 In the Wallet dropdown, select the Bitcoin core wallet that you just created. This will link this currency with the wallet.
40 No need to enter the ticker symbol BTC
, as it will be filled in from CoinGecko.
41 Enter 8
for the Number of decimal places. This is important as it determines how amounts are saved as integers and interpreted as decimal values.
42 Enter %01.8f
for Display pattern.
43 Hit Update. Once the number of decimals is set, you can continue to set the remaining currency settings. The currency title should now be Bitcoin
and the ticker symbol should be BTC
. These values are retrieved from CoinGecko.
44 Optionally, you can set a Bitcoin logo icon as the Currency’s Featured Image. This should be a square logo representing the currency. For Bitcoin, you would enter the Bitcoin logo here. However, since you’ve set the CoinGecko ID bitcoin
, the plugin’s cron job will soon download and apply the Bitcoin logo to this currency. This may take a few minutes.
45 In Deposit fee, enter 0
.
46 In Internal transfer (move) fee enter any value. For example, to charge 10 Satoshis on each internal transfer, you would enter: 0.00000010
.
47 In Withdrawal fee enter a value. This value must be larger than the cost of a simple transaction. For example, to charge 100k Satoshis per withdrawal, you would enter: 0.00100000
.
48 Hit Update once more to save the changes to the Bitcoin currency.
49 Go to Currencies again. Check to see that the currency is correctly linked to the wallet. If the hot wallet has any balance on it, this will be shown next to the currency.
Next we are going to add a walletnotify
and a blocknotify
config to our bitcoin.conf
file. This will cause the wallet to call the plugin’s WP-REST API and notify about any new transactions or blocks. The adapter will try to discover transactions even without this, but if you set up the notify API correctly, incoming deposits will appear faster on the plugin. The commands are curl
commands that pass the TXID or block hash to the plugin, along with the Currency ID. (This is why you must copy these configs only after you link the Wallet with the Currency.)
If you are not interested in setting up the notify API, you can skip to step 53.
50 Go back to the Bitcoin core wallet for this currency. You can click on it on from the Currency screen.
51 From Recommended .conf file settings, copy the two lines, “walletnotify for Bitcoin” and “blocknotify for Bitcoin”, into your bitcoin.conf
.
52 Restart your Bitcoin wallet with systemctl restart bitcoin
. Now the plugin will be notified about new transactions and blocks. This will make incoming deposits go faster.
Define fiat currencies for use with manual bank wire transfers
Next we are going to have the plugin auto-create all the known fiat currencies. The pugin will use the remote service fixer.io, which provides exchange rate data for all fiat currencies. The plugin will first create the currencies, then keep their exchange rates data updated every hour.
If you are not interested in defining any fiat currencies in the plugin, skip to step 69.
53 Go to fixer.io and signup for a free account. You will get an API key for the service.
54 Go to Settings → Bitcoin and Altcoin Wallets → Fiat currencies.
55 Enter your fixer.io API key and hit Save Changes. The plugin will start retrieving currency data and create fiat currency entries on the cron job. This will take several minutes. If your website does not have any traffic, you will need to trigger the cron jobs manually.
56 Go to Wallets.
57 Click Add New. We will create a virtual wallet that will let admins handle user Fiat deposits/withdrawals manually.
58 Give a title to your new Wallet. Let’s call it “Fiat Bank Accounts”.
59 At the Wallet Adapter dropdown, pick DSWallets\Bank_Fiat_Adapter
. Use this adapter for Fiat currencies. The adapter will let you enter bank details.
60 Check the Wallet Enabled box.
61 Hit Publish to save your changes.
62 Go to a Fiat currency that you would like to use, e.g. go to Currencies → United States Dollar → Edit.
63 At the Wallet dropdown, pick the Wallet you just created, i.e. “Fiat Bank Accounts”.
64 Hit Update to link the Fiat currency with the Fiat Bank Accounts wallet.
65 Optionally, set a Featured Image for this currency. This should be a square logo representing the currency.
66 Hit Update again to save the remaining changes to your currency.
We will now enter some bank details, so we can process deposits / withdrawals on behalf of users, with bank wire transfers.
For more details on how this works, see Tools → Fiat deposits and Tools → Fiat Withdrawals.
If you are not interested in processing bank wire transfers, skip to step 69.
67 Go back to the Fiat Bank Accounts wallet. You can use the link on the right hand of the screen, in the metabox titled Wallet.
68 For each Fiat currency that you have linked to this wallet, you will get a few input fields. Use these fields to specify the details of the bank account that you will use to process deposits.
Review the most important plugin settings
We will now configure some important plugin settings. You can review the remaining settings later.
69 Go to Settings → Bitcoin and Altcoin Wallets → Exchange rates.
70 Study the informatin on the screen. Choose some VS currencies that you think your users are familiar with. The plugin will have to download data repeatedly for each cryptocurrency against all the VS currencies. So, don’t select all of them, unless you need them. After you select some currencies, hit Save Changes.
71 Go to Settings → Bitcoin and Altcoin Wallets → Notifications. Decide whether you want the user to have to confirm by email any outgoing Withdrawals, and Internal Transfers. This is an extra security feature that is enabled by default only for withdrawals.
72 Go to Settings → Bitcoin and Altcoin Wallets → Capabilities, to configure access control for the plugin. Review the General Capabilities set against each of your User roles. Only Administrators should have manage_wallets
, as this gives complete access to the plugin. User roles who should have access to wallets must have has_wallets
at a minimum. Give the remaining capabilities to your user roles as needed.
73 Only if you have purchased Premium membership: Go to Settings → Bitcoin and Altcoin Wallets → Updates and enter your Activation code. This will enable any installed extensions to retrieve updates from the dashed-slug.net update server.
Use the Wallet Shortcodes
74 Create a new page: Go to Pages → Add New.
75 In the page, add a few wallet shortcodes. If unsure which ones to use, enter the following ones for now:
– [wallets_balance]
– [wallets_deposit]
– [wallets_withdraw]
– [wallets_move]
– [wallets_transactions]
– [wallets_status]
– [wallets_rates]
76 Publish/Update your page.
77 Visit the page in the Frontend. Check that you see the Frontend UIs.
78 Optionally, visit the Customizer. Navigate to Customizer → Bitcoin and Altcoin Wallets. Fiddle with the settings to modify the appearance of the UIs.
Installing more Extensions
That’s it! If everything was done correctly, you have a basic installation up and running, with a wallet or two connected and ready to accept deposits.
You should test deposits and withdrawals before publishing your site.
If you encountered any issues during the installation, check the Troubleshooting section in the documentation, or contact me.
You are now ready to install more App extensions or Wallet adapters. Refer to the documentation of these extensions for installation instructions!
TIP: As you install more extensions, the documentation for these extensions will be added to the Wallets Admin Docs pages.
Migrating from 5.x
Earlier versions of wallets saved transactions and addresses in custom MySQL tables.
With version 6.0.0
of Bitcoin and Altcoin Wallets, all data is saved on custom post types. This means that the plugin must migrate this data into new posts:
- You must create new Wallets. Wallet settings will not be migrated from 5.x.
- You should create some currencies. The migration tool will help you find out which currencies need to be defined. The migration process will even try to guess Currency settings and create currencies for you, but it does this by guessing the currency from the ticker symbol. This is not ideal and errors can occur. You should create all migrated currencies manually before starting migration.
- Address posts will be created from data in the
wp_wallets_adds
table. - Transactions posts must be created from data in the
wp_wallets_txs
table. - You must link Currencies to wallets manually.
WARNING: You must not use any theme that carries its own copy of wallet Templates. This is because the old wallet templates are not compatible with the new ones. If your theme or child theme has a
templates/wallets
directory, delete or rename the directory!
What follows is full step-by-step instructions on migrating a Bitcoin and Altcoin Wallets installation.
The plan is a three step process:
- first enable and configure the parent plugin, and assign currencies to Bitcoin-like wallets
- then enable and configure the wallet adapters, and assign currencies to other wallets
- finally enable and configure the app extensions
Upgrade the plugin to version 6.0.0
0 Backup your website’s DB before migration, if possible! You can use phpMyAdmin
or any other tool you are familiar with.
1 Deactivate all dashed-slug plugins.
2 Update Bitcoin and Altcoin Wallets to its latest version 6.0.0
or later. Do not activate other plugin extensions yet.
3 Study the chapter Migrating from 5.x.x of the documentation. It will help you understand what is being migrated, why, and how.
4 Activate Bitcoin and Altcoin Wallets.
5 Go to Tools → Migration Tool.
You will see a list of ticker symbols (e.g. BTC
, USDT
, etc), and the total balances held in the old SQL ledger. You will also see for each of these ticker symbols, if there is a Currency defined with that ticker symbol.
Some ticker symbols will not correspond to a Currency yet. Take the time to create all missing Currencies beforehand.
For missing cryptocurrencies, go to Currencies → Add New. Specify 8 decimals for Bitcoin-like coins, 12 decimals for Monero, etc. If you enter the Coingecko ID for a currency and then save the currency, some details for that currency will be filled in for you on the next cron job run (can take a few minutes).
For missing fiat currencies, simply add your free fixer.io API key in the plugin’s settings: Go to Settings → Bitcoin and Altcoin Wallets → Fiat Currencies → fixer.io API key and enter your fixer.io API key. This will create all the known Fiat currencies over a few cron runs (this can take several minutes).
All missing currencies should be created before migration starts. The migration tool tries to infer the CoinGecko ID of an unknown cryptocurrency by its ticker symbol, since previous versions of the plugin only used ticker symbols. If the migration tool is forced to create a Currency on the fly, it may not guess all the parameters correctly. You will then have to revert the migration, create the missing currencies, and try again.
6 Start one type of migration, either “Transactions” or “Balances”. Refer to the chapter Migrating from 5.x.x of this documentation to see what this is about.
TIP: The migration task runs as a cron task. If your cron jobs are not running, fix that issue now. (Refer to Refer to the chapter Migrating from 5.x.x → How?)
TIP: The Frontend UIs will be unavailable until migration finishes.
While migration runs, any newly created Currencies, Addresses and Transactions will be assigned the migrated
tag. This allows for the migration process to be reverted.
7 If your cron jobs are running, you can monitor progress by refreshing the tool every now and then. The cron jobs should be running once per minute, for a few seconds. When migration finishes, all admins with the manage_wallets
capability will be notified by email. At this point, you can double-check that migration was successful: Compare the SQL Sum of User balances column with the CPT Sum of User balances column. If migration was successful, the values should be identical.
Reconnect an existing Bitcoin core or compatible wallet
Let’s assume that we are re-connecting a Bitcoin wallet, or a similar wallet, such as Litecoin or Dogecoin. Previously, these altcoins were installed using the MultiCoin Adapter extension. The process is now easier, as we will use the built-in DSWallets\Bitcoin_Like_Wallet_Adapter
. An admin must re-enter the settings into a new Wallet CPT.
If you do not need to connect to such a wallet, skip to step 27.
8 Go to Wallets.
9 Click Add New.
10 Give a title to your new Wallet. e.g.: Bitcoin core wallet or Dogecoin core wallet.
11 At the Wallet Adapter dropdown, pick DSWallets\Bitcoin_Core_Like_Wallet_Adapter
. Use this adapter when connecting to Bitcoin core or similar wallets, e.g. Litecoin core, Dogecoin core, Bitcoin ABC (cash), etc.
12 Hit Publish to save the Wallet. The settings that are specific to the Wallet Adapter you chose will appear.
13 Check the Wallet Enabled box.
14 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]
.
15 Enter the port number for the wallet’s RPC API. For Bitcoin, the default is 8332
(or 18332
for testnet). Other wallets use different ports by default.
16 Enter your wallet’s JSON-RPC username.
17 Enter your wallet’s JSON-RPC password.
18 If your wallet has been encrypted with a passphrase, enter it too. This will let the plugin create transactions. Without it, the Wallet Adapter will not process withdrawals.
19 Hit Publish to save your settings.
20 Go to Wallets. Check the Connection status / version column next to your Bitcoin core wallet. If connection was successful, this will read Version X ready .
21 Go to Currencies and find the currency for this wallet. It should have been created by the migration process. If not, you can create it yourself.
22 Assign your new Wallet to the Currency you are editing or creating.
23 Set the Currency details correctly.
The following details are particularly important:
- Title (Name)
- Ticker symbol
- Decimals
- CoinGecko ID
The remaining Currency details can be set either now or later.
Finally Hit Update to save your Currency details.
24 Go back to the wallet, and note the Recommended .conf file settings on the right hand of the screen. The two curl commands silently contact your plugin’s WP-REST API to notify about transactions and blocks. The URI contains the assigned Currency’s post ID.
25 Go back to step 8 and repeat for each wallet with a JSON-RPC API compatible to that of Bitcoin.
26 Edit the bitcoin.conf
or other .conf
file. If you are unsure where the file is, see here. The walletnotify=
and blocknotify=
lines in your config must be updated for version 6.0.0
, to match the ones shown next to the wallet.
Redefine fiat currencies for use with manual bank wire transfers
Now we are going to enable the Fiat Currencies. If the migration tool indicates that you have any data on fiat currencies, i.e. if you see ticker symbols such as
USD
,EUR
,AUD
, etc. then you need to enable Fiat Currencies. If you do not need to do this, skip to step 39.
27 Go to Wallets.
28 Click Add New. We will create a virtual wallet that will let admins handle user Fiat deposits/withdrawals manually.
29 Give a title to your new Wallet. Let’s call it “Fiat Bank Accounts”.
30 At the Wallet Adapter dropdown, pick DSWallets\Bank_Fiat_Adapter
. Use this adapter for Fiat currencies. The adapter will let you enter bank details.
31 Check the Wallet Enabled box.
32 Hit Publish to save your changes.
33 Go to a Fiat currency that you would like to use, e.g. go to Currencies → United States Dollar → Edit.
34 At the Wallet dropdown, pick the Wallet you just created, i.e. “Fiat Bank Accounts”.
35 Hit Update to link the Fiat currency with the Fiat Bank Accounts wallet.
36 Go back to the Wallet you just created, i.e. “Fiat Bank Accounts”.
37 For each currency that you plan to send and receive bank transfers for, enter the following details:
Bank name and address – Full name and address of bank where you will be receiving fiat deposits.
Addressing method – Select which type of bank transfer to use to receive fiat deposits. Depends on which region your bank is in: Americas, India, Europe.
Bank branch – Enter the details that uniquely specify the bank branch where you will receive fiat deposits. Depending on your choice of addressing method, this will be: SWIFT/BIC or Routing Number or IFSC.
Bank account – Enter the details that uniquely specify your bank account where you will receive fiat deposits. Depending on your choice of addressing method this can be IBAN or Account Number.
Then hit Update to save your bank info. The [wallets_fiat_deposit]
and [wallets_fiat_withdraw]
shortcodes will work as expected.
38 Check your frontend for any issues: The shortcodes syntax is backwards-compatible with the old syntax. The frontend UIs are as compatible as possible with the old UIs, including the general markup structure, Customizer settings, HTML classes, etc. In any case, smoke-test your UI to avoid any surprises!
Review the most important plugin settings
We will now configure some important plugin settings. You can review the remaining settings later.
39 Go to Settings → Bitcoin and Altcoin Wallets → Exchange rates.
40 Study the informatin on the screen. Choose some VS currencies that you think your users are familiar with. The plugin will have to download data repeatedly for each cryptocurrency against all the VS currencies. So, don’t select all of them, unless you need them. After you select some currencies, hit Save Changes.
41 Go to Settings → Bitcoin and Altcoin Wallets → Notifications. Decide whether you want the user to have to confirm by email any outgoing Withdrawals, and Internal Transfers. This is an extra security feature that is enabled by default only for withdrawals.
42 Go to Settings → Bitcoin and Altcoin Wallets → Capabilities, to configure access control for the plugin. Review the General Capabilities set against each of your User roles. Only Administrators should have manage_wallets
, as this gives complete access to the plugin. User roles who should have access to wallets must have has_wallets
at a minimum. Give the remaining capabilities to your user roles as needed.
43 Only if you have purchased Premium membership: Go to Settings → Bitcoin and Altcoin Wallets → Updates and enter your Activation code. This will enable any installed extensions to retrieve updates from the dashed-slug.net update server.
Installing more extensions
By now you should have installed a few fiat currencies and/or cryptocurrencies, connected to some Bitcoin-like full node wallets, and assigned Currencies to these new Wallets.
Check deposits and withdrawals before proceeding.
44 You can now install any aditional wallet adapters you may need. These are currently:
- Monero Wallet Adapter version
2.0.0
- TurtleCoin Wallet Adapter version
0.2.0-beta
- CoinPayments Wallet Adapter version
2.0.0
Refer to the installation or migration instructions for these wallet adapter extensions for details on how to migrate.
45 Once you have tested deposits and withdrawals for all your Wallets and Currencies, you can go on to install some App extensions.
Refer to the installation or migration instructions for these app extensions for details on how to migrate.
downloads
This is a free plugin available to all. You can get it from wordpress.org, or download it from here:
-
Bitcoin_
and_ Altcoin_ Wallets-6.3.1-wordpress-plugin.zip - 6.3.1 -
Bitcoin_
and_ Altcoin_ Wallets-6.3.0-wordpress-plugin.zip - 6.3.0 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.7-wordpress-plugin.zip - 6.2.7 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.6-wordpress-plugin.zip - 6.2.6 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.5-wordpress-plugin.zip - 6.2.5 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.4-wordpress-plugin.zip - 6.2.4 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.3-wordpress-plugin.zip - 6.2.3 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.2-wordpress-plugin.zip - 6.2.2 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.1-wordpress-plugin.zip - 6.2.1 -
Bitcoin_
and_ Altcoin_ Wallets-6.2.0-wordpress-plugin.zip - 6.2.0 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.10-wordpress-plugin.zip - 6.1.10 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.9-wordpress-plugin.zip - 6.1.9 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.8-wordpress-plugin.zip - 6.1.8 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.7-wordpress-plugin.zip - 6.1.7 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.6-wordpress-plugin.zip - 6.1.6 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.5-wordpress-plugin.zip - 6.1.5 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.4-wordpress-plugin.zip - 6.1.4 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.3-wordpress-plugin.zip - 6.1.3 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.2-wordpress-plugin.zip - 6.1.2 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.1-wordpress-plugin.zip - 6.1.1 -
Bitcoin_
and_ Altcoin_ Wallets-6.1.0-wordpress-plugin.zip - 6.1.0 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-wordpress-plugin.zip - 6.0.0 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC9-wordpress-plugin.zip - 6.0.0-rc9 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC8-wordpress-plugin.zip - 6.0.0-rc8 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC7-wordpress-plugin.zip - 6.0.0-rc7 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC6-wordpress-plugin.zip - 6.0.0-rc6 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC5-wordpress-plugin.zip - 6.0.0-rc5 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC4-wordpress-plugin.zip - 6.0.0-rc4 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC3-wordpress-plugin.zip - 6.0.0-rc3 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC2-wordpress-plugin.zip - 6.0.0-rc2 -
Bitcoin_
and_ Altcoin_ Wallets-6.0.0-RC1-wordpress-plugin.zip - 6.0.0-rc1 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.18-wordpress-plugin.zip - 5.0.18 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.17-wordpress-plugin.zip - 5.0.17 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.16-wordpress-plugin.zip - 5.0.16 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.15-wordpress-plugin.zip - 5.0.15 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.14-wordpress-plugin.zip - 5.0.14 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.13-wordpress-plugin.zip - 5.0.13 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.12-wordpress-plugin.zip - 5.0.12 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.11-wordpress-plugin.zip - 5.0.11 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.10-wordpress-plugin.zip - 5.0.10 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.9-wordpress-plugin.zip - 5.0.9 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.8-wordpress-plugin.zip - 5.0.8 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.7-wordpress-plugin.zip - 5.0.7 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.6-wordpress-plugin.zip - 5.0.6 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.5-wordpress-plugin.zip - 5.0.5 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.4-wordpress-plugin.zip - 5.0.4 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.3-wordpress-plugin.zip - 5.0.3 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.2-wordpress-plugin.zip - 5.0.2 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.1-wordpress-plugin.zip - 5.0.1 -
Bitcoin_
and_ Altcoin_ Wallets-5.0.0-wordpress-plugin.zip - 5.0.0 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.8-wordpress-plugin.zip - 4.4.8 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.7-wordpress-plugin.zip - 4.4.7 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.6-wordpress-plugin.zip - 4.4.6 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.5-wordpress-plugin.zip - 4.4.5 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.4-wordpress-plugin.zip - 4.4.4 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.3-wordpress-plugin.zip - 4.4.3 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.2-wordpress-plugin.zip - 4.4.2 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.1-wordpress-plugin.zip - 4.4.1 -
Bitcoin_
and_ Altcoin_ Wallets-4.4.0-wordpress-plugin.zip - 4.4.0 -
Bitcoin_
and_ Altcoin_ Wallets-4.3.5-wordpress-plugin.zip - 4.3.5 -
Bitcoin_
and_ Altcoin_ Wallets-4.3.4-wordpress-plugin.zip - 4.3.4 -
Bitcoin_
and_ Altcoin_ Wallets-4.3.3-wordpress-plugin.zip - 4.3.3 -
Bitcoin_
and_ Altcoin_ Wallets-4.3.2-wordpress-plugin.zip - 4.3.2 -
Bitcoin_
and_ Altcoin_ Wallets-4.3.1-wordpress-plugin.zip - 4.3.1 -
Bitcoin_
and_ Altcoin_ Wallets-4.3.0-wordpress-plugin.zip - 4.3.0 -
Bitcoin_
and_ Altcoin_ Wallets-4.2.2-wordpress-plugin.zip - 4.2.2 -
Bitcoin_
and_ Altcoin_ Wallets-4.2.1-wordpress-plugin.zip - 4.2.1 -
Bitcoin_
and_ Altcoin_ Wallets-4.2.0-wordpress-plugin.zip - 4.2.0 -
Bitcoin_
and_ Altcoin_ Wallets-4.1.0-wordpress-plugin.zip - 4.1.0 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.6-wordpress-plugin.zip - 4.0.6 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.5-wordpress-plugin.zip - 4.0.5 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.4-wordpress-plugin.zip - 4.0.4 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.3-wordpress-plugin.zip - 4.0.3 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.2-wordpress-plugin.zip - 4.0.2 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.1-wordpress-plugin.zip - 4.0.1 -
Bitcoin_
and_ Altcoin_ Wallets-4.0.0-wordpress-plugin.zip - 4.0.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.9.4-wordpress-plugin.zip - 3.9.4 -
Bitcoin_
and_ Altcoin_ Wallets-3.9.3-wordpress-plugin.zip - 3.9.3 -
Bitcoin_
and_ Altcoin_ Wallets-3.9.2-wordpress-plugin.zip - 3.9.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.9.1-wordpress-plugin.zip - 3.9.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.9.0-wordpress-plugin.zip - 3.9.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.8.0-wordpress-plugin.zip - 3.8.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.7.4-wordpress-plugin.zip - 3.7.4 -
Bitcoin_
and_ Altcoin_ Wallets-3.7.3-wordpress-plugin.zip - 3.7.3 -
Bitcoin_
and_ Altcoin_ Wallets-3.7.2-wordpress-plugin.zip - 3.7.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.7.1-wordpress-plugin.zip - 3.7.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.7.0-wordpress-plugin.zip - 3.7.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.7-wordpress-plugin.zip - 3.6.7 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.6-wordpress-plugin.zip - 3.6.6 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.5-wordpress-plugin.zip - 3.6.5 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.4-wordpress-plugin.zip - 3.6.4 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.3-wordpress-plugin.zip - 3.6.3 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.2-wordpress-plugin.zip - 3.6.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.1-wordpress-plugin.zip - 3.6.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.6.0-wordpress-plugin.zip - 3.6.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.6-wordpress-plugin.zip - 3.5.6 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.5-wordpress-plugin.zip - 3.5.5 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.4-wordpress-plugin.zip - 3.5.4 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.3-wordpress-plugin.zip - 3.5.3 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.2-wordpress-plugin.zip - 3.5.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.1-wordpress-plugin.zip - 3.5.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.5.0-wordpress-plugin.zip - 3.5.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.4.2-wordpress-plugin.zip - 3.4.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.4.1-wordpress-plugin.zip - 3.4.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.4.0-wordpress-plugin.zip - 3.4.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.6-wordpress-plugin.zip - 3.3.6 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.5-wordpress-plugin.zip - 3.3.5 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.4-wordpress-plugin.zip - 3.3.4 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.3-wordpress-plugin.zip - 3.3.3 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.2-wordpress-plugin.zip - 3.3.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.1-wordpress-plugin.zip - 3.3.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.3.0-wordpress-plugin.zip - 3.3.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.2.0-wordpress-plugin.zip - 3.2.0 -
Bitcoin_
and_ Altcoin_ Wallets-3.1.3-wordpress-plugin.zip - 3.1.3 -
Bitcoin_
and_ Altcoin_ Wallets-3.1.2-wordpress-plugin.zip - 3.1.2 -
Bitcoin_
and_ Altcoin_ Wallets-3.1.1-wordpress-plugin.zip - 3.1.1 -
Bitcoin_
and_ Altcoin_ Wallets-3.1.0-wordpress-plugin.zip - 3.1.0 -
Bitcoin_
and_ Altcoin_ Wallets-2.8.2-wordpress-plugin.zip - 2.8.2 -
Bitcoin_
and_ Altcoin_ Wallets-2.10.0-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.10.1-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.10.2-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.10.3-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.10.4-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.10.5-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.10.6-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.11.0-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.11.1-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.11.2-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.12.0-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.12.1-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.12.2-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.0-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.1-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.2-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.3-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.4-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.5-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.6-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-2.13.7-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-3.0.0-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-3.0.1-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-3.0.2-wordpress-plugin.zip -
Bitcoin_
and_ Altcoin_ Wallets-3.0.3-wordpress-plugin.zip - - 2.4.5
- - 2.6.0
-
Bitcoin_
and_ Altcoin_ Wallets-2.9.0-wordpress-plugin.zip - 2.9.0 - - 2.3.1
- - 2.4.2
- - 2.7.3
- - 1.0.5
- - 2.3.2
- - 2.6.1
- - 2.4.6
- - 2.5.3
- - 1.0.0
- - 2.1.1
- - 2.2.1
- - 2.3.3
- - 2.3.6
- - 2.6.2
- - 2.3.4
- - 2.5.4
- - 2.6.3
- - 2.3.5
- - 2.4.0
- - 2.7.1
- - 2.7.4
- - 1.0.3
- - 2.2.2
- - 2.7.0
- - 2.1.2
- - 2.2.3
- - 1.0.1
- - 1.0.6
- - 2.2.0
- - 2.4.3
- - 2.5.0
- - 2.8.0
- - 1.0.2
- - 2.2.4
- - 2.5.1
- - 2.1.0
- - 2.2.5
- - 2.7.2
- - 1.0.4
- - 2.4.1
- - 2.4.4
NOTE: Release Candidates are marked with “RC” and are only available on this site, not on WordPress.org
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. If you need it, you can download the PDF documentation for version 5.0.18 of the plugin here.
support
Please use the appropriate support forum:
- For all issues and inquiries regarding the parent plugin, Bitcoin and Altcoin Wallets, you can use the support forum on WordPress.org.
- You may also use the General discussion forum on dashed-slug.net to discuss this plugin.
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.