Welcome to Time Machine

Time Machine lets you send tokens into the future.

Note: This is an experimental beta launch, so use at your own risk.

Use Time Machine to align incentives for your project. You can compensate your team with tokens that become transferrable in the future. This rewards a team that helps create long-term value that becomes reflected in token price.

For example: Grogoop creates a crypto project and would like to reward programmer Joanee for their work and would also like their ongoing support of the project. Grogoop uses Time Machine to send Joanee 1,000 GROGOO tokens that will "vest" (become transferrable) after 3 months, and another 1,000 GROGOO tokens that will vest after 6 months. Joanee can verify that the tokens will vest to Joanee's wallet by examining the SmartCoin on the blockchain which can be found via a hint in the memo field. After 3 and 6 months go by, anyone can submit a "spend bundle" transaction to the blockchain to deliver the tokens from the SmartCoin to Joanee's wallet.

We welcome your feedback on what you'd like to do with your tokens and your team's tokens to help align incentives and encourage great project building. That'll help us prioritize what to do next.

Follow us and connect with us on Twitter and Discord
Some technical details

Time Machine works on the Chia Blockchain using the Proof of Space and Time consensus, using the Chialisp programming language and the Chialisp Virtual Machine. It currently supports Chia Asset Tokens (CATs).

At present you can send tokens to 'the future', that is the tokens will be locked until a future block number is reached. It provides a built-in calculator that calculates the approximate block number based on the number of days, if you prefer to type in number of days. We do not yet offer functionality to send tokens to the past.

Time Machine uses the Goby Wallet Chrome Extension. For security, we recommend creating a separate Google Chrome profile and removing any extensions other than the Goby Wallet extension. Create a Goby Wallet and use that as a 'distribution wallet' to send the tokens to the future for your team.

Time Machine will present you with two transactions to sign, once you send your tokens and some XCH to your Goby Wallet and hit the send button. The first transaction sends your tokens into SmartCoins that are locked until a later block. The second transaction provides XCH to cover your blockchain transaction fees and Time Machine XCH transaction fee. Time Machine charges 0.05 XCH and 0.3% of the tokens, and puts those tokens under the same vesting schedule to align incentives.

Security Bounty Program

OrcNation has dedicated at least 10,000 ORC tokens to its security bounty program. Please contact us via Twitter to initiate a security vulnerability report.

About OrcNation

OrcNation is a distributed team developing projects on Chia / Proof of Space and Time / Chialisp platforms. This is the first decentralized application we have released. If you are interested in helping with our projects, we invite you to join our Discord and also connect via Twitter.

NO WARRANTY

This experimental service is provided as is, with no warranty or guarantee. OrcNation accepts no liability to a user beyond XCH fees paid.


How to use the downloaded spend bundle file

You can use the spend bundle to check the status and ownership of your tokens, and to make your tokens appear in your wallet after the lock-up period has passed.

Make the tokens appear in your wallet after the lock time has completed

These are the steps to make your tokens appear in your wallet after the lock-up period has passed. You’ll need the following command line tools:

  • cdv (download from [https://pypi.org/project/chia-dev-tools/])

Once the lock time has passed, you can pass the tokens to the regular wallet of the recipients with this command:

Simply run:

Before the vesting period has passed the output will be:

{
    "status": "PENDING",
    "success": true
}

Unless the tokens already show up in the recipient wallet, after the vesting has passed the output will be:

{
    "status": "SUCCESS",
    "success": true
}

Lock-up Token Spend Bundle

These are the steps to check the status and ownership of your tokens. You’ll need the following command line tools:

  • cdv and brun [https://pypi.org/project/chia-dev-tools/]
  • jq [https://stedolan.github.io/jq/]

In the following command replace a number (no less than 0, and less than the number of recipients) for $idx.

Checking the status of the coin

Look for the amount key in the json output. Its value divided by 1000 is the amount of tokens in the coin. confirmed_block_index gives the block index, on which this coin was created.

Checking ownership of the coin

For this we need to extract the puzzle reveal from the spend bundle. We’ll store in a variable in our shell session.

Then we proceed in three steps:

  1. Is this a coin for a CAT (Chia Asset Token)?

If the output is 72dec062874cd4d3aab892a0906688a1ae412b0109982e1797a170add88bdcdc then the answer is yes.

  1. What is the asset ID of the CAT?

The output should be the asset ID.

  1. Will the tokens from this coin show up in your wallet after the vesting period?

We run the inner puzzle with the solution “($amount)”:

The output should be something like this:

((82 <lock-up period>) (73 <amount> )(51 0x<encoded address> <amount> (0x<encoded address>)))
  • (82 <lock-up period>) means that spending this coin will succeed only after a certain number of blocks (given by lock-up period) have passed since this coin confirmed_block_index. The value of lock-up period may show up in hexadecimal format.
  • (73 <amount>) checks that the amount passed in the solution is the amount of the coin.
  • (51 0x<encoded address> <amount> (0x<encoded address>)) means that the given amount will be sent to the address.

Running cdv encode <encoded address> should output the recipient address.

(Optional) You can check that the solution for the inner puzzle in the spend bundle is actually the solution we used for running the inner puzzle.

References

Coins, Spends and Wallets