Blockchain Introduction


Purrser aims to provide an easy-to-use experience for transacting assets. Beyond the signing of the transactions themselves, there are various factors that go into building a transaction or multiples of transactions.

Algorand is a green and technically carbon-negative Layer-1 blockchain. What is special about it is its PPoS (Pure Proof of Stake) consensus system to validate blocks on a blockchain.

What's special about PPoS?
  • Malicious actors do not know who to target as they are randomly chosen during every voting block.
  • If validators are found, it's too late. They already voted and the next round of validators have been randomly chosen.

Low Transaction Fees

To send a transaction using Algorand, there is a fixed 0.001 Algo transaction fee for each single transaction. No "congestion" or "high gas" fees here. You don't even have to go onto a Layer-2 to get these benefits.

ASAs are Algorand Standard Assets. These ASAs can be NFTs, stable coins, certificates, securities or various other things right on the Layer-1 blockchain.

Due to the way Algorand works, one must opt into an asset before being able to receive the asset. And if you send an asset, a zero balance will be left in sender's account unless you do a "Closeout Transfer" transaction. Opting out shall be synonymous with "Closeout Transfer".

Opting into Assets

Opting in works by sending yourself a zero amount of the asset ID you want to opt into. After opting in, you will be able to receive the asset from other accounts.

Transferring Assets

Transferring sends the asset and its amount to specified receiver if receiver has previously opted in.

Only sixteen total transactions can be placed into one group. Fees for a group of 16 transactions are still calculated as 0.001 * 16 = 0.016 Algos which are required to complete the grouped transaction.

Opting Out of Assets

In order to opt out of an asset, it requires the following:

  • Sending the full asset balance to another wallet
  • Receiving wallet must be opted in
  • If you do not know who to send it to and it is a non-zero amount, you may always send it to the creator of the asset

Seed words

Seed words (AKA "mnenomic phrase") are a list of words in the BIP39 list. They provide a more recognizable and human-readable way to back up your wallet.

For Algorand, 25 words in a specific order can give you access to that specific account address no matter what. Think of them as a key for a safety deposit box at a bank. Anyone can use the key and gain access to your funds.

Never share these with anyone!

Account addresses

An account address is an unique address that lives on the blockchain. It acts just like your email or home address that anyone can send ASAs to (provided you're opted in).

Since an address lives on the blockchain, removing it from Purrser does not remove it from the blockchain. Purrser only acts like a "WALLET" which provides an interface to view and sign transactions for that account.

Since there are negligible transaction fees, a malicious actor could spam the network (like non-stop creating ASAs) without incurring any real financial penalty. Thus all ASAs and contracts require a locked in amount of Algos

Minimum balance is the necessary amount of Algos for an account in order for assets and contracts to be accepted during transacting. It is calculated and displayed in your wallet's information panel. Available balance is important as if you try to send more than this amount, the transaction will be rejected by the blockchain.

Minimum balance parameters:
  • 0.100 Algos are locked up per opted in asset (Algo is considered an asset)
  • 0.100 Algos are locked up per opted in contract
  • 0.050 Algos are locked up per byte-slice in the state schema
  • 0.028 Algos are locked up per UINT in the state schema
  • 0.001 Algos per transaction as an Algorand transaction fee
Reference: Minimum balance for smart contracts

Managing Purrser Accounts


Purrser accounts are locally generated or imported wallets that enable you to transaction on the Algorand blockchain directly. You will be able to sign transactions without requiring a third party service such as MyAlgo or AlgoSigner. Using Purrser accounts will provide you with instant signing capabilities versus having third party popups for every type of transaction set.

A wallet can be created by clicking " ADD" in the wallets section. This brings up a window where you will:

  • Type in wallet's nickname (or randomly generated one will be given)
  • Hit "CREATE"
  • Write down / copy the account address and mnenomic seed words

Note: It is important that you save your 25 seed words as they are only stored locally on your machine

If you already have a wallet and its seed words, you may import it directly into Purrser.

Importing is done by clicking in the wallets section. Follow the following instructions:

  • Type in wallet's nickname (otherwise a randomly generated one will be given)
  • Paste in 25 seed words with spaces or commas in between
  • Hit "IMPORT"

Wallets generated or imported into Purrser are stored in localstorage in your browser cache. Switching to different browser, device, or even incognito mode will not propogate your information. It will be as if you started from scratch on Purrser as there is no centralized database that collects your information.

Localstorage contains non-sensitive information such as your account public addresses, account nicknames, and current assets.

Sensitive data such as your mnenomic/seed words and hashed version of your password is stored in a separate IndededDB database instance. This database is encrypted locally (hashed and salted) by the following:

  • AES-GCM algorithm with 12 bytes IV and 32 bytes salt
  • Keys to the database are generated using PBKDF2 with the parameters: 256-bit length, 32 bytes salt, SHA-512, and 1 million iterations
  • After every save to database, a new IV and SALT pair are generated and used to encrypt the data.

Since your password is stored locally and not within Purrser and as a salted and hashed version, you will not be able to recover the original password you type in. As for the Algorand accounts stored with their mnenomics, they are only retrievable using your password. You must keep your seed words and password stored externally or risk losing access to your Purrser account and the wallets within.

A Purrser wallet may be removed from your device. This will not delete the account from the blockchain -- only from being displayed by Purrser.

Before deleting account, it is important that if you want to access this account again through Purrser, it will require you to manually enter that account's seed words. You may find your seed words by clicking on the icon in the wallet page's header.

  • Click on the bar of the wallet that is to be deleted
  • Your wallet's window will appear and you will see a icon in the header
  • Pressing this opens up an account removal window
  • Click the "REMOVE" button
  • To confirm account removal, type in your password

Now your account has been removed from Purrser. If you ever want to add this wallet back to Purrser, simply import your seed words as shown in FAQ#6.

Connecting Web Accounts


Web accounts require signing transactions through a third party service such as MyAlgo or AlgoSigner. Each transaction set requires a signature obtained via a prompt in order for them to be performed.

Note: Purrser cannot directly interact with your third party accounts. Purrser receives only your public address and nickname of wallet. Purrser DOES NOT receive your secret keys from web accounts in order to sign transactions.

Click on the "CONNECT" button on top right of main page

Within the new window, there will be options for both MyAlgo and AlgoSigner to connect their wallets to Purrser. Simply click 'CONNECT' for whichever type of wallets you'd like to add to Purrser.

Clicking on "MANAGE" button at top right of main page provides you the ability to remove or add web wallets as needed.

Within the pop-up window, clicking on "CONNECTED" for MyAlgo, you will be able to deselect or add to change which wallets Purrser will have access to. For AlgoSigner, you simply either have access to all of the accounts or none of them and cannot be managed in Purrser.

Clicking on "CLEAR" button removes all web wallets of that type from being displayed on Purrser. If you re-connect by hitting "CONNECT" button, your web wallet choices will not have changed and will re-import according to last saved state.

WalletConnect is a protocol for signing transactions from another device. It's main use case is to sign transactions with a mobile app like Pera.

Within the Connect Web Wallets window, clicking on "CONNECT" in WalletConnect section prompts you with a QR code that is consumed by another WalletConnect-compatible device.

For Pera
  • Open Connect Web Wallets window from top right of Purrser app
  • Hit CONNECT in WalletConnect section to display a QR code
  • Click on the [-] icon on top right
  • Scan the QR code shown
  • Select the account you'd like connected. Only one account can be selected at a time due to Pera's restrictions.
  • After connecting, check out the address shown on screen to verify that's corrrect

To disconnect your WalletConnect session, simply hit the DISCONNECT button to kill the session. You can also disconnect it from your other WalletConnect device like your phone.

However if you disconnect from your other device without having Purrser loaded, you'll need to hit DISCONNECT in Purrser to remove the disabled account.

Purrser Asset Interaction


Purrser acts as a wallet management tool that provides extra features to automate and generate transactions with the Algorand blockchain.

Add any valid asset by clicking " OPT" button in the side command bar. An Opt In form will be displayed where you will type in the asset ID (e.g. 185), unit name, or description as well as the receiving wallet.

This does not automatically perform an opt in transaction. It simply creates an asset item that gets added to the wallet you selected. It will be displayed automatically in the Pending Transactions log and shown in Asset Dashboard section highlighted in green.

Wallets that already have the asset will be disabled from the dropdown selection

You can send up to your available asset balance to any one of your other wallets. You can do this through the "BATCH TRANSACTIONS" buttons or simply one of the following two ways:

  • Sending Algos: Click on your wallet bar and then on "" SEND" to bring up the Payment form.
  • Sending non-Algo assets: Inside the Asset Organizer section, click on the unit name you'd like to send. Hitting "TRANSFER" will bring up the Asset Transfer form

Main goal of Purrser is to enable easy swapping of assets between your own wallets. From sending a single asset to an entire wallet of 100+ assets, this is all now fully automated with specialized algorithms.

To swap an asset to a different wallet, just drag and drop the assets as shown in figure below:

swap1

You can do this to as many assets as you like. If you want to reset back to original state, simply hit the "RESET" button in command bar or top right of Organize Assets section.

"No worry" swapping as transactions are not performed until you hit a "SUBMIT" button!

Removing an asset can be done multiple ways. There are variables that will determine how you can do it and how you would like to do it.

If you are the asset creator, you can only remove the asset if you hold all of the total amount of the asset that was minted, and then it may only be done via destroying the asset which is currently not supported at this time in Purrser.

Removing Assets using Asset Transfer Form

You may remove an asset by clicking on the Asset itself in the Asset Dashboard section. Then select the "Opt Out" checkbox in the Asset Transfer form. If you own the receiving account, it will check if receiver is opted in already and then transfer the FULL asset balance to receiver. If you simply want to burn this asset and do not care who receiver is, then select Asset Creator.

Removing Assets while using Batch Transactions

Select the Opt Out option if using any of the Batch Transaction options. If using Batch button, it will force an opt in transaction to receiver if they are not opted in. If you do not want this, you may select the Asset Creator in the Asset Transfer form.

Trashing Assets

For a "Batch"-like option for removing one or multiple assets at a time, you may use the Trash bin in the Asset Dashboard section.

  • Currently only zero amounts of an asset can be placed in Trash Bin. This is to ensure you do not accidentally send all of your assets to the Asset Creators.
  • Any asset placed in Trash bin will be sent to Asset Creator and not one of your receiving accounts

Purrser Transactions


Transacting on Purrser is designed to be as seamless and smooth as possible. Purrser adds additional logic to enable easier transactions. You decide how you want to transact on Purrser -- batch them all or do one at a time!

In addition to the parameters and fees set by the blockchain itself,

Purrser transaction fees

Purrser charges a flat amount of 0.005 Algos per grouped transaction set.

This fee only applies to batched transactions which are enacted when you hit "SUBMIT" in the Batched Transaction and Account Transaction sections.

Simply swap assets around as shown in FAQ #14 to build up your transactions. While only 16 transactions can be placed into a single group, Purrser will continue to batch as many transactions as you can dream of.

There are two "BATCH" submit buttons available to you:

BATCH OPT INS AND TRANSFERS

All transactions are performed by first opting into the asset, account by account. Once all opt ins are completed, asset transfers are performed. If you use third party wallets, you will have to sign in between each grouped transaction set.

BATCH IT AND OPT OUT

This button performs the same steps as the "BATCH OPT INS AND TRANSFERS" button with one difference. When the asset transfers are being performed, each transfer will be marked as a "Closeout Transfer" which opts that asset out of sender's account. You will have to opt in again if you ever want to receive this asset in the future.

With many factors going into the available balance of any account, a set of calculations are performed when building the transaction set.

Example calculation, part one

Sender's account has 0.5 Algos and two other opted in assets
Minimum balance: 0.3 Algos

Receiving account has 0.3 Algos and no other opted in assets
Minimum balance: 0.1 Algos

Now sender wants to send his two assets and extra Algos to receiver which changes the minimum and available balances due to locked Algos and fees. Receiver must opt into asset 1 and 2 which raises minimum balance receiver's account to 0.3 Algos.

However, there are two grouped transaction types being performed: asset transfer and opt in transfer. Each transaction type incurs the Purrser transaction fee of 0.005 Algos as well as each transaction incurring the blockchain fee of 0.001 Algos

Total transaction fees:
1 [tx type] * 0.005 [purrser fee] + 3 [txns] * 0.001 [txn fee] = 0.008 Algos
Note: there are two transactions: two opt ins and a purrser fee transaction

Now receiver's balance is short 0.012 Algos and transaction set is aborted.

Example calculation, part two

Assume receiver now has 1 Algo and can afford the fees.

Receiver opts in to the two assets, leaving a current balance of 1 - 0.008 = 0.092 Algos with a new minimum balance of 0.3 Algos.

Sender now is able to send the two assets and Algos to receiver.

Total transaction fees while sending to receiver:
1 [tx type] * 0.005 [purrser fee] + 4 [txns] * 0.001 [txn fee] = 0.009 Algos
Note: there are four transactions: two asset transfers, Algo transfer, and a purrser fee transaction

Sender's available balance has shrunk to 0.401 Algos (0.5-0.009) while minimum balance stays at 0.3 Algos. Now the Algo payment to receiver is simply 0.401 - 0.3 = 0.101 Algos.

Inside your wallet's window, there will be a Transactions pane. It will show the most recent 16 transactions per page. This number was chosen to align with the maximum amount of transactions allowed per group transaction.

Troubleshooting / Advanced Settings


If you're having issues, check out this section. If none of them address your issue, send an email to: help@purrser.com

If you've previously made a Purrser wallet and are entering the right password, then you have either:

  • Tried to login from another device
  • Tried to login from another browser
  • Tried to login from incognito mode
  • Cleared your browser cache

If you cannot access Purrser from the original device and browser, you will have to make a new Purrser wallet since Purrser doesn't store your data. You will then have to re-import any Purrser accounts following the steps in FAQ#22. If you've only connected web wallets, you'll just need to re-connect them as you did originally.

If you'd like to backup all of your data from Purrser, click Advanced Settings inside of Settings window. There you will see the option "Export All".

You will receive a JSON string in the window with all of your account data. It is absolutely necessary to keep this data stored as shown as it will allow you to easily re-import these accounts into Purrser. Highly useful if you want to transfer accounts to another device.

Web wallets

Web wallets and their accounts can be re-imported just as you originally did in FAQ#9

Purrser accounts

If you only need to import a single account at a time, you can follow the steps in FAQ#6. If you backed up your accounts following FAQ#20, you can easily re-import all of the accounts at once by going into "Settings". In the "Advanced Settings" section, click on "Import all". Paste in your backed up JSON string.

If you want to perform multiple sets of transactions using MyAlgo, you will need to disable your pop-up and ad blockers on Purrser.

Browsers have a security measure where pop-ups like MyAlgo can only be opened from a button click. In the future, Purrser may develop functionality that requires a button press (e.g. "Next" button) in between each set of transactions to rectify this issue.

But as of now, if disabling any blockers is unacceptable to you, then you can import your accounts directly into Purrser.