Welcome to the CRYT WIKI

How to


1 Basic Terms

The most important thing to understand about your CRYT account is that you create your CRYT account using a private key in the form of a passphrase.
This passphrase will generate your account address, so your passphrase is your account.
Unlike other crypto currencies, there is no wallet file like wallet.dat.
The account address is needed to view your account, the passphrase is needed to submit transactions.
If you type in a different passphrase, you will open up a different account.
If someone else types in your passphrase, they will access your account and get access to your CRYT.
So be very careful with your passphrase!

With that in mind, here's how to create a secure account:

2 Creating a CRYT account address

If not done already, first install the CRYT client software on your machine from Github , or use our Official Secure Software Online and start your CRYT software.
Once the CRYT client is running and the blockchain fully downloaded
(for local software).

2.1 Using a passphrase generated by the client

Click on the DON'T HAVE AN ACCOUNT? CLICK HERE TO CREATE ONE!
link at the bottom.

CRYTWallet create account.png

A strong passphrase made from 12 random words will automatically be generated for you.

CRYTWallet create passphrase.png

If you want to use this secret phrase generated by the software, write it down, copy it to a safe place or print a paper wallet (using the link on this dialog).
This is VERY IMPORTANT, since only this passphrase will give you access to your newly created account, and you can never recover it.
After that, press Next.
In the next page, you'll have to retype your secret passphrase to confirm you have it correct.
Then click Next again.

2.2 Using your own passphrase

If you want to use your own passphrase, be careful and make sure you are picking a strong, secure passphrase. Do not create a passphrase until you clearly understand account security.
If you do not appreciate how important this is, and make a mistake in this step, you will be robbed.

Simple passwords will be hacked and your coins will be stolen.
A passphrase at least 35 characters long, or made up of at least 12 random words is recommended.
For cryptographically strong passphrases use our secure generator from https://crytrex.com/create

VERY IMPORTANT:

  • Again, your passphrase is your account. Using a different passphrase will lead to a different account, so you can never change your passphrase.
  • There is no password recovery. If you lose your passphrase, you will lose access to your account.
  • Do not share your passphrase with anyone.
To generate your own passphrase click on the "Want to choose your own passphrase? Click here." link at the bottom.
Once you have generated a secure passphrase, type it into passphrase field inside of Create your account page.

CRYTWallet your own.png

Congratulations! Your account is created and you will see the CRYT Client interface.
Your new account address (starting with CRYT- ) appears in the upper left corner of the CRYT Client window.
Please record your account address, this will be where other people can send CRYT to you.

Any time later, to double check and verify, that you have noted down / stored the correct passphrase, you can click the "Validate Passphrase" button on the dashboard which appears before you fund your new account.
Other options include, log into the CRYT Client with that passphrase, then you can verify that it opens the correct account.
Or you can use the the Token Generator with any random text.
CRYTWallet new.png

3 Register your public key

Initially there will be Warning:"Your account does not have a public key! This means it's not as protected as other accounts.
You must make an outgoing transaction to fix this issue."

To receive your first transaction, the sender might also need to know your public key.
You can find it in the Dashboard of your client: 
Pubkey.png

 


1 Protect your account with a public key

When sending CRYT to a new account using the new account's address the resulting account is protected only by 64 bit account id which is somewhat weak and not by the 256 public key which provides ultimate protection.

The risk is that someone can brute force a passphrase that maps into the same account id so that both accounts are indistinguishable so that the attacker can spend the funds in this address.
More specifically, the reason why this one-time extra step is necessary is because the 8-byte account ID is much shorter than the 32-byte public key it is derived from.
There are many secret passphrase/public key pairs that reduce to the same account ID (2^192 keys). But once a particular public key is associated with an account ID by storing it in the blockchain, no other secret passphrase that generates a different public key can access that account.
To protect against this a simple step has to be taken to record the account public key in the blockchain.
Recording the public key in the blockchain protects against the attack described above.

1.1 Option 1 - submit an outgoing transaction from the new account

Any type of outgoing transaction will do, since the user is signing this transaction with his passphrase and by doing so records the public key in the blockchain.
This transaction can for example be sending NXT or sending a message.

Note: your account must contain enough CRYT to pay the transaction fee, so you have to fund it with some CRYT first.

1.2 Option 2 - another account can announce the public key of the new account to the blockchain

Any type of transaction in which the recipient is the new account will do.
The sender needs to specify the new account public key as the "recipientPublicKey" parameter for the transaction API or using the wallet "Recipient Public Key" field.

Public.key.PNG
To find your account public key, simply login to your account using your passphrase (not using your CRYT address).
If the account is not registered on the blockchain yet, the public key will be displayed on the dashboard.

For registered accounts you can find the public key by clicking on the "Account Balance" tile from the dashboard.
  1. Access your CRYT client (go to http://localhost:11112/ or http://127.0.0.1:11112 or use Official Software Online https://wallet.crytrex.com)
  2. Open your account by entering your secret passphrase in the text field, and then click on the > symbol.
  3. Click on the Send CRYT  link on the top navigation bar in the client window.
    • A popup labeled Send CRYT  appears.  Complete the fields as follows:
      • Recipient Account : enter the CRYT account of the receiver.
        • Once the account of the receiver is entered, a text field will appear at the bottom of the window telling you if the receiving account has a public key, and the current balance of the account. You can use this information to help verify that you've entered the correct account address.
      • Amount : enter the amount of CRYT you would like to send. If you are going to send a fractional amount (a number with decimals) remember to use a point ( . ) instead of a comma ( , ) before the decimal part of the amount.
      • Fee : Enter the number of CRYT you wish to use as transaction fee.  The software will suggest a fee of 0.01 CRYT, but you can set any amount for any transaction amount.
      • Deadline : enter a small number (1 hour is fine; the default is 24 hours).
      • Secret phrase : in order to send a transaction, you need to enter your account's secret passphrase.
  4. Click the Send CRYT  Button.
    • The Send CRYT  button will change to Submitting... while your transaction is being prepared.
    • In the upper right hand corner of your browser window, the message CRYT has been sent! will appear.

1.1 Create Alias

Go to 'Aliases' in your client.
First click on 'Register Alias' in the upper-right corner:
Here you can choose to use the alias for different purposes: By choosing 'Account', you can link to a NXT account.
If you choose 'URI' you can e.g. link any website with your alias. The third option 'Other' allows you to insert any text you like.
All aliases costs 2 CRYT
Please note, aliases are unique.
There can never be two aliases with the same name.
Aliases are not case sensitive.


Your new alias will now be listed in the 'Aliases' page.
You can either transfer your alias to any person for a 0.01 CRYT fee, or sell it to any person for a specific amount.

1.2 Edit Alias

You can at any time edit the content of the alias. Just click 'Edit' on the Alias tab.

Editing your Alias costs a 4 CRYT transaction fee.

1.3 Transfer Alias

Click 'Transfer' in the Alias panel and input the CRYT Account where you want to transfer your alias. Alias transfer fee is 0.01 CRYT.

1.4 Sell Alias

You can either sell the Alias to a specific CRYT Account or to the public.
Specific CRYT accounts will see an offer to buy the alias.
Sell alias to any specific Nxt account
Sell it by clicking on 'Sell'


You can cancel the sell offer anytime before the partner has accepted it.
To change the amount of the sell order, you can create a new sell order.

Sell alias to the public. This way every user can see your offer and buy it for the price you entered.
Input the price.

Every user can now buy your alias.
Both submitting a sell order and buying an alias incur a 0.01 CRYT transaction fee.

1.5 Buy public Alias

There is no way to browse all aliases up for sale within the CRYT network.
Just try to register the alias you want. If it has already been registered, but is up for sale, you can see the offer if you search for it.
There will be a direct offer once you try to register the alias:
Note: Messaging requires a node running CRYT version 1.20.00 or later.
  1. With your CRYT software running or using Official Software Online https://wallet.crytrex.com, click Send Message on Top menu
    • The CRYT "Messages" screen will appear
  2. Complete the form with the following entries:
    • Recipient: The account that will receive the message
    • Message:  The message you would like to send (up to 1000 characters)
      • Note: This message is transmitted in plain text. If you want to send it securely, you must encrypt it yourself, and make sure the recipient knows how to decrypt it.
    • Fee:  Expressed in CRYT. Enter the fee you are willing to pay for this transaction. The minimum fee is 0.01 CRYT.
    • Deadline:  Expressed in minutes.  Enter the number of minutes you are willing to wait before your order is automatically canceled by the network.
    • Secret phrase:  Your account passphrase.
  3. Click "Submit"
    • The server will respond with a transaction ID in the "server response" box, showing that the transaction has been created on the network.
    • When the transaction is confirmed, it will appear in the "transactions" block in your client interface with a "sent amount" equal to zero.
For additional information, see FAQ

1 Introduction

Each transaction in the CRYT blockchain is digitally signed to verify that someone who knows the secret passphrase of the originating account authorized the transaction.
For enhanced security, the CRYT client interface supports offline transaction signing, the purpose of which is to protect the secret passphrase from exposure to the Internet.
This guide documents the procedure involved and is based on CRYT software release 1.20.00.

2 Prerequisites

Two computer systems are required, both with Java and CRYT Reference Software installed:
  1. An online system with an updated blockchain for creating an unsigned transaction, and for later broadcasting the signed transaction to other nodes in the CRYT network.
    This system can be a local node or a remote public node accessed with only the public account ID, not the secret passphrase.
  2. An offline system without an Internet connection and no need for an updated blockchain, for signing the transaction using the secret passphrase.

3 Procedure

3.1 Create an Unsigned Transaction on the Online System

3.1.1 Prepare the Transaction

In the CRYT client, transactions are prepared using a pop-up (modal) entry form.
  • This form has a check box labeled Do Not Broadcast and if clicked another check box appears labeled Do Not Sign, as shown surrounded by red above.
  • If Do Not Sign is also clicked, the Passphrase field is disabled and shaded. If the public key of the account has not yet been submitted to the blockchain, a Public Key field appears just below the checkboxes.
    Providing the public key ensures that no other secret passphrase corresponding to the same account ID can be used to sign transactions for this account, once this new transaction is confirmed.
  • Check both boxes, then click Send CRYT  to create an unsigned transaction, which appears in a new pop-up window (modal) shown in the next section.

3.1.2 Raw Transaction Details

Sign transaction details.png
  • If a Signature is provided in the entry field at the bottom of the modal and the Broadcast button is clicked, the transaction will be signed and broadcast to the CRYT network.
  • The next step is to transfer the unsigned transaction to the offline system where a signature can be generated, using either the Unsigned Transaction Bytes or the corresponding Unsigned Bytes QR Code at the top of the modal, or the Unsigned Transaction JSON just below the QR code, as explained in the next section. The procedure varies depending upon which of these items is transferred.
  • If there is an encrypted message attached to the transaction, neither the transaction bytes and corresponding QR code nor the Signature field will appear because the message cannot be encrypted without the secret passphrase. In this case, the JSON form of the unsigned transaction, which contains the unencrypted message, must be used instead.
  • It is always possible to use the JSON form. The QR code is only available if the unsigned bytes form can be used, when there is no encrypted message attachment.

3.2 Transfer to the Offline System

To prepare the offline system for the transfer of the unsigned transaction:
  1. Start the CRYT software on the offline system, logging in with the secret passphrase if desired.
  2. Navigate to the Sign Transaction tab of the Transaction Operations pop-up entry form (modal) accessible from the drop-down Settings menu (the gear graphic on the right side of the header bar), as shown below:
Sign transaction sign.png
  • Choose one of the following transfer procedures:

3.2.1 Transfer using a USB Flash Drive

  1. Referring to the Raw Transaction Details pop-up window (modal) in the Raw Transaction Details section above, locate the small blue download graphic just to the right of Unsigned Transaction JSON then click on it to save the JSON to a file on the online hard disk. Alternatively, copy/paste the JSON into a new file.
  2. Copy the JSON file to a clean USB flash drive (memory stick) plugged into the online system.
  3. Unplug the USB flash drive from the online system then plug it into the offline system.
  4. Copy the JSON file from the USB flash drive to the offline hard disk.
  5. Referring to the Transaction Operations / Sign Transaction pop-up entry form in the Transfer to the Offline System section above, locate the small black upload graphic just to the right of Unsigned Transaction JSON then click on it to upload the JSON from the offline system hard disk. Alternatively, open the JSON file and copy/paste the contents into the Unsigned Transaction JSON field.

3.2.2 Transfer Using a QR Code

  1. Referring to the Raw Transaction Details pop-up entry form on the online system, shown in the Raw Transaction Details section, photograph the unsigned bytes QR code.
  2. Referring to the Transaction Operations / Sign Transaction pop-up entry form on the offline system, shown in the Transfer to the Offline System section, click on the graphic just to the right of Unsigned Transaction Bytes to activate the offline webcam. A live video image will appear just below the Unsigned Transaction Bytes field.
  3. Present the photograph of the QR code to the offline webcam so that it can scan in the QR code. Use the video image to position the QR code until it is recognized and scanned text appears in the Unsigned Transaction Bytes field.
  • The video image must have high resolution to recognize the QR code because the pattern contains small details — it represents a large amount of information.
  • It may be possible to scan the QR code directly from the video display of the online system, eliminating the need for an intermediary photograph. This is preferable because resolution is lost in the intermediate step.
  • If the QR code is not recognized, the Unsigned Transaction Bytes can be copied/pasted into a file on the online system, transfered to the offline system using a USB flash drive, then pasted into the Unsigned Transaction Bytes field on the offline system.

3.3 Sign the Transaction on the Offline System

  1. Refer to the Transaction Operations / Sign Transaction pop-up entry form in the Transfer to the Offline System section above, with the unsigned transaction entered into either the Unsigned Transaction Bytes field or the Unsigned transaction JSON field.
  2. Enter the secret Passphrase in the field provided, unless you logged in with your secret passphrase and checked Remember passphrase during session, in which case this field is absent.
  3. Do not check Validate unless the blockchain is updated, which is unlikely on the offline system, because there is no point in checking that the account balance is sufficient to support the transaction. The transaction was already validated when created and will be validated again when broadcast.
  4. Click on the blue Sign Transaction button in the lower right of the form. Three new items appear at the bottom of the form:
Sign transaction signed.png
  • Any one of the three new items Signature or its corresponding Transaction Signature QR code, or Transaction Signature JSON can be used on the online system to broadcast the transaction.
  • The next step is to transfer one of these items back to the online system, as explained in the next section. The procedure varies depending on which of these items is transferred.

3.4 Transfer back to the Online System

3.4.1 Transfer back using a USB Flash Drive

  1. Referring to the lower part of the Transaction Operations / Sign Transaction pop-up entry form in the Sign the Transaction on the Offline System section above, locate the small blue download graphic just to the right of Signed Transaction JSON then click on it to save the JSON to a file on the offline hard disk. Alternatively, copy/paste the JSON into a new file.
  2. Copy the JSON file to the USB flash drive still plugged into the offline system.
  3. Unplug the USB flash drive from the offline system then plug it into the online system.
  4. Copy the JSON file from the USB flash drive to the online hard disk.
  5. On the online system, navigate to the Broadcast Transaction tab of the Transaction Operations pop-up entry form (modal) accessible from the drop-down Settings menu (the gear graphic on the right side of the header bar), as shown below.
  6. Locate the small blue upload graphic just to the right of Signed Transaction JSON then click on it to upload the JSON from the online hard disk into the Signed Transaction JSON field. Alternatively, open the JSON file and copy/paste the JSON into this field.
Sign transaction broadcast.png

3.4.2 Transfer back using a QR Code

  1. Referring to the lower part of the Transaction Operations / Sign Transaction pop-up entry form on the offline system, shown in the Sign the Transaction on the Offline System section, photograph the Transaction Signature QR code.
  2. Referring to the Raw Transaction Details pop-up entry form on the online system, shown in the Raw Transaction Details section, click on the graphic just to the right of Signature to activate the online webcam. A live video image will appear just below the Signaturefield.
  3. Present the photograph of the QR code to the online webcam so that it can scan in the QR code. Use the video image to position the QR code until it is recognized and scanned text appears in the Signature field.
  • The video image must have high resolution to recognize the QR code because the pattern contains small details — it represents a large amount of information.
  • It may be possible to scan the QR code directly from the video display of the offline system, eliminating the need for an intermediary photograph. This is preferable because resolution is lost in the intermediate step.
  • If the QR code is not recognized, the Signature can be copied/pasted into a file on the offline system, transfered to the online system using a USB flash drive, then pasted into the Signature field on the online system.

3.5 Broadcast the Transaction on the Online System

The last step in the procedure is to click the blue Broadcast button on the online system.
  • If you transferred the signed transaction JSON back to the online system, the Broadcast button is in the lower right of the Transaction Operations / Broadcast Transaction pop-up entry form shown in the Transfer back using a USB Flash Drive section.
  • If you transferred the QR code of the signature back to the online system, the Broadcast button is in the lower right of the Raw Transaction Details pop-up entry form shown in the Raw Transaction Details section

One way to generate CRYT accounts for web site users

In order to integrate CRYT into sites where deposits and withdrawals are used and balances must be maintained, you may have to programmatically generate CRYT account numbers automatically.
  1. Generate a random, unique password for the user
  2. Calculate the public key derived from the passphrase using the nrs.encryption.js NRS.getPublicKey() function
  3. Send this API call using the calculated public key: http://localhost:11112/nxt?requestType=getAccountId&publicKey=PUBLIC_KEY
  4. Check to see if the generated account is a collision with an existing account by issuing this API call: http://localhost:11112/nxt?requestType=getAccountPublicKey&account=GENERATED_ACCOUNT_NUMBER
  5. Store the generated password and account number securely, and associate them with the the site user's local userID.

1 How long should my password be?

Ideally 30+ characters, with a mixture of uppercase and lowercase letters, digits and special symbols.
Longer passwords are stronger.
Less readable passwords with more varied character composition are also stronger.
The harder it is to describe your password, the stronger it is.

2 30 characters??!? Isn't that too much?

For most applications, yeah. But CRYT works differently.
In most other applications, an attacker can only try to break into one account at a time.
A smart attacker will not try passwords randomly. They will run through a prepared list of passwords and resulting hashes, hoping to find the one password that can access your account.
As technology improves and processing power increases, attackers can prepare larger and larger rainbow tables. The key to creating a safe password is to stay ahead of the processing curve, to avoid being simple enough to be included in rainbow tables and so escape easy discovery.

Most applications are such that an attacker can go after only one account at a time. Your bank, e-mail, and online shopping accounts are like this. For such applications, a password of 15 varied characters that don't form readable words or patterns is currently very safe, well beyond what attackers can feasibly include in their rainbow tables.

CRYT works differently. In order to have the convenience of accessing your account through just a single passphrase, without a login name or wallet file, it also allows an attacker to try ALL accounts at the same time and greatly increases their chances of success.
With everyone's account balance in the prize pot, the rewards become much higher, so there's compelling reason for them to focus a lot more resources on extending rainbow tables. It also means that someone else creating a new account, or trying to log into an existing account but mistyping their password, also behaves like an "attack"!.

Attackers haven't had much time to do this yet, so 15 highly varied characters are still safe. But technology and attacker attention and the number of CRYT users will continue to grow, and 15 characters may not remain safe for long.
Another consequence of the convenience is that passphrases can't be changed. If you don't want to constantly keep ahead of the curve by creating new accounts with stronger passphrases and moving your funds to them, a passphrase of 30+ characters is strongly recommended.

3 How do I make a very strong password?

Easy. Download Google's Awesome Password Generator : http://code.google.com/p/awesome-password-generator/. For CRYT, pick a password that is 50 characters in length. Seriously.
Write it down and type it in manually as ten blocks of five characters. Don't use the clipboard or cut and paste.
With CRYT, your biggest enemy is a keylogging virus. If you've got a large amount of CRYT, don't trust antivirus software.
If possible, isolate your CRYT dealings onto a spare old computer you have sanitized with a new install of your operating system, and don't surf the internet with it after you've sterilized it.

4 How do I make a strong, yet easy to remember, password?

Unreadable passphrases are inconvenient! But we can trade length for readability and still maintain password strength. And we can use personal experiences and knowledge to keep passphrases understandable for ourselves, yet varied for anyone trying to break in.
Here's an example of how to develop a strong passphrase. We'll improve it over multiple steps.

1. I'm using my daughter's birthday party as the idea for my passphrase. It starts as

Tammy'sbirthdayparty
2. A decent start. It's got an uppercase letter and a special character. But it's made up of mostly English words and not long enough. Let's improve it
Tammy's18thbirthdayBIGparty
3. more varied now. We still need more length. What was memorable about the party?
Tammy's18thbirthdayBIGpartyDroppedpresentinpool

47 characters, this is a good password! It's readable, but we've compensated with length.

4. If I want to be extra safe, I could try to think a little beyond the party

Tammy's18thbirthdayBIGpartyDroppedpresentinpoolCollegesoon:(3yearsislong
5. and/or replace common words with specific facts that only I know
Tammy's18thbirthdayBIGpartyDroppedknittedshibesweaterinpool
You shouldn't rely on memory alone for the password. Memory is quick to access, but also fallible. It's a good idea to write your password down and hide it in a safe place where only you can find.

5 Other Methods

The above is just an example, there are other ways to generate strong, yet readable passwords. It's important to choose a balance of security and ease of remembering/typing that you're comfortable with.
  • CRYT Generator  - Generate passwords with 70+ chars long with random! No computer programs are involved, so you don't have to worry about a hacked program stealing your generated password.

6 Quick Tips

6.1 Do

  • CRYT supports spaces in passphrases. Use them to make your passphrase more readable.

6.2 Don't

  • Avoid using phrases that you may have seen elsewhere, like "going to the moon". People who construct rainbow tables write programs to find and collect groups of words from all around the Internet, so despite their length, such phrases become no more effective than a single word.
  • Avoid seemingly random passwords that you can actually describe. For instance, qazwsxedcrfvtgb isn't random; if you're using a regular QWERTY keyboard, take a look at your keystrokes when you type that out. If you can easily describe it, you should assume that someone trying to break in has thought of the idea and will try it.

7 Use password managers

Password managers store your login information for all the websites you use and help you log into them automatically. They can generate unique random passwords for every site, so you don't have to use the same password on more than one site.
They encrypt your password database with one master password – the master password is the only one you have to remember.

Here are a couple of recommendation:

  • KeePass Password Safe Popular and free password manager, but it doesn't have auto backup option. Make sure you manually backup the encrypted database and keep the backup udated once you make changes to the your file.
  • Lastpass. Firefox/Chrome/IE plugin password manager. All your changes (and history of changes) are backed up on lastpass server. This might seem dangerous at first, but all the encryptions are done locally on your computer.
    The lasttpass server only sees the encrypted blob. Aside from having one very strong master password, you can also enable 2 factor authentication on lastpass.
See LastPass explained by Steve Gibson

8 Oh no, my password is too weak! What should I do?

The first thing to do is Don't Panic! If you haven't lost any CRYT yet, then you're still safe for the next few minutes, while you calmly create a new password.
Think about what kind of passphrase you'd like, and what kind of tradeoffs it'll involve:
Something easier to remember but long?
Something super safe but hard to type?

Then pick one of the options above that will create that kind of passphrases.
CRYT doesn't allow passphrases to be changed, so you'll have to create a new account and move your existing CRYT into it.
First, login with your new passphrase. This will automatically create a new account associated with it. Note your new account number, and copy it down somewhere.
Before you transfer your CRYT, you want to be absolutely sure that you've got the right account number.
So login again to your new account with your new passphrase, and check that you see the same account number you wrote down earlier.

Now that you're sure, you can safely transfer your nxt to your new account.

9 Advanced Considerations

In order to understand what phrases will likely be included in rainbow tables, we'll need to understand how an attacker thinks when they're constructing the table.
(This is where technical discussion and math should go. Maybe this section isn't necessary?)

Tutorials


0.1 Run CRYT Peer DigitalOcean


Step 1: Create New account here or Login if you have altready.
Step 2: Create new Droplet, on Create Droplets Page select:
Ubuntu, Plan Standard, 5$/mo and your preferred Datacenter Location then click "Create Droplet".
Step 3: After Droplet is create enter in the Console, details is sent to your e-mail and run following commands in order: >> sudo apt update
>> apt-get install default-jdk
>> git clone https://github.com/CryTrExcom/CRYT_Blockchain.git
>> sudo ufw allow 11111
>> cd CRYT_Blockchain
>> sh ./compile.sh
>> sh ./start.sh For Stop Node use
>> sh ./stop.sh Done! After Blockchain is complete your Node is Online. Thank You for Support CRYT Network for just 5$/Month

Open Api Node


For Open Api need also before start the node:
Step 1: After the command above, need to change admin password with:

>> cd conf
>> nano nxt.properties

Edit and save your password, now open port for API and Run node.

>> sudo ufw allow 11112
>> sh ./start.sh Open Node with API is now online!

Updating Node

For update node after source code update by Developers just need to do:

Stop the node if running:

>> sh ./stop.sh
>> git pull
>> sh ./start.sh

Node is updated and running!

0.2 Installing CRYT on Raspberry Pi


Raspbian and CRYT run very well on a Raspberry Pi. CPU usage is approximately ~15-20% with the web client open and an account unlocked. Without the web client open (still unlocked) it is less than ~10% most of the time (it occasionally peaks higher and MAY occasionally spike to full load). Memory usage is about 100MB
Once this software is installed on your Raspberry Pi, it will start automatically on boot. You can administer it using remote desktop from another PC.
This tutorial makes the following assumptions; adjust accordingly!
  • your installation PC's is running Windows and has an IP of 192.168.1.20
  • your network router's IP is 192.168.1.1

0.2.1 Basic Raspbian install guide

  1. download and install Raspbian
    • Download the Raspbian image from [HERE]
    • Download diskimager for windows [HERE].
    • Install image on an SD Card, and boot the Raspberry from the card. You should see a config menu.
      • Expand filesystem and change your password.
      • Enable boot to desktop.
      • Set internationalisation options (language, keyboard and timezone)
      • Under advanced options enable ssh and set a hostname like "rpi".
      • Reboot. Now you should see a desktop and the system is running

0.2.2 Update the system

  1. open the bash commandline (LXTerminal), type the following, and follow the instructions:
    • sudo apt-get upgrade
      sudo apt-get dist-upgrade

0.2.3 Install XRDP (RDP server)

  1. Open the bash commandline (LXTerminal) and type the following, and follow the instructions:
    • sudo apt-get install xrdp
      sudo apt-get upgrade xrdp
  2. Now you can use Microsoft Remote Desktop and work remote on the Raspberry.
    • In windows go to start -> open -> and type "mstsc"
    • Enter your Raspberry's address (192.168.1.10), connect and sign in with your password

0.2.4 Router/firewall port forwarding

  1. Make sure to forward TCP port 11111 (and 11112 for Open API) tcp on your network router to the IP your raspberry has (192.168.1.10)

0.2.5 Install CRYT Client

  1. Step by step guide to launch node.
    1. sudo apt-get install default-jdk
    2. git clone https://github.com/CryTrExcom/CRYT_Blockchain.git
    3. sudo ufw allow 11111
    4. sudo ufw allow 11112
    5. cd CRYT_Blockchain
    6. sh ./compile.sh
    7. sh ./start.sh
    1. First Launch take some time to build Blockchain Database and Download it.
    2. Now the raspberry should be able to load the CRYT software on boot

0.2.6 Stop script for the CRYT software

Stop the client on bash command line with the following command:
sudo bash CRYT_Blockchain/stop.sh or with  sh CRYT_Blockchain/stop.sh
Before reboot your Pi, you should use this script to prevent a blockchain error!
Now you can reboot the system with:
sudo reboot

0.2.7 Manually start forging with the CRYT client

To start forging you will need to be logged in with your web browser once.
  1. Open http://192.168.1.10:11112
  2. Unlock your account with your passphrase (unlocking an address takes a few seconds).
  3. If on the left side, next to the red dot, it says "Not forging", click it to start.
  4. Now you can close your browser. It will keep forging.

0.2.8 Having issues?

Check the FAQ and the "common problems and resolutions" on this page!

0.2.9 Remote administration with putty

You can manage your raspberry with the tool "putty" through a command line SSL connection. Download the tool from [HERE]

CRYT Features


1 What is Account Leasing


Account Leasing allows a user to lease its forging power to another account for a fixed period of time. This feature enables the creation of forging pools, where the forging power of multiple users is combined to increase the chance of generating a block. Account leasing is also relevant if a user wants to take part in the forging process without having to keep a node running 24/7.

2 How to lease your balance


1. Visit http://localhost:11112/ (or https://localhost:11112/ if you enabled SSL) and log in.
2. Click on more info under the tile showing your balance.
3. A window showing the details regarding your account will appear. Click the Account leasing tab.
4. Click lease your balance to another account.
5. The form allowing you to lease your balance will appear.
Fields to complete
RECIPIENT: address of the account you wish to lease your balance to.
PERIOD: for how long your balance will be leased. Expressed in blocks (1440 blocks is roughly 8h). Between 1440 and 65535. You cannot cancel a leasing once submitted.
FEE: fee you wish to pay. The minimum is 1 CRYT .
SECRET PHRASE: the passphrase of your account.
6. Click Lease Balance.

3 How does it work


When you lease your balance, you are essentially giving your forging power to another account. It is important to clarify certain points:
Your balance never leaves your account
  • Your funds are still on your account after you lease them. They are still available for use: you can spend them, receive more etc. The only thing given is your forging power, by consequence while your balance is leased, you will not be able to forge on your own.
  • If your funds vary, so will do your forging power. If you lease 1000 CRYT to a forging pool and the next day you spend half of them, you are now leasing only 500 CRYT .
  • This also means that the person you lease your balance to will not be able to do anything with your funds. They are still under your control.
You cannot cancel a lease
  • This is important, so make sure you keep this in mind when you set the leasing period. When the leasing period expires, the forging power will return to you automatically. Not before.
You have control over your funds, not the rewards of block generation
  • If you decide to lease your balance to a forging pool or a wealthy owner of CRYT , there is no guarantee you will be payed accordingly when (if) a block is generated. So, make sure you lease your forging power to someone you trust will pay your share.

4 Uses of account leasing


This feature introduces two main benefits.
Firstly, you no longer need to leave your node running 24/7 in order to take part on the forging process. You can lease your balance to someone that does.
NOTE: it is still highly suggested to run as many nodes as possible. It strengthens the stability and the security of the network.
Secondly, it allows the formation of forging pools where multiple users can combine their forging power to increase their chance of forging a block. Any CRYT forged is not automatically sent to your account, it's up to the pool owner what to do with it.

1 Description


Transmission of data messages up to 1000 bytes in length from any account to any other account.

2 Details


Arbitrary messages are limited only by length. Any string can be transmitted, using any data structure or form of data encryption. Encoding, decoding, linked messages, data structures, and more can be implemented by any application that uses the system.
The base implementation allows for the transmission of simple, unencrypted text messages between accounts, but since the messages are truly "arbitrary" the range of possible applications is vast. Secure messaging, torrent applications, voting systems, data storage systems and even simple distributed applications have been suggested.

1 Description


The Alias System feature of CRYT essentially allows one piece of text to be substituted for another, so that keywords or keyphrases can be used to represent other things – names, telephone numbers, physical addresses, web sites, account numbers, email addresses, product SKU codes... almost anything you can think of.
For example, you could ask CRYT to associate "search" with "www.google.com". Once this is done, all you have to do to get to Google is type "CRYT:search" into a CRYT-capable browser, and it will translate your request in one for "www.google.com".
Immediate applications are simple: you can create an easy-to-remember alias for your CRYT account number, for example. But since the Alias System is open-ended, it can be used to implement a decentralized DNS system, shopping cart applications, and more.
Creating aliases is
  1. A user sends a transaction that states "ThisText = ThatText"
  2. If the alias is to be changed, just send another transaction with a new definition. Only the account that created an alias can change it.

2 Details


The alias can be any string of latin-character numbers and letters. The address can be anything like:
  • "173.194.112.174" (an IPv4 address)
  • "2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d" (an IPv6 address)
  • "mydomain.com/secretpage.php?parameter=value" (a URI)
  • "johnsmith@matrix.com"
  • "tel:+44-20-8123-4567"
  • ...or even "bitcoin:1BTCorgHwCg6u2YSAWKgS17qUad6kHmtQW".
There are 2 main ways to use CRYT aliases without having to rely on third-party plugins for your browser:
  1. Server-side. A web server analyses the CRYT blockchain and replaces "CRYT-links" with corresponding addresses before sending HTML documents to users.
  2. Client-side. A web browser runs javascript code that connects to CRYT bootstrapping nodes and replaces "CRYT-links" with their addresses. This requires to embedding a small script which is executed in an "onload" event. The script will do all the work via CORS, JSON, or other techniques.

3 Alias Transfer/Sale


Aliases can be transferred for a 1 CRYT fee.
Alias can be sold to either specific CRYT Accounts or to the general public. To sell an alias, you can set the price to sell for every alias.

1 Description


This page covers the decentralized Asset Exchange. Before jumping into the details, we can start with an example that shows one of the possible uses of this feature.
In the words of BCNext:
I want to run a business. I issue an asset (let's call it CMSH tokens - CMSH). I set quantity of CMSH to 1000. I announce that I sell CMSH for 20 CRYT each and pay 5 CRYT monthly interest within next 6 months. I create an ask order -- 1000 CMSH for 20,000 CRYT .
You create a transaction that sends me 500 CRYT for 25 CMSH. It's up to you what to do with your 25 CMSH (you can place an ask order and sell them for 27 CRYT ) but each month I will check the blockchain to see who owns CMSH. And I will send 5 CRYT for each CMSH to those who owns them.

2 The Interface


With the server running, access the CRYT interface of your client by visiting http://localhost:11112/ (or https://localhost:11112/ if you have enabled SSL). On the sidebar, click the menu Asset Exchange, this will give you access to the following options:
Asset Exchange: This tab gives you access to the Asset Exchange itself. To observe an asset click the "Add asset" button and enter either the Asset ID or ID of the issuing account. Assets of your interest will be listed on the left. By selecting an asset, further information is provided: a description, buy and sell orders, the quantity etc.
My Assets: This page will list all the assets in your possession: both those issued by you and those you bought from the exchange.
Open Orders: Here is provided a list of all your orders, notably the assets you are either trying to sell or to buy. It also allows you to cancel them.
Issue Asset: A window will pop up allowing you to issue your own assets into the exchange.





2.1 Asset Exchange menu


By default, the Asset Exchange does not list any asset. You will have therefore to add the assets (using the Add Asset button) you are interested in, manually, yourself. For this purpose websites that rank the assets in meaningful ways (by volume, by number of trades etc) and that offer specific filters are starting to appear. If you find yourself in the page of an asset, a Bookmark this Asset button will appear that will allow you to keep track of it.
Note: you can only add assets to the list if you are using the browser in normal mode. If you are in incognito (or equivalent) then any added list will disappear once you close the browser window. In the future, more portable systems will be implemented.
This is the main menu for the Asset Exchange, it is fundamentally organized in two areas.
  • a list with all the assets you are tracking.
  • an interface that allows to interact with these assets.
If you own tokens for an asset, it will appear in yellow on the side list.
By selecting an asset, the interface area will automatically display the corresponding information. This includes the amount of tokens that have been created ("quantity"), how divisible is the token ("asset decimals"), a brief description of the asset, who created the asset ("account") and the asset identifier ("asset ID"). These informations are crucial, in fact the asset names are non-unique. What this means is that there can be multiple assets that have the same name.
The cost of issuing an asset (1000 CRYT ) should discourage people from spamming the exchange with assets whose only purpose is confusion and abuse. Without entering this worst-case scenario, it is reasonable to assume that perfectly legit users may create assets of the same name. Therefore a good degree of vigilance before buying is always beneficial.
In order to buy an asset, follow these simple steps:
1. select the asset from the list.
2. quantity: define how many tokens you are interested in buying.
3. price: set how much you are willing to pay.
ATTENTION: "price" refers to the cost of a unit of tokens. So, by entering 10, you are willing to pay 10 CRYT  per token.
4. fee: define the fee, the minimum is 1 CRYT .
5. press buy.
6. it will ask you for your passphrase and finally press buy asset.

2.2 My Assets menu


In this menu all your confirmed assets will be displayed, this includes the assets you issued and those you obtained through trading.
Assets are also transferable, the procedure is very simple:
  1. Under My Assets, find the asset you wish to transfer.
  2. Click transfer.
  3. Complete the fields as follows.
RECIPIENT: the account you wish to transfer the assets to.
Constraints:
Mandatory: this field is mandatory.
COMMENT: you can attach a brief commentary to the transfer.
Constraints:
Optional: this field is optional.
Characters allowed: it can contain any Unicode characters but should be URL-encoded. Maximum length of 1000 characters.
QUANTITY: specify the amount of assets you wish to transfer.
Constraints:
Mandatory: this field is mandatory.
Limits: there is no upper limit, you can transfer all your assets. The minimum amount you can transfer depends on the nature of the asset. In particular it depends on what has been defined as decimals. For 0 decimals, the minimum would be 1 token. For 1 decimal, it would be 0.1 tokens and so on.
FEE: set the fee you are willing to pay for the transaction.
Constraints:
Mandatory: this field is mandatory.
Limits: there is no upper limit. However the minimum fee is 1 CRYT .
DEADLINE: set how long you are willing to wait before the request gets automatically deleted.
Constraints:
Mandatory: this field is mandatory.
Expressed in hours
SECRET PASSPHRASE: enter your passphrase.
Constraints:
Mandatory: this field is mandatory.

2.3 Open Orders menu


Under this menu you can see all your orders that are currently open.
What to keep in mind:
  • You can cancel any order you made. However
    • The process is not instantaneous. Your cancel order is broadcasted to the network, it may happen that your order gets accepted before you can manage to cancel it.
    • The process of canceling an order is a transaction, meaning it involves a fee of 1 CRYT .
    • An order in the process of being canceled will appear in red under your Open Orders menu.
  • Therefore, before canceling an order make sure you are canceling the right item!

2.4 Issue Asset menu


Under this menu, you can issue assets yourself. These will be publicly available on the Asset Exchange where they can be traded for CRYT and vice-versa.
The following window will pop up:
NOTE: as the warning mentions, when you issue your asset you will not be able to modify any of the fields, ever. Reason why it is imperative to make sure all the information entered is correct.
ASSET NAME: the name of the asset you intend to issue. This is also the name announced to other traders, allowing them to find this asset.
Constraints:
Mandatory: you cannot issue an unnamed asset.
Names are non-unique: multiple assets can be issued with the same name.
Note: for this reason, pay attention to what you are buying or selling!
Length: between 3 and 10 characters.
Characters allowed: uppercase letters, lowercase letters and numbers.
DESCRIPTION: in this field you can briefly describe the asset being issued.
Constraints:
Mandatory: this field is mandatory.
Characters allowed: it can contain any Unicode characters but should be URL-encoded. Maximum length of 1000 characters.
QUANTITY: specify how many tokens you intend to create.
Constraints:
Mandatory: this field is mandatory.
Must be a whole number
DECIMALS: this field defines the divisibility of the token. As an example, by defining 2 decimals, the minimum amount of tokens you can sell or buy is 0.01.
Constraints:
Mandatory: this field is mandatory.
Limits: you can set from 0 to, at most, 8 decimals. The latter corresponds to the minimum of 0.00000001 tokens.
FEE: define the fee related to issuing the asset. To avoid spam on the Asset Exchange, 1000 CRYT are the minimum required to issue an asset.
Constraints:
Mandatory: this field is mandatory.
DEADLINE: how long you are willing to wait before the request gets automatically deleted.
Constraints:
Mandatory: this field is mandatory.
Expressed in hours
PASSPHRASE: the asset belongs to the person issuing it. Therefore it is required to enter your own passphrase. It will not be broadcasted.
Note: assets belong to the person that creates them, but they can be bought, sold and transfered.
Constraints:
Mandatory: this field is mandatory.

1 Introduction


Coin Shuffling is a privacy feature which enables users to mix their funds quickly and efficiently with other users' funds by creating a random mapping between the existing user accounts and a new recipient accounts provided by the users.
This guide describes the Coin Shuffling feature.

2 Shuffling Menu


Coin Shuffling is accessed by clicking on Shuffling in the left-pane menu area of the CRYT Client Interface, causing a submenu to appear:
Shuffling: This item expands or contracts the submenu below and opens the Active Shufflings page which lists the active shufflings.
Active Shufflings: This item displays a list of all Active Shufflings.
My Shufflings: This item displays all the shufflings in which the current account participates.
Create Shuffling: This item opens a pop-up entry form for creating a new shuffling as described in Create Shuffling.

2.1 Active Shufflings Page


  • Shuffling clicking on a shuffling link in the Shuffling column opens a detail pop-up which displays details about the shuffling state and the list of senders and recipients in case the shuffling is complete.
  • Stage displays the current stage of the shuffling process.
  • Holding shows the type of holding used for shuffling asset, currency or CRYT .
  • Amount is the common amount to shuffle specified in the holding unit.
  • Blocks Remaining is the number of blocks until shuffling is cancelled unless the required information necessary for the shuffling to advance to the next stage is provided.
  • Participants shows the existing number of shuffling registrants and the number of required registrants in order for shuffling processing to begin.
  • Assignee represents account who last updated the shuffling or the account which needs to specify the next piece of data.
  • Status displays 'join' in case the user is still not registered for the shuffling or the shuffler status in case the user has registered.

2.2 My Shufflings Page


  • First columns are similar to the active shufflings page.
  • The ShufflerRecipient and State columns represent the status of the Shuffler component which manages the shuffling process for the current account and shuffling.

2.3 Create Shuffling Modal


  • Create a new Shuffling.
  • Holding Type is the token used by the shuffling. CRYT, Asset id or Currency name.
  • Amount the common amount used by all shuffling participants, specified in the holding token.
  • Register Until shuffling registration deadline. If required number of participants do not register by this block height the shuffling is cancelled and all funds are returned without fine.
  • Participant Count number of registrants required to trigger the shuffling. Between 3 and 30.

2.4 Start Shuffler Modal


  • Start the shuffler process on the current node to coordinate the shuffling
  • Recipient Passphrase the passphrase of the recipient account for your shuffling participant. Do not lose this passphrase since it is the passphrase to your shuffled funds.
  • Recipient Account account id derived from the recipient passphrase (read only field).

3 Technical Background


Coin Shuffling is a privacy feature which enables users to mix their funds quickly and efficiently with other users' funds by creating a random mapping between the existing user accounts and a new recipient accounts provided by the users.
This feature is based on the on the academic paper  which is also the source of the feature name.
Overview:
The implementation of the feature is based on the CRYT blockchain, this eliminates some of the manual steps and trust issues of existing 3rd party mixing solutions. The client wallet provides user interface for users to monitor and coordinate their actions during the shuffling process.
Shuffling can be performed using CRYT , assets or currencies as specified by the creator of the shuffling.
Any account can create a new shuffling, specifying the holding to be shuffled, the shuffle amount, number of participants required, and registration deadline.
This is done using the shufflingCreate API. The subsequent shuffling steps can be performed manually, by using the shufflingRegister (for accounts other than the creator), shufflingProcess and shufflingVerify or shufflingCancel APIs.
However, due to the complexity of the process and the difficulty to predict the timing in which actions should be submitted, it is impractical to manage a shuffling manually. Therefore shuffling is managed by an automated component called "Shuffler", using the startShuffler API.
Once started, the Shuffler monitors the blockchain state for transactions relevant to the specified shuffle, and automatically submits the required transactions on behalf of the user, performing shuffle processing, verification, or cancellation as needed. To do this, the Shuffler is required to keep the users' secret phrase in memory, same as when forging. And just like with forging, restart or a crash of the node requires restarting the shuffler manually. The shuffler remains running for 720 blocks after a shuffling either completes successfully or cancelled to make sure it is still active in case of an (unlikely) blockchain reorder.
There is a single shuffler per node/shuffling/participant combination. A single node can run up to 100 shufflers concurrently for various shufflings and participants.
To participate in a shuffling, a deposit of 1000 CRYT is needed, in addition to the amount of currency or asset being shuffled or if shuffling CRYT , the amount of the shuffle must exceed this 1000 CRYT minimum.
When a shuffling completes successfully, this amount is added to the recipient account balance, to allow it to send outgoing transactions (as it is required that only new, unused accounts are specified as recipients). In case the shuffling fails due to a registered participant failing to participate as required, or intentionally submitting false data, the participant responsible for the shuffle cancellation is penalized by sending this security deposit to the forgers of the shuffle finish block and the previous three blocks. If a shuffling is cancelled because the required number of participants is not met, nobody is penalized and all deposits are refunded. On testnet, the deposit and penalty is only 7 CRYT .
After shuffling registration is complete, participants must submit processing data within a 100 blocks period each (10 blocks on testnet). For the verification and blame phase, the total allowance for all participants is 100 + numberOfParticipants blocks (again reduced to 10 + numberOfParticipants blocks on testnet). Full blocks are not counted towards the limit. If at any stage the deadline is reached without some participant submitting the next required transaction, the shuffling is cancelled and this participant loses it's security deposit of 1000 CRYT . This process is managed by the shuffler. It is therefore critical that after registering for a shuffling, the shuffler started, is left running until the shuffling successful completion. In case the node must be restarted, all previously running shufflers must be started manually.
Query APIs to retrieve currently running shufflers, shufflings, and shuffling participants are: getAllShufflings, getAccountShufflings, getAssignedShufflings, getHoldingShufflings, getShufflers, getShuffling, and getShufflingParticipants.
Finished shufflings can be automatically deleted from the database in case the nxt.deleteFinishedShufflings property is set to true (default is false).
The fee for creating a shuffling or registering in one is 1 CRYT, for the shuffling process or shuffling cancel transactions 10 CRYT, and for the verify transaction 1 CRYT.

3.1 Warnings


1. The recipient account of the shuffling participant must be a newly created account. Participants should take great care to create a strong passphrase for the recipient account and save this passphrase for later Failing to so will result in your funds being lost or stolen.
2. Once an account creates a shuffling or registers as participant in one, **the node used by this account must remain online and the shuffler must remain active.** The state of the shuffler can be monitored using the "My Shufflings" page. In case your node is restarted, make sure to start all shufflers related to the active shufflings in which your account participates.

2 Data Cloud System Menu


The Data Cloud System is accessed by clicking on Data Cloud in the left-pane menu area of the CRYT Client Interface, causing a submenu to appear:
Search: This item does not react. It solely refers to the two types of searches present on top of the Data Cloud main screen.
File Upload: This item displays a modal popup dialog, discussed in detail File upload basic and File upload advanced

2.1 Buttons upper right


Reset: This button restores the Data Cloud main screen, discarding any paging done by the user by hand in the bottom of the screen. No data is involved or lost.
File Upload: This item displays a modal popup dialog, discussed in detail File upload basic and File upload advanced

2.2 Tag Cloud


Voorbeeld: CRYTtycoin [8]  
The number between brackets represents the number of Data Elements that have been tagged with that specific tag
These are all links, but when you click on them, they appear to be a tag cloud that only filters the 'hits' in the list below. The tags in the cloud are have been gathered through the historical use of the FileUpload modal dialog.

2.4 File upload


The toggle between basic and advanced upload is located at the bottom left end of the popup modal dialog called Upload Data

2.4.1 Basic file upload

Name: This could be any given name. Does not need the correspond with the actual uploaded filename.
Description: Possibility to provide some background; e.g. the reason to add this item to the Data Cloud, it's status and perceived value.
Tags: Supply up tot 5 comma separated tags. Their purpose is to index the data cloud and make it efficiently searchable.
Channel: Each tagged data can now also have a channel field. You can filter the search results by channel, has been added to retrieve tagged data by channel, optionally filtered by account too.
File: Upload button, no restriction of file type or extension. File upload is a mandatory field.
Fee: Free input field in round numbers. Even negative number can be submitted, but will result in an error. The calculate button will calculate the minimum fee for you dependent of the file size you intend to upload.
Passphrase: the passphrase matching the account

2.4.2 Advanced file upload

Deadline (hrs): <what is it, why should I use it and what is the result>
WARNING: Warning! Transaction type not safe for phasing/approval. This means <fill out>

2.4.3 General button in the bottom part of the modal dialog form

Referenced Transaction Hash: <what is it, why should I use it and what is the result>
Do not broadcast: Check the box to NOT broadcast the uploaded data to the network
Add Note to Self: Self means <fill out>, the Note explains the operation for later use, max. <number> characters.

2.5 Button bar


This paragraph explains in which use case should you use which button(s).
2.5.1 NO FURTHER APPROVAL
All others contain at least ...
2.5.2 FINISH HEIGHT
Transactions will only be executed if approved before the finish height.
<Finish height: what is the purpose of this option, how to use this and what does it enforce (what are the possible outcomes)>
Estimation when block height entered will be reached
<What is the purpose of the estimate, how is this value entered by a user used in the calculation / process. Open the black box please :-) >
Handy tool: calibrate block height to current height.

2.5.3 HASHED SECRET & Approval before blockheight

<what exactly is a hashed secret? Is it a secret that will be hashed by the logic behind the form or is it a hash that contains the secret?>

2.5.4 TRANSACTION HASH & Approval before blockheight

The full transaction hash of the previous transaction at stake can be obtained <here link>

2.5.5 TRANSACTION HASH & Approval before blockheight

The full transaction hash of the previous transaction at stake can be obtained <here link>

2.5.6 MULTISIGN TOTAL STAKE CURRENCY & Approval before blockheight

Currency Units
Finish Height
Currency
Code
ID: -
Accounts (Whitelist)
Account
Add Account
Min Balance Type

2.5.7 MULTISIGN TOTAL STAKE ASSETS & Approval before blockheight

Asset quantity
Finish Height
Asset : ID of an asset
Accounts (Whitelist)
Account
Add Account
Min Balance Type

2.5.8 MULTISIGN TOTAL STAKE OF CRYT & Approval before blockheight

Finish Height

2.5.9 MULTISIGN NUMBER OF ACCOUNTS & Approval before blockheight

Finish Height

2.5.10 DEFERRED

Finish Height

2.6 Main list middle to bottom of screen


This 15 items paged list contains the following columns:
Name: Given name in the Data Upload field
Account: CRYT account of the owner of the uploaded data
Mime Type: The Mime Type will automatically be retrieved from the uploaded file
Channel: Each tagged data can now also have a channel field. You can filter the search results by channel, has been added to retrieve tagged data by channel, optionally filtered by account too.
Filename: The original name as selected in the File Upload modal dialog.
Data: The uploaded data can be downloaded. Only txt files can be viewed directly.

2.7 Pager


The pager show a fixed number of fifteen Data Cloud items in the list. The pager can be reset by the Reset Button in the upper right corner to the first page.

1 Description


The CRYT Marketplace is an open decentralized store for all digital goods. You may sell or purchase software, music, video or any other kind of digital good here. In a way, it’s like purchasing an electronic product from Amazon or eBay, you browse the available products, you place an order and the seller will send you information of how to download the good (usually a link) inside CRYT system.

2 Accessing the CRYT Marketplace


In order to use Marketplace you must be running CRYT client version 1.20.00 or later.

3 Quick guides


3.1 Buying on the Marketplace


Ok, so you don’t want to read the whole manual just to buy something on the DGS. Here’s a short description with the most essential info on how to do it:
  1. Click the menu ‘Marketplace’ and then ‘Newest Products’, you will now see a list of goods that are for sale.
  2. When you’ve found the product you wish to purchase, click the name and in the pop up, enter quantity, delivery deadline (how long you are willing to wait for seller to deliver until the transaction is cancelled), note (optional) and your passphrase. Double check the price and then hit the purchase button.
  3. The order has now been placed in the “purchased products” menu, and here you can see the order status.
  4. When the seller has delivered the good, it will show as “Order Status: Complete”.
  5. Click the name, and in the pop up window, enter your passphrase and press ‘decypt’ to see the message from the seller.
  6. The message should contain information on where you can fetch your digital good, congratulations!
You now have the option of leaving feedback to the seller (it is private, i.e. only the seller will be able to see it). Press the “give feedback” button, enter your feedback and your passphrase and hit ‘submit feedback’ and you’re all done!

3.2 Selling on the Marketplace


Here’s a short description with the most essential info on how to sell a digital good:
  1. Click the menu ‘Marketplace’ and then ‘List Product For Sale’.
  2. In the pop up window, enter a name, description, tags (optional), price (per good), quantity of goods available and passphrase. Then hit the ‘put for sale’ button.
  3. After your listing has been included in a block (usually happens after 1-2 minutes), it will show up in the ‘Newest Products’ menu. Now all you need to do is wait for buyers.
  4. When someone has placed an order to buy a good from you, it will show up in the ‘My Pending Orders’ menu. Go here and press the ‘deliver goods’ button.
  5. In the pop up window, enter your passphrase to decrypt the message from the buyer. Then enter details on how the buyer can download your digital good in the data field, enter discount (optional) and your passphrase. Last, hit the ‘deliver purchase’ button to finalize the purchase.
  6. You can now see the completed order in the ‘My Completed Orders’ menu. Here you can see if the buyer has sent you feedback and you may also refund purchase.

4 The Interface


With the server running, access the CRYT interface of your client by visiting http://localhost:11112/ (or https://localhost:11112/ if you have enabled SSL). On the sidebar, click the menu Marketplace, this will give you access to the following options:
Newest Products: Here you can browse, search and buy products in the marketplace. If you are looking to purchase a digital good, this is the right place!
Purchased Products: This page will list all your previously purchased products.
My Products For Sale: Lists the items you are selling in the marketplace, and gives you the ability to update some properties of your sales.
My Pending Orders: Here you will see pending orders from users who wants to buy your digital goods.
My Completed Orders: Shows all orders which has been delivered and if you got feedback from your customer.
List Product For Sale: A window will pop up allowing you to list a new digital good in the marketplace.
 

5 Newest Products menu


All digital goods are listed in date order, showing the newest entry first. Every entry has a Name, Price, Description, as well as a Seller account and a product id. Optionally, an entry might also have a tag, which is keyword(s) to help describe what kind of product that is being listed.
By clicking on the name, you will be able to purchase the item on the market.
Quantity: The number of items you wish to purchase, mandatory field. When updating the quantity the price will automatically be updated to reflect the total cost.
Delivery Deadline: How long (hours) you are willing to wait before the purchase gets automatically deleted unless the seller has delivered the good, mandatory field.
Note: A free text field, which only the seller will be able to read since it will be encrypted, optional field.
Passphrase: Enter your passphrase, mandatory field.

When you are done with your purchase, the money you’ve paid will be held in escrow by the CRYT blockchain until either the seller has delivered the good and the seller gets the money or the delivery deadline has passed, which will refund the money to you.


6 Purchased Products menu


This section will show all your previous purchases, including those who are completed and those who are in progress.

Order Date: Date when you submitted the purchase.
Order status:
  • Tentative, the transaction is unconfirmed (not yet included in a block).
  • Pending, it is included in a block, but the seller has not yet delivered.
  • Complete, the seller has delivered the good.
Delivery Deadline: If the seller has not delivered the good by this date, the purchase will be cancelled (only shown when order status is not complete).
Price: The price you paid for the good(s).
Quantity: The number of items you purchased.
Feedback: Indicates if you sent feedback or not (only shown when order status is complete, and you sent feedback).


7 My Products For Sale menu


The items you are currently selling will be shown on this page. Here you can also change the price or quantity of any product or delete the product entirely from the marketplace. 
In order to change the price of a product, click the ‘Change price’ button, and you will see a pop up window where you specify new price (mandatory) and passphrase (mandatory). Once you hit ‘change price’ – button it will be submitted.

Change quantity works the same way as change price, specify new quantity (mandatory) and passphrase (mandatory) and hit ‘change quantity’ and your update will be submitted.
Delete is even simpler, as it only requires your passphrase (mandatory). Once you hit ‘delete my item’ it will be removed from the ‘newest products’ menu option.

8 My Pending Orders menu


Once a user buys one of your goods, and the order is pending, you will see that buy order under this menu item. Each pending order includes information about the product you are selling:
Order Date: the date and time when the buyer placed the order.
Delivery Deadline: the date and time when the order will be automatically cancelled it not delivered.
Price: The price per good, multiply with quantity if you want the total sum.
Quantity: The quantity of products that have been ordered.
Buyer: The address to the buyer, click here to see details of the user’s transactions, assets, etc.
Product Id: The product you are selling.
By clicking ‘Deliver Goods’, you will be shown a pop up window where you should enter details on how your customer can fetch or download the digital good you are selling. 

Data: Free text that will be sent to the buyer (mandatory)
Discount: Here may give the buyer a discount (optional)
Passphrase: Your passphrase (mandatory) to create the delivery.
 

9 My Completed Orders menu


As a seller, this is where you will find all previously completed orders.
Order Date: the date and time when the buyer placed the order.
Order Status: Will always be “complete” on this page.
Price: The price per good, multiply with quantity if you want the total sum.
Quantity: The quantity of products that have been ordered.
Feedback: Indicates if you have received feedback from the buyer (only shown when you recieved feedback).
Seller: Will always be ‘You’ and a link to your CRYT account.
Product Id: The product you’ve sold.



And if you click the on a order, you will see a pop up window where you get to see the 'Deliver Goods' message you sent earlier, as well as feedback from the customer, if the customer has sent any.

10 List Product For Sale menu


If you want to sell a product on the marketplace, this is the first menu item you should visit. By clicking here you will be presented a pop up window where you get to specify details about the product you are selling. Once you are done, it will be shown at the top in the ‘Newest Products’.
Name: The name of the product (mandatory).
Description: Here you can enter more details about the product (mandatory), maybe add a link to a website where you present the product in full detail.
Tags: Enter up to 3 comma separated tags (optional). A tag is a keyword that help describe what kind of product that is being listed.
Price: The price in CRYT you want to sell each good for (mandatory).
Quantity: The number of goods you have in stock. This will decrease every time a buyer buys from you.
Passphrase: Your passphrase (mandatory) to list the product.

1 Introduction


The CRYT Monetary System features a special asset class currency secured by the CRYT network and blockchain. Virtual currencies with a variety of customizable properties can be created in minutes without the need for specialized hardware or a preexisting user base.
This guide describes the Monetary System, active on the Mainnet.

2 Monetary System Menu


The Monetary System is accessed by clicking on Monetary System in the left-pane menu area of the CRYT Client Interface, causing a submenu to appear:
Monetary System: This item expands or contracts the submenu below and opens the Exchange Booth screen, where exchangeable currencies can be traded.
Currencies: This item displays a list of all currencies and their properties as shown in the All Currencies Screen.
Exchange History: This item displays completed exchanges (trades) associated with the logged-in account.
Issue Currency: This item opens a pop-up entry form for issuing or re-issuing a currency as described in Issue a Currency.
 

2.1 All Currencies Screen


  • The currency list is in order of most recently issued currencies.
  • The currency list can be restricted by entering a Code/Name search pattern in the Search Currencies field at the top. The search pattern is case-insensitive and can include the wildcards * and ?.
  • Clicking on a currency code in the Code column opens a detail pop-up window which includes a Currency Distribution link to a list of holders of the currency.
  • Hovering over the symbols in the Type column reveals the Currency Types.
  • The Current Supply is reduced when a reservable currency is claimed or increased when a mintable currency is minted.
  • The Max Supply is the total supply of currency upon issuance for non-mintable currencies or the maximum supply of currency that can be achieved by minting.
  • Clicking on a highlighted button in the Actions column opens the Exchange Booth screen or a pop-up entry form to reserve the currency, when applicable.
  • Clicking on My Currencies in the upper right corner restricts the list to those currencies owned by the logged-in account as shown in the My Currencies Screen.

2.2 My Currencies Screen


  • Clicking on a Transfer button opens the Transfer Currency pop-up entry form.
  • Clicking on a highlighted Offer button opens the Publish Exchange Offer pop-up entry form, when applicable.
  • Clicking on a highlighted Claim button opens the Claim Currency pop-up entry form, when applicable.
  • Clicking on All Currencies in the upper right corner returns to the All Currencies Screen

3 Issue a Currency


To issue or reissue a currency, click on Issue Currency on the Menu. A pop-up entry form appears:
This entry form provides a few tips (by clicking on the green question marks), but some constraints on the fields are implied and only clarified through error messages that appear near the top of the form when improper values are specified. To minimize errors, follow these guidelines:
CURRENCY NAME: The name must be unique, three to ten characters long and longer than the currency code.
CURRENCY CODE: The code must be unique and composed of three to five upper case letters.
TYPE: Check the desired combination of currency types, subject these restrictions: Reservable requires exchangeable and/or claimable, as does controllable; but mintable requires exchangeableClaimable requires reservable, non-mintable and zero initial supply. Refer to Currency Types below for more detail.
TOTAL SUPPLY: The total supply must equal the initial supply unless the currency is mintable or reservable. If mintable, the total supply is the maximum supply that can be achieved through minting. The total supply of a reservable currency is set at issuance to the reserve supply (entered as UNITS TO RESERVE in the reservable section of the form) and must be greater than the initial supply.
INITIAL SUPPLY: The supply of a mintable currency increases through the minting process; the initial supply (if any) is held by the issuer. The initial supply (if any) of a reservable currency is held by the issuer; but the initial supply of a claimable reservable currency must be zero.
DECIMALS: The number of allowed decimal places can be from zero to eight, but to avoid client rounding errors in rate calculations, it is recommended that a maximum of four decimal places be used.
ISSUANCE HEIGHT: This applies only to reservable currencies, and must be a blockchain height greater than the current value. Otherwise it must be zero.
FEE: The fee automatically adjusts to the number of letters in the currency code: 25000 CRYT for three-letter codes, 1000 CRYT for four-letter codes and 40 CRYT for five-letter codes. The fee to reissue a currency is always 40 CRYT, but for thee- and four-letter codes the displayed fee must manually be overridden by clicking on advanced.

3.1 Currency Types


Following are further details about the six currency types:

3.1.1 Exchangeable

Exchangeable currencies can be traded for the CRYT currency in the Exchange Booth of the CRYT client, which operates differently than the Asset Exchange. A currency owner can publish a combined buy/sell offer pair with an expiration block height and quantity limits. Only one active offer per account is permitted. Requests to buy or sell offered currency can submitted by anyone. These exchange requests are executed immediately (fully or partially) or not at all if no matching offers are found.

3.1.2 Controllable

Controllable currencies can only be transferred to and from the issuing account, and if also exchangeable only the issuing account can publish offers.

3.1.3 Reservable

If Reservable is checked, two extra fields appear:
UNITS TO RESERVE: This is the total amount of the currency to reserve, the reserve supply. It will become the total currency supply when the issuance height is reached, unless the minimum amount below is not achieved by then. It must therefore equal TOTAL SUPPLY and be greater than INITIAL SUPPLY.
MINIMUM AMOUNT OF CRYT PER WHOLE UNIT NEEDED TO ACTIVATE CURRENCY: Assuming the currency code COIN, this is the minimum amount of CRYT per COIN needed to back the currency. For example, if the reserve supply is set to 1000 COIN and the minimum amount per reserve unit is 0.2, then at least a combined 200 CRYT must be pledged by supporters to back the COIN currency before the issuance height. If this minimum requirement is met or exceeded in time, each pledged supporter becomes a founder and receives a portion of the difference between the initial supply and the reserve (now total) supply of the COIN currency. If the minimum is not met in time, the currency will be deleted and all pledged CRYT will be unlocked and returned to supporters. If the minimum is met or exceeded, all pledged CRYT will either remain locked until claimed if claimable or be transfered to the issuer otherwise.

3.1.4 Claimable

Claimable currencies are reservable currencies that allow the locked CRYT reserves that back them to be claimed, meaning that a current holder of a claimable currency can exchange it for the locked CRYT that backs it, in doing so reducing the Current Supply shown on the All Currencies Screen.

3.1.5 Mintable

If Mintable is checked, three extra fields appear:
MINIMUM DIFFICULTY: The minimum difficulty (minimum 1).
MAXIMUM DIFFICULTY: The maximum difficulty (maximum 255 and greater than the minimum).
ALGORITHM: The hashing algorithm to use. Select SHA256SHA3Scrypt, or Keccak25.
  • A mintable currency is issued with an INITIAL SUPPLY of currency that can increase over time until the TOTAL SUPPLY is reached; thus TOTAL SUPPLY is better named MAXIMUM SUPPLY in this case.
  • The currency supply is increased through a minting process, governed by the above properties. Minting does not secure the currency as mining does for some other virtual currencies such as Bitcoin; the currency is already secured by the CRYT blockchain and network.

3.1.6 Non-Shuffleable

Non-Shuffleable currencies will not participate in coin shuffling (an anonymity feature) when it becomes available in the future. The default is to participate.

4 Delete a Currency


A currency can be deleted only when the total supply belongs to one account, and only by using the Delete Currency API call. However, a currency that can be deleted can also be reissued with different properties using Issue a Currency.

5 Transfer a Currency


To transfer a quantity of currency to another account, click on the Send Currency button at the top of the CRYT Client Interface. Alternatively, click on the Transfer link on the My Currencies Screen, or navigate to the Exchange Booth for the currency and click on the Transferlink there. The Transfer Currency pop-up entry form appears:
Recipient: Enter the recipient account ID.
Units: Enter the number of currency units to transfer, up to the number of Currency units available.

6 Exchange an Exchangeable Currency


Currency exchanges take place in the Exchange Booth, which appears when Monetary System is clicked on the Menu or when the Exchange link is clicked on the All Currencies Screen:
  • Click on the Offer link at the top to publish a buy/sell offer pair. Refer to Publish an Exchange Offer for details. Published offer pairs are displayed in the middle row, in order of most favorable rate.
  • Click on the green bar to request to buy offered currency with CRYT. Open offers to sell currency for CRYT are displayed just below. Refer to Submit an Exchange Request for details.
  • Click on the red bar to request to sell currency for offered CRYT. Open offers to buy currency with CRYT are displayed just below. Refer to Submit an Exchange Request for details.
  • Exchange requests from the logged-in account to buy or sell offered currency are listed in the lower left area, most recent on top. If the request is italicized, it is pending. As soon as a pending request is confirmed (by inclusion in a block), it is executed based on available offers at that moment. All non-italicized requests have already been processed and possibly ignored if no matching offers were found. Old offers continue to be displayed until dropping off the bottom of the list, but they will not be processed again even if a new matching offer appears.
  • Executed exchange requests (trades) from all accounts are listed in the lower right area, most recent on top. Click on My Exchanges to display only those associated with the logged-in account. This list is short; old exchanges (trades) fall off the bottom. For a complete list, click on Exchange History on the Menu

6.1 Publish an Exchange Offer


The Publish Exchange Offer pop-up entry form appears when the Offer button is clicked on the Exchange Booth screen, or alternatively on the My Currencies Screen:
Buy units (Initial): The initial amount of currency offered to buy.
Buy units (Limit): The total amount of currency to buy.
Buy Rate per unit: The exchange rate offered to buy currency (in CRYT per unit of currency).
Sell units (Initial): The initial amount of currency offered to sell.
Sell units (Limit): The total amount of currency to sell.
Sell Rate per unit: The exchange rate offered to sell currency (in CRYT per unit of currency).
Expiration Height: The block height at which the offer expires; it must be greater than the current height.
  • Whenever an exchange request is executed against an offer, the respective limit is reduced by the amount of the exchange (trade).
  • An offer pair, once published, will persist until the expiration height is reached or until both limits become zero. If one limit becomes zero before the other, that half of the offer pair is withdrawn.
  • The offered amounts can decrease or increase from their initial values; they decrease when an exchange request is executed, but they increase when an exchange request of the opposite type is executed if the limit permits.
  • Only one active offer is permitted per account; new offers replace existing offers.

6.2 Submit an Exchange Request


The Exchange Request drop-down entry forms appear when the green and red bars are clicked in the Exchange Booth:
The green buy request form has identical fields to the red sell request form. Only the direction of the exchange (trade) is different.
Units: The amount of currency to exchange. When selling, it sets the exchange limit rather than Total, meaning that Units will not be exceeded but Total could be exceeded.
Rate: The least favorable (to the requester) exchange rate (in CRYT per unit of currency) required. The request will be executed at a more favorable rate if possible.
Total: The amount of CRYT to exchange. This read-only field is automatically computed as Units * Rate. When buying, it sets the exchange limit rather than Units, meaning that Total will not be exceeded but Units could be exceeded.
Fee: The minimum and default fee for a request is 1 CRYT.
  • The exchange request is submitted when the blue Exchange button is clicked, but will not be executed until confirmed (included in a block). Once confirmed, the request will be immediately executed (fully or partially) if any matching offers are found, otherwise it will be permanently ignored.

6.3 Exchange Example


6.3.1 Offer

Complete the offer form as follows:
  • Buy units (Initial): 5
  • Buy units (Limit): 10
  • Buy Rate per unit: 1
  • Sell units (Initial): 10
  • Sell units (Limit): 20
  • Sell Rate per unit: 2
Once the offer is confirmed on the blockchain, the Exchange Booth screen shows:

6.3.2 Request to Buy

Complete the green buy request form as follows:
  • Units: 20
  • Rate: 3
While the request is pending, the Exchange Booth screen shows:
  • While the request is pending, it is italicized.
Once the request is confirmed on the blockchain, the Exchange Booth screen shows:
  • The UnitsRate and Total columns in the Exchange Requests and Executed Exchanges sections have the same units as on the request form. Units is the amount of currency exchanged, Rate is the exchange rate in CRYT per currency unit, and Total is the amount of CRYT exchanged, always equal to Units * Rate.
  • The requested amount of currency was greater than the amount offered, and the offered rate was more favorable to the requester than the requested rate, so the offered amount and rate prevailed, as shown in the Executed Exchanges section.
  • The request was executed immediately upon confirmation, but continues to be displayed in the Exchange Requests section. Even though the request was only partially filled, it becomes obsolete after execution; the request will not be fully met even if a new matching offer appears in the future.
  • All of the initial amount of currency offered to sell (10 units) was sold, so the sell half of the offer pair was temporarily withdrawn. But it could reappear if the supply of currency to sell is replenished by a sell exchange request being executed against the buy offer. Up to 10 more units could be sold in this way, because the sell limit is now 10 units, having been reduced from 20 units.
  • The amount of currency offered to buy increased from the initial 5 units to 10 units, the buy limit. It would have increased to 15 if the buy limit was 15 or greater, due to the 10 units sold. Thus the Exchange Booth allows an offer publisher the opportunity to automatically replenish sold currency.
  • Clicking on a timestamp in the Exchange Requests section opens a detail pop-up window showing all executed exchanges resulting from a request; clicking on the timestamps of any of those executed exchanges opens an offer detail window, which in turn shows initial and current supplies and limits along with all executed exchanges against that offer, plus exchange totals. The offer detail window can also be opened by clicking on a height value in the Offers to Exchange section, and the request detail window can also be opened by clicking on a timestamp in the Executed Exchanges section.

6.3.3 Request to Sell

Complete the red sell request form as follows:
  • Units: 20
  • Rate: 0.5
Once the request is confirmed on the blockchain, the Exchange Booth screen shows:
  • The requested amount of currency was greater than the amount offered, and the offered rate was more favorable to the requester than the requested rate, so the offered amount and rate prevailed, as shown in the Executed Exchanges section.
  • All of the currency offered to buy (10 units) was bought, so the buy half of the offer pair was withdrawn permanently because the buy limit became zero.
  • The amount of currency offered to sell increased from 0 units to 10 units, the remaining sell limit; the bought units replenished the currency supply and so the sell half of the offer pair reappeared.
  • Notice that the buyer and seller are the same account. The Monetary System allows this but still charges a fee even though no currency or CRYT is actually exchanged. This is a method for effectively withdrawing an offer before it expires.

7 Reserve a Reservable Currency


The Reserve Currency pop-up entry form appears when the Reserve button is clicked on the All Currencies Screen:
Amount of CRYT per currency unit: This value is multiplied by the Reserve Supply amount to determine the amount of CRYT to be pledged to back the currency, displayed as Amount of CRYT reserved.
  • If the entered amount of CRYT per currency unit is 1.5 and the reserve supply is 100, 150 CRYT will be pledged to back the currency. This will be displayed as Amount of CRYT reserved on the form if this read-only field is clicked.
  • The minimum amount of CRYT per unit of currency that must be pledged by all supporters of the currency combined in order to activate (issue) the currency is displayed as Activation Per Unit Reserve. This value was specified as MINIMUM AMOUNT OF CRYT PER WHOLE UNIT NEEDED TO ACTIVATE CURRENCY on the Issue Currency form. The combined amount of CRYT that must be pledged is this value multiplied by Reserve Supply.
  • The amount of CRYT per unit of currency already pledged by other supporters is displayed as Current Per Unit Reserve. The corresponding amount of CRYT already pledged is this value multiplied by Reserve Supply.
  • In this example, 200 CRYT must be pledged by all supporters combined to activate (issue) the currency. 100 CRYT have already been pledged; at least 100 CRYT more is required. If 150 CRYT are pledged now, the minimum will have been met (and exceeded) and the currency will be issued at the issuance height.

7.1 Founders


All pledges of support can be viewed on the Currency Founders pop-up window, which can be opened by clicking on the currency code on the All Currencies Screen then clicking on Click here to view this currency's Founders. If the minimum combined pledge is reached by the issuance height, the pledged supporters will become the founders of the currency. In this example, there are two pledged supporters:
  • The Amount Reserved column shows the amount of CRYT pledged by each supporter, which upon activation (issuance) becomes CRYT reserve backing the currency. These values are computed by multiplying the Reserve Units (elsewhere named Reserve Supply) by the Amount per Unit column.
  • The Founders Units column shows the portions of the currency Reserve Supply to be distributed among pledged supporters of the currency upon activation (issuance), in proportion to the Amount Reserved
  • The Percent of Minimum column shows what percentage each supporter has contributed to meeting the minimum reserve requirement. If the total reaches 100%, the currency will be activated (issued) at the issuance block height. In this example, the total has already exceeded 100% and so the currency will be activated (issued) 5 blocks from now.
  • If the minimum reserve requirement were not to be met in time, the currency would be deleted and all pledges would be returned. When the minimum is met or exceeded in time, all pledged CRYT either remain locked until claimed if claimable or are transfered to the issuer otherwise.
  • If the currency is activated (issued), the Founders table freezes as a permanent record, and the Reserve Supply becomes the total supply of the currency.

8 Claim a Claimable Currency


The Claim Currency pop-up entry form appears when the Claim button is clicked on the My Currencies Screen:
Number of units: The number of units of currency to claim up to the displayed maximum of Number of units to claim, the amount of currency held by the logged-in account.
  • The Claim rate (in CRYT per currency unit) multiplied by the entered Number of units is the amount of CRYT that will be unlocked and transfered to the currency holder.
  • In this example, if the maximum amount of 80 units is claimed, 40 CRYT will be transfered to the logged-in account, reducing the Current Supply shown on the All Currencies Screen by 80 units.

9 Mint a Mintable Currency


The CRYT client interface does not provide a minting mechanism. Minting requires a separate tool that makes use of following CRYT API calls:
  • Get Minting Target returns a target hash; a nonce must be found such that its hash is less than the target hash. The difficulty of computing a valid nonce increases as the currency supply increases, according to the MINIMUM and MAXIMUM DIFFICULTY properties entered in the Issue a Currency form. The hashing algorithm applied to the nonce must be the one selected as the ALGORITHM property in that same form.
  • Currency Mint submits the computed nonce in exchange for newly minted currency, increasing the Current Supply shown on the All Currencies Screen.
A reference minting tool that uses the API is the Java Mint Worker Utility, included with CRYT Software. In its current form, it can only use a CPU for hashing computations. It is hoped that in the future it will be enhanced to include support for GPUs and ASICs.

10 Official Documentation


Overview The "Currency" entity is the basic building block of the CRYT Monetary System, currency has a unique name and code and uniqueness is guaranteed by the protocol, currencies can be deleted and their code can be reused under certain conditions.
The total currency supply is divisible into currency units. Like assets, currency units supports decimal positions implemented as a client side feature. The maximum number of currency units which can be issued per currency is similar to CRYT i.e. 10^9 * 10^8. The actual maximum units supply is set by the currency issuer. The currency issuer is the account which issues the currency and pays the issuance fee. The issuer is responsible for setting the currency properties and in some configurations has additional control over the currency usage. Like asset balance, currency units can be transferred between accounts.
Currency Properties The currency entity supports several properties. Properties can be mixed and matched in various ways to compose the currency type. The currency type then controls the inner workings of the currency. The list of available currency properties is as follows:
EXCHANGEABLE - the currency can be exchanged with CRYT. Holders of the currency can publish an exchange offer specifying the buy and sell rate of the currency much the same as banks or currency exchanges publish their exchange rates . Each account can publish only a single exchange offer at any given time. Exchange offers has an expiry block after which they are no longer in effect. Buyers and sellers can issue exchange requests to match published exchange offers. Unlike asset bid/ask orders, exchange requests are not saved, they are either executed immediately (fully or partially) or not executed at all. A match of exchange offer with a buy or sell exchange request creates an exchange entity which represents the transfer of currency units in return to CRYT balance and causes the relevant account balances to update. Issuing an exchange offer reduces the CRYT and currency balance of the offering account temporarily until the offer expires. Exchange offers also specifies a limit on the number of exchanged units which can be larger than the number of units offered. When a buy exchange request matches an exchange offer the number of units offered for sell is reduced and the number of units offered for buy is increased as long as the limit has not been reached. Once the exchange limit of an exchange offer has been reached, This exchange offer can no longer be used.
CONTROLLABLE - currency property suitable for currencies which need to track an external entity. It imposes the following limitations on the currency (1) Currency can be transferred only to/from the issuer account (2) only the issuer account can publish exchange offers. The issuer account can issue a large (practically infinite) supply of units in advance, then transfer units to accounts, or offer to exchange units, to reflect actual transactions which take place in an external system. The large supply of units in the issuer account can be used to mimic the effect of creating units out of nowhere to support features such as creating new units and interest payments.
RESERVABLE - currency units are not issued immediately. Instead the currency issuer sets a block height by which the currency is to be issued and a limit of CRYT per unit needed in order to issue the currency. Currency "founders" then spend their CRYT to reserve their currency stake. If the amount of CRYT per unit needed in order to issue the currency is not reserved before reaching the block height the issuance is cancelled and funds are returned minus fees. If the required reserve is allocated, the currency is issued and units are split between founders according to their proportional stake of invested CRYT. In case of rounding, leftovers are sent to the issuer account. See below discussion of usage scenarios for Reservable currency.
CLAIMABLE - currency units of resereable currency can later be claimed at the same CRYT per unit rate reached when reserving the currency. The ability to claim a currency at a certain rate imposes some practical limits on the rates in which users would want to exchange it. However claimable currency can also be exchanged if only for the purpose of exchanging the whole currency supply, so that the currency can be deleted.
MINTABLE - currency can be minted using proof of work algorithms much the same as Bitcoin. Unlike Bitcoin mining, minting currency does not secure the network (this is done by CRYT). Minting is used solely for creating new currency units and serve as the only mechanism to increase the number of available units after the currency issuance.
NON_SHUFFLEABLE - this property indicates that in the future this currency cannot participate in coin shuffling. By default currencies are allowed to participate in shuffling.
Properties are combined into an Integer bit mask designated as the Currency type.
Currency Exchange For exchangeable currency, each currency holder account, can publish a single exchange offer specifying the buy rate and sell rate vs CRYT and the number of units she is willing to exchange (which cannot exceed her available currency units and CRYT balance). Users can observe all currency exchange offers (intuitively similar to fiat exchange offices) and try to match them with buy/sell exchange requests. An exchange offer has an expiration height, as well as a limit on the total number of units which can be exchanged. When units are bought from an exchange offer the number of units to sell increases automatically and vise versa. The publisher can also limit the total transaction volume of currency units traded for a specific exchange offer.
Deleting a Currency Since the available currency codes are limited to 3, 4 or 5 uppercase letters, the total number of codes is limited to 26^3 + 26^4 + 26^5 - 1 = 12355927 unique values (The code "CRYT" is reserved), it is likely that some of these codes will have value by themselves. Therefore deleting a currency is possible under certain conditions depending on the currency type. Users may re-issue a currency, or delete a currency and then issue a new currency, with the same code but with different properties. In order to delete or re-issue a currency an account must poses all the currency units (and additional conditions apply based on the currency type)
Creating new Currency Units The only way to create new currency units after issuing a currency is using proof of work minting. Other methods of creating units are susceptible to denial of service attacks and/or sock puppets and are therefore not allowed. The controlable currency type provides a partial solution for creating new units, by allowing the currency issuer account to treat her supply as a treasury and only consider units outside of this account as the total currency supply. This approach requires users to trust the currency issuer which can increase the currency supply at any time.
Minting Users can issue minting requests in order to mint additional currency units. Each minting request triggers a hash calculation based on the submitted data and the currency hash algorithm. The resulting hash code is compared to the target value derived from the current currency difficulty. Minimal and maximal currency difficulty values and minting algorithm are specified when issuing the currency and cannot be changed later. The expected number of hash calculations (i.e. difficulty) of minting the first unit is 2^minDifficulty while the difficulty of minting the last unit is 2^maxDifficulty. Difficulty increases linearly from min to max based on the ratio between the current number of units and the total supply. Difficulty increases linearly with the number of units minted per CurrencyMint request, small minters can mint only a few units per request while large minters can mint large number of units per request. The number of units per minting request is limited to 1/10000 of the total unit supply. Minting is limited to a single minting transaction per block/account/currency. Currency issuers can specify initial supply of units as a "pre-mint" supply assigned to the issuer account then use crowd funding by making the currency RESERVABLE and EXCHANGEABLE. Once the currency becomes active the delta between the current supply (reserved supply) and total supply can be minted. The NRS provides a Java based, reference implementation mInter, which can be used for minting. In practice we expect users to enhance this minter to calculate hash codes using their Asics or GPUs, trying to match the current target, and once solving a hash, submit a currency mint transaction (thus paying a fee). If indeed the hash code is smaller than the target the currency units are credited to the sender account.
See documentation of the reference implementation "Mint Worker" utility here #207
Store of Value The combination of RESERVABLE and CLAIMABLE properties can be used to allocate initial value for a currency by locking CRYT. Once the currency is activated the reserved CRYT are locked and the only way to release them is to claim back the currency units in return to CRYT. This provides the currency a value based on the locked CRYT balance. Note: locked CRYT do not participate in forging, therefore, in theory its possible that large amount of CRYT becomes locked as currency store of value thus reducing the amount of CRYT used for securing the network, we are aware of this problem and we'll monitor it closely. We do not expect this to become a major problem any time soon.
Crowd Funding The combination of RESERVABLE and EXCHANGEABLE properties can be used for crowd funding, in this configuration the CRYT balance reserved by founders, is not locked, instead it is sent to the currency issuer account once the currency becomes active. The issuer can use these CRYT for its operations and the founders cannot claim back their currency units, only exchange it based on the published exchange offers. Currency issuers can specify the initial supply as "pre mine" and founders get share the difference between the reserve supply (also named "pre-activation" supply) and the initial supply.
Fees Currency issuance fee is based on the length of the currency code.
3 Letters - 25000 CRYT
4 Letters - 1000 CRYT
5 Letters - 40 CRYT
Re-issuing an existing currency with different properties costs 40 CRYT regardless of the number of the currency code length. All other currency transactions (as of today) has a fee of 1 CRYT.
Unit conversion Currency is measured in units and like assets has decimal positions, however the blockchain maintains currency balances as a whole number (QNT). Therefore, for example, in case a currency has 2 decimal positions and the client has reserved 123.45 units. The "units" value submitted in the API call should be 12345. APIs using CRYT balances should send the value measured in NQT as usual. When specifying "rate" the API calculates the ratio between CRYT balance in NQT and currency balance in QNT. Starting in version 1.5 the user interface for the rate fields shows the MS currency as the "base currency" and CRYT as the "quote currency". The rate represents how much CRYT is needed to purchase 1 MS currency unit.
Example: For a currency with 2 decimal positions. When submitting a buy exchange request for 12.34 units at a rate of 5.6 [CRYT/Unit] the values submitted to the currencyBuy transaction should be: units = 1234 i.e. units without decimal position or 12.34 * 10^2 rateNQT = 5600000 i.e. rate converted to NQT then divided by decimal position or 5.6 * 10^8 / 10^2
In order to prevent rounding problems when submitting information to the server, the UI enforces the following rule: If a currency has D decimal positions. Unit values cannot have more than D decimal positions and rate values cannot have more than (8-D) decimal positions. Therefore when issuing a currency, we do not recommend specifying more than 4 decimal digits so that conversion rates are also divisible to at least 4 decimal digits.
Disclaimer Before issuing a currency we recommend issuing a currency with the same properties on the testnet and experimenting with all parameters since these cannot be changed without deleting the currency.
This documentation reflects the actual code implemented as of this date.

1 Introduction


CRYT Phasing is a feature that allows certain phasing-safe transactions to be created with conditional deferred execution based on the result of a vote, on a list of linked transactions or on the revelation of a secret; or simply with unconditional deferred execution. Phasing-safe transactions are indicated with italics in the API Create Transaction list.
In this guide, all examples begin with phased Send CRYT transactions created in the CRYT Client; the procedures are similar for other types of phasing-safe transactions supported by the CRYT Client.


2 Create a Phased Transaction


To create a phased Send CRYT transaction, first click on Send CRYT at the center top of the CRYT Client. A pop-up entry form appears:
  • At this point the recipient account ID and the amount of CRYT to send can be entered into the Recipient and Amount fields of the form, respectively.
  • If the Send CRYT button in the lower right of the form is clicked, a transaction is created and immediately submitted to the peer network for inclusion in the blockchain, for a fee of 1 CRYT.
  • To instead make the transaction phased, click on the advanced link in the lower left area of the form to display the phasing related fields:
  • To return to the basic Send CRYT form, click on the Basic link in the lower left area of the form.
  • The Referenced Transaction Hash field and the Do Not Broadcast and Note to Self? controls do not relate to Phasing.
  • The Fee field contains the default minimum transaction fee of 1 CRYT. The box to the right with the gavel graphic automatically displays the fee surcharge for phasing, depending on the phasing configuration.
  • The Deadline (Hours) field displays the default 24 hour deadline for inclusion of the transaction into a block.
  • The next row contains eight graphics for selecting the phasing voting model; hovering the cursor over the graphics causes descriptive tooltips to appear. The leftmost selection, the default, is for no phasing. The seven voting models are explained below.

2.1 Voting Models


Clicking on one of the phasing graphics selects the voting model, causes the fee surcharge to be updated and causes one or more new fields or controls to appear, as described in the sections below.
All voting models have in common a field/control for Finish Height which determines when deferred execution will occur if approved, that is, if all requirements for execution will have been met in the block just prior to the finish height. The voting models are named according to the method of approval.
For four of the voting models (the Vote By ... models), the results of a vote determine whether execution will occur at the finish height. These four models have in common: the Whitelist field for restricting voting to selected accounts and for generating Whitelisted Approval Requests, and the Min Balance Type control for restricting voting to accounts with a minimum balance of CRYT, an asset or a currency.

2.1.1 None

If the second graphic is clicked, the following appears:
  • The phased transaction will execute unconditionally at the Finish Height.
  • The fee surcharge is +1 CRYT.

2.1.2 Vote By Account

If the third graphic is clicked, the following appears:
  • Enter into the Number Accounts field the number of accounts that must vote for (approve) the transaction. Each account has one vote.
  • The fee surcharge is +1 CRYT.
  • A Whitelist can be used to restrict voting and to generate Whitelisted Approval Requests. Otherwise, the only mechanism for voting is Manual Approval.
  • Voting can be restricted to accounts with a minimum balance of CRYT, an asset or a currency using the Min Balance Type drop-down control.
  • Update the Finish Height field to change the default value.

2.1.3 Vote By Account Balance

If the fourth graphic is clicked, the following appears:
  • Enter into the Amount CRYT field the minimum total amount of CRYT needed to approve the transaction, with each voting account contributing to the total its CRYT balance (including any outgoing pending phased transfers) just prior to the phasing poll's completion.
  • The fee surcharge is +20 CRYT.
  • A Whitelist can be used to restrict voting and to generate Whitelisted Approval Requests. Otherwise, the only mechanism for voting is Manual Approval.
  • Voting can be restricted to accounts with a minimum balance of CRYT using the Min Balance Type drop-down control.
  • Update the Finish Height field to change the default value.

2.1.4 Vote By Asset Balance

If the fifth graphic is clicked, the following appears:
  • Enter into the Asset Quantity field the minimum total quantity of the asset needed to approve the transaction, with each voting account contributing to the total its asset balance (including any outgoing pending phased transfers) just prior to the phasing poll's completion.
  • Enter into the Asset field the asset ID. The name of the asset is instantly displayed in the shaded box to the right to confirm the ID.
  • The fee surcharge is +20 CRYT.
  • A Whitelist can be used to restrict voting and to generate Whitelisted Approval Requests. Otherwise, an Asset Approval Request is automatically generated.
  • Voting can be restricted to accounts with a minimum balance of the asset using the Min Balance Type drop-down control.
  • Update the Finish Height field to change the default value.

2.1.5 Vote By Currency Balance

If the sixth graphic is clicked, the following appears:
  • Enter into the Currency Units field the minimum total units of the currency needed to approve the transaction, with each voting account contributing to the total its currency balance (including any outgoing pending phased transfers) just prior to the phasing poll's completion.
  • Enter into the Currency field the three- to five-letter currency code. The ID of the currency is instantly displayed in the shaded box to the right to confirm the code.
  • The fee surcharge is +20 CRYT.
  • A Whitelist can be used to restrict voting and to generate Whitelisted Approval Requests. Otherwise, an Currency Approval Request is automatically generated.
  • Voting can be restricted to accounts with a minimum balance of the currency using the Min Balance Type drop-down control.
  • Update the Finish Height field to change the default value.

2.1.6 By Linked Transactions

If the seventh graphic is clicked, the following appears:
  • Enter the full hash of a transaction that must be in the blockchain at the finish height for the phased transaction to be executed.
  • A transaction already in the blockchain before the acceptance of the phased transaction can be linked, as long as it is not more than 60 days old, or itself a phased transaction. If the transaction is associated with your account, its full hash can be obtained by clicking on its timestamp in the My Transactions screen to open the Transaction Info pop-up window, then clicking on the Transactions Detail tab. Otherwise, the full hash can be obtained using the CRYT API if the transaction ID is known.
  • A transaction not yet in the blockchain can be linked in advance if the transaction is created but not broadcast. The full hash is then available for linking to the phased transaction. The signed transaction bytes can be broadcast later (via the Transaction Operations item of the Settings Menu), before the finish height of the phased transaction, in order to approve it.
  • It is possible to link up to ten transactions via the CRYT API, but currently only one can be linked via this entry form.
  • The fee surcharge is +1 CRYT.
  • Update the Finish Height field to change the default value.

2.1.7 By Secret

If the eigth graphic is clicked, the following appears:
  • Select a Hash Algorithm from the pull-down control.
  • Enter into the Approved By Hashed Secret field the hash of a secret phrase that must be revealed by the finish height to approve execution of the phased transaction. The hash can be computed from the secret phrase using the Calculate Hash item of the Settings Menu.
  • The fee surcharge is +1 CRYT.
  • Update the Finish Height field to change the default value.
  • To approve the phased transaction once it is confirmed and before the finish height, use Manual Approval.

2.2 Finish Height


Selection of any voting model causes the Finish Height field and its associated controls to appear:
  • The leftmost box is the entry field for Finish Height and is initialized to 7000 blocks (approximately a 48h) into the future. Enter the exact block height at which the phasing poll is to finish.
  • As a convenience, an estimated finish date is displayed to the right of the Finish Height label. This date adjusts automatically whenever the Finish Height field changes.
  • As a convenience, the second shaded box just to the right of the Finish Height field is a control which displays the current block height at the time the pop-up entry form was opened. Clicking on it causes the Finish Height field to change to this value.
  • As a convenience, the third and fourth boxes contain controls labeled - (minus) and + (plus) for decreasing or increasing, respectively, the Finish Height by 500 blocks (approximately half 4h).

2.3 Whitelist


Selection of one of the four Vote By ... voting models causes the Accounts (Whitelist) field and its associated controls to appear:
  • Enter into the Accounts (Whitelist) field the account ID of an account that is eligible to vote.
  • Once the whitelist is created with the inclusion of a single account, only that account and up to nine other accounts optionally added to the whitelist are eligible to vote in the phasing poll.
  • To add another account to the whitelist, click on the + Add Account button and enter the account ID into the new field that appears.
  • To remove an account from the whitelist, click on the - (minus) control on the right.
  • Whitelisted accounts will receive a Whitelisted Approval Request, which is a mechanism for voting.

2.4 Minimum Balance Models


Selection of one of the four Vote By ... voting models causes the Min Balance Type drop-down control to appear:
  • The default selection is No min balance necessary, meaning that possessing a minimum balance is not an eligibility requirement for voting. There is no additional fee surcharge.
Clicking on the drop-down control causes a list of one or more minimum balance models (types) to appear, depending on the voting model:
  • The list shown is for the Vote By Account model and offers a choice of three minimum balance models: Min balance of CRYT requiredMin balance of asset quantity required and Min balance of currency units required.
  • If the voting model is Vote By Account Balance, Vote By Asset Balance or Vote By Currency Balance, the minimum balance model must match the voting model and so only one choice is offered for each.
  • Selecting one of the minimum balance models causes the fee surcharge to be +20 CRYT and one or more new fields to appear as described in the following subsections.

2.4.1 Minimum Balance Of CRYT

  • Enter into the Min Balance field the minimum balance of CRYT required for an account to be eligible to vote in the phasing poll for approval of the transaction.
  • The account must possess this minimum balance (including any outgoing pending phased transfers) just prior to the phasing poll's completion.

2.4.2 Minimum Balance Of Asset Quantity

  • Enter into the Min Balance field the minimum balance of asset quantity required for an account to be eligible to vote in the phasing poll for approval of the transaction.
  • The account must possess this minimum balance (including any outgoing pending phased transfers) just prior to the phasing poll's completion.
  • If the voting model is Vote By Account, enter into the Asset field the asset ID. The name of the asset is instantly displayed in the shaded box to the right to confirm the ID. This field is not displayed for the Vote By Asset Balance voting model, because the asset ID is already specified.

2.4.3 Minimum Balance Of Currency Units

  • Enter into the Min Balance field the minimum balance of currency units required for an account to be eligible to vote in the phasing poll for approval of the transaction.
  • The account must possess this minimum balance (including any outgoing pending phased transfers) just prior to the phasing poll's completion.
  • If the voting model is Vote By Account, enter into the Currency field the three- to five-letter currency code. The ID of the currency is instantly displayed in the shaded box to the right to confirm the code. This field is not displayed for the Vote By Currency Balance voting model, because the currency code is already specified.

3 Approve A Phased Transaction


Approval Requests are the best mechanism for approval of phased transactions, but they only apply to the four Vote By ... voting models, and in the cases of Vote By Account and Vote By Account Balance, only when a Whitelist is used. Otherwise, and including the By Secret voting model, another mechanism must be used: Manual Approval. The By Linked Transactions voting model does not require manual approval, only the presence of the specified linked transaction(s) in the blockchain.

3.1 Approval Requests


Approval requests are invitations to vote in phasing polls, which apply to the four Vote By ... voting models. While voting is open (until the finish height of the phasing poll is reached), approval requests appear in all CRYT Clients logged into accounts that are invited to vote in the poll, either by inclusion on a whitelist or by virtue of owning an asset or currency, depending on the voting configuration.
If a whitelist is used, then approval requests appear only on the Whitelisted Approval Requests screen, regardless of the voting model.
Absent a whitelist, Vote By Account and Vote By Account Balance voting model approval requests appear nowhere in the CRYT Client while Vote By Asset Balance and Vote By Currency Balance voting model approval requests appear on the Asset Approval Requests and Currency Approval Requests screens, respectively.

3.1.1 Whitelisted Approval Requests

This screen is accessed from the CRYT Client menu in the left pane by first clicking on Dashboard to expand the submenu, then clicking on the Approval Requests submenu item:
  • Note that the number of pending approval requests is displayed in a shaded circle to the right of the Approval Requests submenu item; this is an alert that approvals are requested.
  • (Account) in the screen title refers to the Vote By Account and Vote By Account Balance voting models for which whitelisting is required to generate approval requests, but this screen also includes the other two voting models when a whitelist is used and so would more accurately be represented as (Whitelisted).
  • Details of phased transactions with open phasing polls are shown in each row of the list with an Approve button in the Actions column; the graphic in the gavel column indicates the phasing poll status.
  • The Approve button is highlighted and active if the logged-in account has not yet voted; after voting it becomes shaded and inactive.
  • Clicking on the Approve button opens an Approve Transaction pop-up entry form; then clicking on Approve creates an approval transaction.

3.1.2 Asset Approval Requests

This screen is accessed from the CRYT Client menu in the left pane by first clicking on Asset Exchange to expand the submenu, then clicking on the Approval Requests submenu item; finally, select an asset from the drop-down list control under the screen title:
  • Details of phased transactions with open phasing polls are shown in each row of the list with an Approve button in the Actions column; the graphic in the gavel column indicates the phasing poll status.
  • The Approve button is highlighted and active if the logged-in account has not yet voted; after voting it becomes shaded and inactive.
  • Clicking on the Approve button opens an Approve Transaction pop-up entry form; then clicking on Approve creates an approval transaction.

3.1.3 Currency Approval Requests

This screen is accessed from the CRYT Client menu in the left pane by first clicking on Monetary System to expand the submenu, then clicking on the Approval Requests submenu item; finally, select a currency from the drop-down list control under the screen title:
  • Details of phased transactions with open phasing polls are shown in each row of the list with an Approve button in the Actions column; the graphic in the gavel column indicates the phasing poll status.
  • The Approve button is highlighted and active if the logged-in account has not yet voted; after voting it becomes shaded and inactive.
  • Clicking on the Approve button opens an Approve Transaction pop-up entry form; then clicking on Approve creates an approval transaction.

3.2 Manual Approval


For any phased transaction that appears on the My Transactions screen but that uses neither the None nor the By Linked Transactions voting model, approval can be accomplished by the following procedure:
  1. click on the timestamp of the transaction to open the Transaction Info pop-up window
  2. click on the Actions tab
  3. click on the Approve Transaction button to open the Approve Transaction pop-up window
  4. click on the Approve button to approve the transaction, after entering the secret phrase in the case of the By Secret voting model
Only (confirmed) transactions that are directly connected with the logged-in account appear on this screen, including transactions sent or received, and those with phased polls with an invitation to vote (approval request).
When there is no approval request and the phased transaction does not appear on the My Transactions screen, it can still be found if the block height of the block containing the transaction is known, via the Blocks screen by clicking on the block height. Otherwise, the Approve Transaction API call can be used if the full hash of the phased transaction is known, and the full hash can be obtained using the Get Transaction API call if the transaction ID is known.

4 View Phasing Poll Status


The status of a phasing poll is indicated by a golden graphic which appears on an Approval Requests screen while the phasing poll is open and on the My Transactions screen, where the graphic changes color to green (approved) or red (disapproved) upon phasing poll completion at the finish height. A tooltip appears when the cursor hovers over the graphic, displaying status details.
The status can change until the phasing poll's completion, when it freezes. At the finish height, the phased transaction is executed only if all requirements for approval are met in the block just prior to the finish block.

4.1 Graphic Status Indicators


Voting Model Status Indicator
None None
Vote By Account Current / Required approvals (votes)
Vote By Account Balance Total CRYT balance progress scale, 0% to 100%
Vote By Asset Balance Total asset balance progress scale, 0% to 100%
Vote By Currency Balance Total currency balance progress scale, 0% to 100%
By Linked Transactions Linked Transactions progress scale, 0% to 100%
By Secret Secret revealed progress scale, binary: 0% or 100%

4.2 Graphic Status Indicator Color Codes


Color Approval Status
Gold Not yet approved; phasing poll still open
Red Disapproved; phasing poll finished, transaction ignored
Green Approved; phasing poll finished, transaction executed

4.3 Graphic Status Indicator Tooltip


Accounts/Asset/Currency: The number of whitelisted accounts or the name of the asset or currency holding.
Votes: The number of accounts or the amount of CRYT, asset QNT or currency Units in Current approvals / Required approvals format.
Percentage: Current approvals as a percentage of Required approvals.
Finish Height: The block height at which the phasing poll finishes or finished.
Approved: Yes only if all requirements were met at phasing poll completion, No if not or if the phasing poll is still open.

Forging Algorithm


There are two conditions that an account needs to satisfy before it can start forging:
    The account needs to have an effective balance of at least 1000 CRYT. That is, it needs to have had a balance of 1000 CRYT (or more) over the last 1440 blocks / 8 hours.
This is needed because the forging algorithm depends on the stake of the user.
    The account needs to have at least one outgoing transaction, also confirmed 1440 times.
The passphrase is the the account's private key, a public key is obtained only after at least one outgoing transaction is executed and confirmed. This can be done in several ways, notably by sending 1 CRYT to your own account (or someone else's), by sending a message using the arbitrary message feature or by registering an alias.
When these two conditions are met, a 1000 CRYT effective balance and public key published, the account is eligible to forge. Note that forging will stop if the effective balance drops below 1000 CRYT.
The forging algorithm employed by CRYT revolves around two variables: Hit and Target.

1.1 Hit

Each forger generates one 'hit' value between 0 and 2^64 - 1 for each new block. While hit is deterministic, it's produced through hashing inputs, so it can be regarded as a uniform random variable.
From the code, hit is defined as:
BigInteger hit = getHit(publicKey, lastBlock);  
Two arguments are given to the getHit function: the forger's public key and the previous block. The implementation of this function can be seen below.
private static BigInteger getHit(byte[] publicKey, Block block){[...]MessageDigest digest = Crypto.sha256();
digest.update(block.getGenerationSignature());
byte[] generationSignatureHash = digest.digest(publicKey);
return new BigInteger(1, new byte[] {generationSignatureHash[7],generationSignatureHash[6],generationSignatureHash[5],
generationSignatureHash[4],generationSignatureHash[3],generationSignatureHash[2],generationSignatureHash[1],generationSignatureHash[0]});}
As can be seen on the page devoted to blocks and blockchain, each block has a 64 bytes generationSignature parameter. A forger signs the previous block using its own public key. This same generationSignature is successively hashed using SHA256. The hit value is obtained by taking the first 8 bytes of the resulting hash.

1.2 Target

The target is a ever increasing valor. This is its implementation
BigInteger target = BigInteger.valueOf(lastBlock.getBaseTarget())
.multiply(BigInteger.valueOf(effectiveBalance)).multiply(BigInteger.valueOf(elapsedTime));
In other words, we have that
Target = BaseTarget * EffectiveBalance * TimeSinceLastBlock  
Where:
  • BaseTarget
This parameter is the same for everybody. It gets adjusted from block to block to obtain, roughly, a generation time between blocks of 20s. If two successive blocks get generated too quickly, the new BaseTarget gets reduced. If instead they take too long, the value gets increased. This adjustment is capped, it can go up at most twice as much (2 * currentBaseTarget) and down at most by half (0.5 * currentBaseTarget).
  • EffectiveBalance
This is your stake in CRYT. Only the amount of CRYT that has been confirmed at least 1440 times counts towards this balance. The reason the effective balance is used is to avoid shuffling attacks.
  • TimeSinceLastBlock
How long, in seconds, since the last block has been generated. This parameter is also the same for everybody.

1.3 The block forger

The way who gets to generate the next block is chosen, is done by using the condition:
if(hits.get(accountId).compareTo(target) < 0){BlockchainProcessorImpl.getInstance().generateBlock(secretPhrase);  }  
This says, essentially, that if the condition Hit < Target is satisfied, you get to generate the next block.
Now that we know the forging algorithm, there are some considerations we can make:
  • All the parameters except the effective balance are the same for everybody.
  • The hit parameter is static, what changes during the forging process is the target. Every forger has its own target (even though it depends on parameters equal for everybody) and it reflects the forger's stake. Every second that no block gets generated, the target increases until someone's hit, on the network, manages to be smaller than their own target. The consequence is clear: bigger is your stake, higher will be your target (and more rapidly it will grow) making it easier for you to satisfy the condition. On a practical sense, this entails you will get to generate a block more often.
  • TimeSinceLastBlock is the parameter that gives target its increasing nature. The longer it takes to generate a block, higher becomes the target.
  • The situation where multiple forgers satisfy the forging condition at the same time is tangible, how the network handles this situation will be explained in the section devoted to forks.


Current features of CRYT include:


    Asset Exchange

To exchange cryptocurrencies and other digital assets until now, you had to sign up for an account on a centralized platform such as Cryptsy/BTC-E/Bter/etc, transfer your assets to them and then pay them transaction fees. This brings in a large concern: a centralized exchange could just bail with everyone's deposits. CRYT has developed a peer-to-peer exchange into the software to allow for decentralized trading which eliminates this trust point. It also eliminates trading fees.
The same technology that allows you to trade CRYT for many other digital assets can allow you to trade CRYT for almost any commodity.
This feature is based on the "colored coins" concept. Since the blockchain provides a trustworthy record of transactions, it can be leveraged to provide a record of trade of items other than CRYT. To do this, CRYT allows the designation or "coloring" of a particular coin, which builds a bridge from the virtual crypto-currency world to the physical world. The "colored coin" can represent property, stocks/bonds, commodites, or even concepts. As a result, the CRYT network could be used to trade almost anything.

    Monetary System

Issue customizable currencies secured by the CRYT network.

    Marketplace

This feature provides a protocol for decentralized, peer-to-peer stores for any kind of digital goods.

    Voting System

The secure, encrypted, consensus-based nature of the CRYT network allows the implementation of a voting system that guarantees anonymity and security, without relying on a central authority to tally votes.

    Phasing

Phasing allows transactions with deferred execution, with or without conditions. Those can be basis for many use cases.

    Alias System

CRYT implements an alias system that translates alphanumeric text into almost anything: CRYT account addresses, email addresses, URLs, phone numbers, SKU codes, and more. This not only gives CRYT the ability to function as a Decentralized DNS system, but adds additional possibilities for mapping short names to other entities.

    Arbitrary Messages

This feature allows CRYT users to send small amounts of data through the decentralized network. These data can be encrypted. The term "message" is loose: this feature can be used to send simple text messages, but can also be used to send up to 1000 bytes of any data. As a result, it can be used to build file-sharing services, decentralized applications, and higher-level CRYT services.

    Account Leasing

Account Leasing allows a user to lease its forging power to another account for a fixed period of time, without having to send coins anywhere. This allows for the creation of secure forging pools.

    Account Monitor

Component which automatically transfers CRYT, ASSET or CURRENCY from a funding account to recipient accounts when the amount held by the recipient accounts drops below a set threshold.

    Coin Shuffling

Coin Shuffling is a privacy feature which enables users to mix their funds quickly and efficiently with other users' funds by creating a random mapping between the existing user accounts and a new recipient accounts provided by the users.

F.A.Q.


1.1 What is CRYT?


CRYT is a blockchain platform with multiple core-level features that has been running publicly since July 2019. It is coded from scratch in Java, unlike most of the other platforms launched at the time. It's 100% Proof of Stake, meaning that the more CRYT you have the higher chances you have of processing the next block. Because it's not dependent on computational power, a full node can run on something as light as a Raspberry Pi. Only 1 billion tokens were created and since there is no inflation, there will be no new coins created. So, when blocks are forged (CRYT terminology for mining) only the transaction fees are given as a block reward.

2.1 Where do I get started?


This website have all info required and more will be added during time.

2.2 What wallet/client should I use?


We recommend using the CRYT core client which you can download from our GitHub.

2.3 Is there a light wallet/client?


There is no dedicated light core wallet/client, but you can activate a light mode in the CRYT core client this way:
  • Locate directory /conf.
    On Windows it is here: C:\Users<UserName>\AppData\Roaming\CRYTREXCOIN\conf
    Mac: ~/.CRYTREXCOIN/conf
    Linux: /conf folder under the root installation
  • Create a text file nxt.properties in this directory with a single line:
    nxt.isLightClient=true
  • Start the CRYT client and it will not be downloading the blockchain, which will be accessed using public nodes.

2.4 Is there a mobile wallet?


There is one for Android which you can download from Google Play Store. iOS wallets is under Development at the moment.

2.5 How do I get CRYT?


Read Exchange page on this website to see updated list where CRYT is available.
You can also use the Buy Now with Credit Card and Crypto integration within the CRYT client itself.

2.6 What is the size of the CRYT blockchain?


As end of Aug 2019, the CRYT blockchain is less than 150 MB.

2.7 What is the roadmap of CRYT?


On this Homepage you can see our Milestone with all info.

2.8 Where do I find news about CRYT?


All Social and around the world CRYT expand so fast, and is easy to find some News.

2.9 Where do I find information about the API?


Information about the API can be found on the API page.

2.10 What features does CRYT have?


CRYT has numerous core-level features such as the ability to issue assets, which are tokens on CRYT that use CRYT for transaction fees, a decentralized asset exchange, decentralized voting, shuffling (for anonymity), alias system, decentralized marketplace, multisig capabilities, and a monetary system for currencies.

2.11 How many nodes are up for CRYT?


Explorer page is a great tool to see live information about nodes.

2.12 Where is the source code?


You can find the source code in our GitHub.

2.16 Does CRYT have a testnet?


No.

3.1 Why am I getting a Java error when I try to start the software?


CRYT relies on Java 8.  Make sure you download and install latest version installed from Oracle! You can check to see which version of Java is running on your computer by running the following command in a terminal window:
java -version  

3.2 Why cannot I open the client in a web browser?


First of all, you need to make sure that the CRYT server window has finished loading, as indicated by a message like this:
CRYT Server 1.20.00 started successfully.  
To access your client interface, you can then use either of these addresses:
http://localhost:11112/  http://127.0.0.1:11112/  

3.3 Why doesn't my blockchain finish loading?


Patience is usually the best fix; your client will eventually catch up with the network. Some delay may occur specially when you have updated to a new software version that performs a database upgrade.

3.4 Why do my blockchain files keep getting corrupted?


The blockchain database may get corrupted as a result of the CRYT software being forcefully terminated, in a way that doesn't allow the server to close the database properly. You should be able to see "Database shutdown completed" in the log before shutdown, as a sign that data files have been properly closed. To prevent data corruption when closing CRYT :
  • In Windows, use Ctrl-C to shut down the process in the terminal window
  • In UNIX, use kill -15 #ID PROCESS do not use kill -9 #ID PROCESS.

4.1 The client says I have 0 CRYT in my account but I have not transferred my coins anywhere


In some cases, right after unlocking your account in the client, the balance might momentarily appear like zero or a different amount than expected. This will happen if the blockchain has not been completely downloaded by your software yet, and the blocks containing your deposits are yet to be downloaded. Check the time stamp on the latest block in the "Blocks" panel. If it is not very recent (within a minute or two), wait and give the software some time to catch up. Your balance should match the balance showing for your account in the blockchain explorer in a few minutes.

4.2 I'm trying to unlock my account, but I keep accessing a different account number than the one I created. What's going on?


Since different account numbers are accessed using different passphrases, getting a different account number than the one you expected means you used a different passphrase than the one originally used to generate your account number. Make sure you are introducing your original passphrase correctly. This means double-checking for typing mistakes, and ensuring no extra spaces are accidentally pasted (or omitted!) in the beginning or the end of your passphrase as you paste it to unlock your account.

4.3 I created an account. Why cannot I see it referenced in the blockchain?


In general, you can use a blockchain explorer to search for your account, examine your balance, transaction history, and more.  Information about your account will not appear in the blockchain until there is at least one confirmed transaction that references your account.  This is because the blockchain is a record of transactions, not account information. If you have created an account but have never sent any CRYT to it, the account will not appear in the blockchain.


© 2018-2019 CRYT Blockchain
CryTrEx.com All Right Reserved.