Persistence gem, XPRT, now supported on Ledger Hardware wallets

Chukwunelo Ebuka Alpha
5 min readJul 30, 2021

We woke up to the news of yet another integration for Persistence and its native gem, XPRT. We were still relishing the feeling from having the XPRT on the interchain wallet, Keplr when this news of yet another wallet integration broke out. This time it’s with Ledger hardware wallet. As per increased request from the large Persistence community, it has been put in place. This shows the level of commitment the Persistence team has for their community . The Ledger hardware wallet now supports Persistence assets. Your XPRT can now be properly stored on Ledger. Persistence is building the future for decentralized finance (DeFi) and interoperability and they are doing this by providing their community and plethora of users with next-gen financial products that would help achieve this aim. Having the XPRT token on Ledger is a step in the right direction.

Why Ledger?

Ledger wallets are hardware wallets that help users secure their assets. Hardware wallets literally work by helping users to store their private keys in a secure hardware device. In this case, the users’ assets are kept safe by mere demarcation. There is complete isolation between your device (smartphone or PC) and the private keys. This way, hackers might have access to the device but not to the private keys. The hardware wallets at Ledger are not different. Ledger’s hardware wallets can store a lot of currencies with the special feature of being able to store the private keys offline. We all have our cryptographic private keys through which we carry out transactions in the block in space.

Here’s a guide on how to set up everything

Getting the Persistence Ledger Application Installed

Before you use persistenceCore, you’d have to install the Persistence application on your Ledger device. You can do it this way

  1. Installing the Ledger Live on your machine
  2. With this Ledger Live, you can update your Ledger device with the latest firmware. What you have to do is to navigate to the Manager menu on the Ledger Live application.
  3. Next is to connect your Ledger Nano device and select the Allow Ledger Manager on your device option box.
  4. Search for Persistence on the Ledger Live Application.
  5. Install the Persistence application. All you have to do is press Install.

Ledger Nano and Persistence Wallet

With the Ledger Nano device, you can sign into your Persistence wallet and carry out all the transactions you need to carry. You can do this without having to use your key or mnemonic.

You’d have to install the Persistence App on your Ledger Nano before doing the following.

  1. You’d, first of all, connect your Ledger device to your computer. After doing that, you’d unlock it with the PIN and proceed to open the Persistence app on your ledger.
  2. Go to wallet.persistence.one on your browser.
  3. Look for the Sign in option and select it.
  4. Now, all is set up for you to use the Persistence Wallet on your Ledger Nano.

Confirming your address on Ledger

Immediately you log in, you can verify your logged in address with the address that’s on the ledger device. You do this by clicking the verify button at the top right corner.

PersistenceCore CLI + Ledger Nano

Before using this section, you’d need to install the Persistence app on your Ledger Nano. We’ve talked about that in the previous section.

In order to generate addresses and transactions on the Persistence, you’d need the persistenceCore. Let’s get started on this.

For you to start, you’d need to do these

Check to verify that persistenceCore is installed correctly with the following command

persistenceCore version — long

➜ name: persistenceCore

server_name: persistenceCore

version: 0.1.3–2-gebc7dc7

commit: ebc7dc7

build_tags: netgo,ledger

go version go1.14.5 darwin/amd64

Add your Ledger Key

  1. Connect your Ledger device and unlock it.
  2. Open the Persistence app on your Ledger.
  3. Create an account in persistenceCore from your ledger key.

Ensure that you change the keyName parameter to a meaningful name so that you can identify it with ease. The Ledger flag indicates persistenceCore to use your Ledger to seed the account.

persistenceCore keys add <keyName> — ledger

➜ NAME: TYPE: ADDRESS: PUBKEY:

<keyName> ledger persistence1… persistencepub1…

Persistence uses HD wallets. This means you can set up many accounts using the same Ledger seed. To create another account from your Ledger device, run (change the integer i to some value >= 0 to choose the account for HD derivation):

persistenceCore keys add <secondKeyName> — ledger — account <i>

Confirm your address

Run this command to display your address on the device. Use the keyName that you gave on your ledger key. The -d flag is supported in version 1.2.0 and higher.

persistenceCore keys show <keyName> -d

The address displayed on the device has to match the one that was displayed when you added the key.

Connect to a full node

Next, you need to configure persistenceCore with the URL of a Persistence full node and the appropriate chain_id. Here, we’d be connecting to the public load balanced full node operated by Persistence on the core-1 chain. You can point your persistenceCore to any Persistence full node. Be sure that the chain-id is set to the same chain as the full node.

Test your connection with a query like this.

persistenceCore query staking validators — node https://rpc.core.persistence.one:443 — chain-id core-1

To run your own full node locally read more here.

Send a transaction.

You can now start signing in and sending transactions. Send a transaction with persistenceCore using the tx send command.

persistenceCore tx bank send — help # to see all available options.

To avoid issues, make sure that you unlock your device with the PIN and then open the Persistence app before trying to run these commands

Use the keyName you set for your Ledger key and persistenceCore will connect with the Persistence Ledger app, automatically, to then sign your transaction.

persistenceCore tx bank send <keyName> <destinationAddress> <amount><denomination> — node https://rpc.core.persistence.one:443 — chain-id core-1

When prompted with “confirm transaction before signing”, Answer “Y”.

You’d be prompted to review and approve the transaction on your Ledger device. Be sure to inspect the transaction JSON that would be displayed on the screen. You can scroll through each field and each message. Scroll down to read more about the data fields of a standard transaction object.

With this, you are all set to start sending transactions on the network.

Receive funds

To receive funds to the Persistence account on your Ledger device, retrieve the address for your Ledger account (the ones with TYPE ledger) with this command

persistenceCore keys list

➜ NAME: TYPE: ADDRESS: PUBKEY:

<keyName> ledger persistence1… persistencepub1…

More Documentation

If you’re not sure what persistenceCore can do, you can simply run the command without arguments to output documentation for the commands in support.

The persistenceCore help commands are nested. So $ persistenceCore will output docs for the top level commands (status, config, query, and tx). You can access documentation for sub commands with further help commands.

For example, to print the query commands:

persistenceCore query — help

Or to print the tx (transaction) commands:

persistenceCore tx — help

Support

For any questions or support, do reach Persistence on their Telegram channel.

About Persistence

Persistence is a protocol powering DeFi by providing next-gen financial products. They have products like AssetMantle, pSTAKE, Audit.One and pLEND coming soon.

Website: https://persistence.one

Twitter: https://twitter.com/persistenceone

Telegram: t.me/persistenceone

About Ledger

Ledger is your gateway to buying and managing crypto safely. They are the best when it comes to hardware wallets.

Website: https://ledger.com

Twitter: https://twitter.com/ledger

Support: https://twitter.com/Ledger_Support

--

--