Smart Contract Applications



Smart contracts are also applicable in a situation when every transaction for several types of asset needs to be taxed. Each time a smart contract triggers a transaction, a fee is associated with that transaction.

Since the administrative fees for smart contracts are paid in cryptocurrencies, there may be income tax implications. The recipient of the fee associated with the transaction, oftentimes cryptocurrency miners, may need to report this income.  To the extent that the transactions may span international markets, they may raise transfer pricing considerations and the possibility of income-reporting requirements to multiple international tax authorities.


Atomic swaps

An atomic swap enables users to swap assets without using exchanges. In an atomic swap, approval from both participants of the transaction is required within a specified time frame.

If at least one of the participants fails to approve the transaction within the specified time frame, the transaction is cancelled and funds are not exchanged.


Crowdsale English Auction

In an English auction crowdsale model, buyers place bids, competing with each other to set the highest price.

Every higher bid displaces an earlier bid. If no competing bidder challenges the current bid within a given time frame, the bidder who placed it becomes the winner.

In a variation of this, the seller sets a minimum price for an item. If no buyer places a higher bid than this minimum price, the item remains unsold.


Crowdsale Dutch Auction

In a Dutch auction, an item is initially offered at a price exceeding the amount the buyer expects to pay. Then the price is gradually lowered until a bidder accepts the current price.

In this example, we use the same tools as in the previous one, also adding a delta for a step price. The account’s script checks if a participant has actually placed the first bid for the current price.

A public key and the sender’s signature will have to be added to the transaction proofs. Otherwise, the blockchain doesn’t accept the DataTransaction.


Insurance Tokens

Let’s consider a situation where we need to protect users’ assets from financial loss.

For instance, a user may want to ensure that they will be able to recover the entire amount paid for tokens in case of the token’s devaluation, and are prepared to pay a reasonable insurance premium.

For that purpose, “insurance tokens” will be issued. A script to the insured’s account is applied, allowing only ExchangeTransactions that meet certain conditions.