Connect to a TurtleCoin wallet, or to any other wallet that is a fork of TurtleCoin.

The Bitcoin and Altcoin Wallets free WordPress plugin by default lets you connect a Bitcoin full node with your WordPress site.

Use this coin adapter to connect to your own full node TurtleCoin wallet, or to any coin that is a fork of TurtleCoin.

The TurtleCoin adapter extension for Bitcoin and Altcoin Wallets for WordPress.
This brand new coin adapter connects your Bitcoin and Altcoin Wallets plugin with a TurtleCoin full node that you control on your server.

TurtleCoin is a modern privacy-focused coin with a fairly active developer community. The coin is easily forkable, comes with instructions for how to set it up as a service, and comes with a well-designed wallet API. The documentation around all aspects of the coin is excellent.

installation instructions

  • Install TurtleCoin or your TurtleCoin fork, using the available documentation. You will need two components: A daemon that syncs with the blockchain, and a wallet API that connects to that daemon. This coin adapter connects to the wallet-api.
  • Install and sync your TurtleCoind node. Here’s how to start it, and make it listen to port 11898: ./TurtleCoind --rpc-bind-port 11898. To sync faster, you may want to use a checkpoints file. If you have a checkpoints.csv file, then start your daemon with: ./TurtleCoind --rpc-bind-port 11898 --load-checkpoints checkpoints.csv.
  • Let your node sync. While you are syncing, start the wallet-api. This component will connect to TurtleCoind‘s 11898 port (or whichever port you’ve set), and it will expose a JSON-based RPC API on another port (8070 by default). To start the wallet-api, issue a command such as: ./wallet-api --rpc-password rpcpass --enable-cors "*". This will set the password to the API to “rpcpass”. Choose a stronger password to protect this API. If your WordPress installation is on another machine, you may need to also use the --rpc-bind-ip argument.
  • Install and activate the Bitcoin and Altcoin Wallets plugin if you have not already done so.
  • Install and activate this coin adapter extension if you have not already done so.
  • In your WordPress installation, go to WalletsTurtleCoin (Turtle full node) (TRTL)Wallet RPC API. Inspect/set the coin adapter settings. See below for descriptions of these settings.
  • Once everything is set, go to WalletsAdapters.
  • Check that the Adapter Status for TurtleCoin is responding. If connection is not successful, an error will be shown instead.
  • If you need to install additional coin adapters for TurtleCoin forks, then see “adding support for your coins” below.

coin adapter settings

Min withdraw
Minimum amount allowed for withdrawals. This should be larger than the minimum transaction fee paid on the blockchain. On TurtleCoin, a typical transaction fee is currently 25 shells (i.e. 0.25 TRTL).
Fixed part of withdrawal fee
Set this to the fee that the user sees when paying for a withdrawal. This should be larger than the minimum transaction fee paid on the blockchain. On TurtleCoin, a typical transaction fee is currently 25 shells (i.e. 0.25 TRTL). For example, if you set the fee to 50 shells, then about 25 shells will be paid on the blockchain and 25 shells will remain in your site’s hot wallet.
HTTP request timeout (seconds)
How long the adapter will wait for the wallet-api to respond. A good value is 5 or 10 seconds.
Wallet RPC API: IP
The IP address of the machine where wallet-api runs.
Wallet RPC API: Port
The port that the wallet-api listens to. Default is 8070.
Wallet RPC API: Password
This is the password that you set in the --rpcpassword argument on wallet-api.
Blockchain Daemon: IP
This is the IP of the machine where the TurtleCoind daemon runs. The wallet-api will use this value to connect to the blockchain daemon.
Blockchain Daemon: Port
This is the port that TurtleCoind listens to Default is 11898. The wallet-api will use this value to connect to the blockchain daemon.
Wallet settings: Password
This is different from the RPC password. This is a secret that is used to encrypt the wallet files, and is similar to Bitcoin core’s “passphrase”. Without this password your coins are lost, so make sure not to lose it. Upon first communicating with the wallet-api, the coin adapter will create wallet files with the name {site-name}.wallet, where {site-name} is usually your site’s domain name. These files are encrypted with this password.

Note about the “Wallet RPC API: Password” and “Wallet settings: Password”. How long these secrets are stored on your DB depends on the setting: WalletsCron jobWithdrawal locksTime to retain withdrawal secrets.

adding support for your coins

The plugin needs to know some pieces of information about your coin and its wallet, before it can display a coin adapter for it. For some coins, this information is held in a built-in CSV file, at wp-content/plugins/wallets-turtlecoin/assets/coins.csv. Editing this file is NOT recommended because the file contents will be replaced when updating to any new version of the coin adapter. Instead, you should create a short plugin and attach it to the wallets_turtle_coins WordPress filter.

Here’s an example of how to add a hypothetical XYZ coin:

  • Create a new PHP file.
  • Add some plugin headers as shown here.
  • Paste your code beneath the headers.
  • Copy the PHP file into your wp-content/plugins directory
  • Go to the Plugins admin screen, and activate your plugin.
  • You can now go to WalletsXYZ coin (Turtle full node) and configure your connection settings.

A complete example that you can edit:

Once this is done, there will be a coin adapter available for your coin under the Wallets menu. Go to the coin adapter and verify its settings are correct. Then, go to WalletsAdapters and check that the status of the adapter is Responding.

faq

How often are deposits scanned?

On the first cron job run, the plugin runs the /transactions API call to discover any transactions relevant to the wallet. The plugin checks against the user addresses and creates the deposit rows in the DB as needed. The plugin then notes the highest block where a transaction was found. On subsequent cron job runs, the plugin scans the next 1000 blocks after that block height and processes any newer transactions. The plugin will continue, always re-scanning at least the last 1000 blocks loaded. This ensures that recent deposits are re-scanned often and that their confirmation counts are updated. After 24 hours, the process starts again from the beginning of the chain. This ensures reliability, and older transactions are updated in terms of their confirmation counts.

How are withdrawals executed?

The wallet uses a simple transaction with the wallet’s default fees and mixin values (/transactions/send/basic API call). Once a withdrawal is executed, it is immediately assigned a TXID from the blockchain. The withdrawal is subsequently updated on each cron job run to reflect changes to the network confirmation count. Once the confirmations are sufficiently high, the withdrawal is marked as done.

How can I connect to another fork of TurtleCoin?

A quick way to add a new coin adapter, is to edit the file assets/coins.csv. Add a row with the details of your coin. For example, say you wanted to add a2coin:

ARMS,2ACoin,100,0.00001,arms:%s,%01.4f,https://explorer.2acoin.org/?hash=%s#blockchain_transaction,,4

A more permanent solution is to use the wallets_turtle_coins filter in a separate plugin file. See “adding support for your coins“, above.

troubleshooting

In the coin adapters admin screen, I get the error “❎ Not responding: Failed to create wallet mydomainname.wallet due to: phpcurl could not communicate with TurtleCoin wallet. Error 7: Failed to connect to 127.0.0.1 port 8070: Connection refused“.

You would get this error any time the node is not running, or if you have not provided the correct IP and port number for your wallet machine, or if there is a firewall blocking communication in between.

download

Available free of charge to all subscribers and premium members (you need to be logged in).

support

Please visit the support area for any issues, suggestions, feedback regarding this plugin extension.

For support regarding the parent plugin, Bitcoin and Altcoin Wallets, please use the support forums on WordPress.org.

TurtleCoin Adapter extension

Updated on 2020-05-20T10:51:42+00:00, by alexg.