Installing the Chainweaver software
Mac: Select the Download button at https://www.kadena.io/chainweaver. This button downloads the software to your computer. Follow the on-screen instructions and drag the Chainweaver icon into your Applications folder.
From the Applications folder, open Chainweaver to create a new or open an existing wallet.
Create a new or open an existing wallet
When you start Chainweaver for the first time, you will be prompted to create a new or restore an existing wallet.
If you have an existing 12-word recovery phrase from this or a previous version of Chainweaver, you don’t need to create a new wallet. You can select Restore existing wallet.
If you do not already have an existing wallet, select Create a new wallet.
Create a strong, secret, and unique password, enter it in the field, and select “Continue”. This password will be used to access your wallet in the future as well as to access private information and authorize signed transactions. Ensure to follow basic safety tips (described below) when creating this password.
Next, you must acknowledge that you are solely responsible for securing your recovery phrase. Backing up your wallet is crucial for securing your blockchain assets and allows you to regain access to your funds on another device in the case of events like device failure, theft, or loss.
Next, write down your 12-word recovery phrase. Mouse over the words and write them down in the correct order and put them in a secure place where only you have access.
Verify that you have correctly recorded your recovery phrase by following the prompt to click each word in the correct order.
Once completed, you will see a Wallet Created success screen. Select “Done” and you will land on the main interface page.
Chainweaver's interface consists of three main elements. In the top bar you'll find the Network Display, in the left panel you'll find the Sections Menu, and then there's the Main Viewer.
This display bar persists across all screen views within Chainweaver so that you will always know the network with which you are interacting
Use this menu to go to different Sections
Wallet: Summary of your accounts. Send and receive Kadena
Contracts: Deploy and interact with smart contracts
Resources: Reference helpful support materials
Settings: Configure settings & view private information
Logout: Log out of the desktop application
The main viewer is the place where you interact with the section you have chosen from the Sections Menu.
Update to the latest version of Chainweaver
Upgrading Chainweaver is an essential part of keeping your crypto assets safe. If you are worried about losing funds during an upgrade, ensure you have a backup of your wallet. The latest version of Chainweaver will always be available for download at https://www.kadena.io/chainweaver. Ensure you have a secure connection before downloading any applications.
Note: Most issues can be resolved simply by updating to the latest version of Chainweaver.
Different networks in Chainweaver
Chainweaver allows you to interact with different networks, including the main network (“Mainnet”) and a test network (“Testnet”)
Mainnet is the primary live blockchain network where assets of value can be transferred and smart contract services can be called.
Testnet is a network with which you can safely test various blockchain interactions without the risk of losing valuable assets.
Both Mainnet and Testnet are fully operational, real blockchains. It is only Testnet, however, where you can acquire KDA coins for free from a coin faucet. Naturally, account balances cannot move between networks.
You can change the network with which you are actively interacting by selecting the drop-down arrows beside the displayed network in the Network Display top bar.
Simply select the desired network from the available list and confirm the selection. The displayed accounts will change to those that you have created on the chosen network.
Create a custom network
You can add your own custom network by selecting the appropriate option from the Settings section.
To create a new network, you will have to define a network name then enter the addresses for the nodes to which you would like the network to connect.
Note that custom networks are defined locally and will only be visible within the application that created it.
ACCOUNTS, KEYS, AND ADDRESSES
Key concepts to understand
Your identity on the Kadena blockchain can be described in a few different ways:
For most users, their Account Name will be the same as their Public Key. This is an established convention in many popular blockchains.
Kadena also enables the ability for an Account Name to be different than a Public Key. The main reasons for this added feature include:
To provide the ability to claim a static and human-readable identity on the blockchain. With a unique vanity account such as “Alice,” you have a more familiar and memorable means to organize your blockchain identities.
To enable key rotation. With a static account name like “Alice,” you can generate multiple private/public key pairs which are all controlled by the Alice account. The Alice account can even generate a new private/public key pair for every transaction. Should any single key pair become compromised, you can rotate that key out of use while maintaining the Alice account.
These two reasons make interacting with the blockchain easier and safer.
A third and final concept to understand is the Kadena Address, which is a concatenation of your Account Name + Chain ID + a checksum. Remember that the Kadena public blockchain network is comprised of many parallel chains braided together. In effect, each chain is a standalone blockchain, therefore you may have a different account balance on each chain.
In order for a transaction to be executed successfully, the sender must send funds to an account on a specified chain. The Kadena Account exists to satisfy these multiple requirements. Simply share your Kadena Address with the sender and they can complete a transaction using this single address.
Within Chainweaver you can add Notes beside any account in the Wallet section. This field is never seen by the blockchain, and only serves as a personal reference to organize a users many key pairs. Should you need to restore a wallet using your Recovery Phrase, the Notes field is not recoverable.
Add an account
Accounts can be added to your wallet in two main ways; Add Account (basic) and Create Vanity Account (advanced).
Add Account (basic): This is where your public key is also the name of your account.
To add an account, select “Add Account” from the tool bar in the Wallet section.
Fill in the requested fields; Chain ID and Notes
Select “Add New Account” and the new account will immediately be added to your wallet.
Create Vanity Account (advanced): This is where you choose a unique account name which will be different from the account’s public key.
To create a vanity account, select “Add Account” from the tool bar in the Wallet section.
Expand the Advanced section and select “Create Vanity Account”
Fill in the requested configuration fields (Chain ID, Account Name, and Notes).
Select “Next” and sign the transaction by granting the required capabilities.
Select “Create Vanity Account,” then monitor the transaction progress states until the transaction is confirmed. Only when the transaction is confirmed will the vanity account name become uniquely yours on the designated chain.
Delete an account
To delete an account, begin by selecting the triple-dot Details button in the desired account row to reveal Account Details.
Near the bottom of the Account Details dialog, select “Remove Account”
Read the warning message and confirm your selection by selecting “Permanently Remove Account”
In Kadena it is particularly important to recognize that all operations performed in the blockchain are executed as smart contracts. Even basic token transfers are calls to the coin contract which requires authorization to perform. Said another way, some account must grant the capability for the required operations to occur in order for the request to take effect. This notion of “granting capabilities” to perform specified operations is important to the Kadena blockchain.
Receive Kadena (KDA)
To receive KDA you must first share your Kadena Address with another person from whom you wish to receive a payment.
To access your Kadena Address, navigate to the Wallet section and select the “Receive” button beside the desired account row.
This will open the Receive dialog from which you can copy the Kadena Address and share with others.
One additional feature for experienced users in the ability to receive KDA from compatible accounts that were not generated within Chainweaver. You can access this feature from the Receive dialog by expanding the menu-field under the sub-section “Option 2: Transfer from non-Chainweaver Account.” Fill in the required fields to Submit Transfer.
Send Kadena (KDA)
Remember that the Kadena public blockchain network is comprised of many parallel chains braided together. As a result, there are two ways to send KDA: between the same chain and between different chains.
Send Kadena between accounts on the same chain
Navigate to the Wallet section and select the “Send” button beside the account row from which you would like to send funds.
This will open the Send dialog which is divided into two parts—Configuration and Sign:
Configure the transaction
Recipient: Enter the recipient’s Kadena Address and amount to send
Transaction Settings: Choose the transaction speed and expiration
Sign the transaction
Gas Payer: Select an account to sign and pay the transaction gas
Once all required fields have been entered, select the “Preview” button. Here you will be able to review and confirm details before submitting the transaction.
Send Kadena between accounts on different chains
This process has one distinct difference from transfers on the same chain. This time when you sign the transaction, you must select two Gas Payers:
Gas payer on the originating chain to initiate the transfer
Gas payer on the destination chain to redeem the transfer
It may seem unusual to have to pay for gas twice, but consider what is happening with a cross-chain transfer. In this scenario you are moving coins between two different blockchains, each with their own ledger. Therefore gas on one chain cannot pay for executing operations on a different chain.
Adjust gas price and gas limit
Before you submit any transaction or deploy any smart contract, you will have the opportunity to configure a few settings. You can adjust both the Gas Price and the Gas Limit of your transaction. As either of these settings are adjusted, you can see how these changes might affect Transaction Speed and Max Transaction Fee.
Note regarding fees: Chainweaver does not charge a fee to send or receive a transaction. All transaction fees go directly to miners as compensation for providing the compute power required to execute the operation.
Track your transaction
Once a transaction has been submitted, Chainweaver will display the Transaction Status as it moves through progress states. The average block time in the Kadena network is 30 seconds. So depending on the Transaction Speed you assigned, it may take several blocks before your transaction is successfully mined.
Transaction success: When the transaction has been successfully mined in a block, a Transaction Result will display.
Transaction failure: If the transaction fails at any progress state then a red “X” will appear beside the failing state.
The ability to write, deploy, and call smart contracts from within Chainweaver makes it one of the most comprehensive workbench tools for blockchain. Navigate to the Contracts section and utilize the integrated development environment (IDE) for developing and testing Pact smart contracts.
Pact is the safe and simple smart contract language used for interacting with the Kadena blockchain. Visit https://pactlang.org/ for developer tutorials covering key concepts and real projects you can deploy yourself.
Deploy your own smart contract
Once you have written the code for your new smart contract in the code editor, check the ENV tab of the tool panel on the right side for any error messages that might be displayed. Once you are satisfied with your code, you can either select “Load into REPL” or “Deploy.”
“Load into REPL” will execute the editor text within the local REPL environment so that you can test and interact with the contract
“Deploy” will begin the process of configuring the smart contract for execution on the blockchain
Should you select “Deploy,” you will next be prompted to designate the transaction destination and settings. On the “Sign” tab you must enter any new capabilities as defined in your contract code, then select the account to authorize each capability.
Once all required fields have been entered, select the “Preview” button. Here you will be able to review and confirm details before submitting the transaction.
Call an existing smart contract
Once a contract has been deployed, it will show up in the “Deployed Contracts” table under the “Module Explorer” tab of the Contracts tool panel. Contracts can be filtered by chain or through search.
Select “View” beside your chosen contract to reveal all of the available functions to call.
Select “Call” beside your chosen function to open a three-part dialog:
Parameters: enter the required parameters
Configuration: choose the transaction settings
Sign: grant the required capabilities
Preview the transaction, then select “Create Transaction” to execute the operation.
Interact with Dapps
As a user, interacting with dapps is simple. Chainweaver takes advantage of a novel wallet signing API which facilitates communication between dapps and wallets.
First ensure your Chainweaver desktop application is open. When you’re ready to start some transaction with a dapp, initiate the request by submitting the required information (e.g. account name) to the dapp.
Once a call has been made, by pressing a button on the dapp interface or through some other means, the signing API will ping Chainweaver. When Chainweaver receives an API call, a new dialog will appear within Chainweaver displaying input data from the dapp.
Review the transaction details and complete the flow as you would for any other transaction; configure settings, grant capabilities, preview and create.
SECURITY & ACCESS
Key pair generation
Kadena uses Ed25519 public/private key pair signatures. Chainweaver can be used to easily generate compatible key pairs. Alternatively, you can generate key pairs yourself by following any kind of Ed25519 key generation method such as this one contributed to our community GitHub.
Learn more about Ed25519 here.
Basic safety tips
As with any valuable assets, it is important to establish a secure and reliable method for controlling who has access to them. While Chainweaver is designed with high-security standards, the truth is your wallet is only as safe as the computer it resides on and the security practices you follow.
When you create a Chainweaver wallet, you will be provided with a 12-word recovery phrase. This recovery phrase is your master seed that generates all your wallet’s addresses and private keys. With this phrase, anyone can access your wallet’s funds.
Be sure to make more than one copy of your 12-word recovery phrase and to keep copies in separate locations to prevent a single point of failure from events like fires, loss, etc.
Further, consider using a password manager to generate a strong password. If you decide to create a password yourself, make sure it's not the same or similar to any other password you have ever used.
Kadena does not control any of your personal/private data on our servers. Never share passwords or recovery phrases with anyone, including the Kadena team. We will never ask for you to provide this. If someone claims that we do, insist on not sharing.
Who can access your account
Anyone with your wallet's password, private keys or recovery phrase can access your account. Passwords, private keys, and recovery phrases are in the users’ hands and are the users’ responsibility. Chainweaver is simply an interface that allows you to more easily interact with your account and the Kadena blockchain.
Lost password and/or recovery phrase
If you lose your password, you can reset it by using your 12-word recovery phrase to restore the wallet with a new password.
Lost both password and recovery phrase
If you lose both your password and recovery phrase, you will permanently lose access to any accounts and their funds forever.
Kadena does not manage accounts with information such as passwords, private keys, or recovery phrases. We only have access to the information that is publicly available on the blockchain. We do not have servers and we do not hold your assets.
Use a recovery phrase to restore your wallet
To begin the wallet restoration process, select the "Restore" button from the Chainweaver log-in screen. Follow the steps and enter your 12-word recovery phrase. Upon doing so you will be prompted to input a new password for your restored wallet.
Once you have unlocked the wallet, you will notice that no accounts appear yet in the Wallet section. You will have to re-add each account one at a time. This is possible to do without knowing your account keys because Chainweaver is a Hierarchical Deterministic (HD) wallet. This means that your wallet's key pairs will always be generated in the exact same order by using your 12-word recovery phrase as a master seed.
Now when you select the "Add Account" button it will generate the same first key pair that was generated when you initially generated accounts in this wallet before recovery. Repeat adding accounts as many times as necessary to restore them all.
The “Log out” button in the lower-left of the Section menu will lock your wallet. A locked wallet cannot sign transactions or receive signing API calls.
To find out about the latest improvements to Chainweaver, view all activity available at the open-source repository on GitHub here.
Kadena staff will never ask for sensitive information, including passwords, recovery phrases or private keys.
Beware of fake accounts and scam attempts.
Chainweaver will only communicate through verified channels.
Join our Discord server here and chat live with Kadena developers and the community on the #chainweaver channel