---
# System prepended metadata

title: 'Toy token: create and deploy a new token using a Rain expression.'

---

# Toy token: create and deploy a new token using a Rain expression.

*If you're looking for a deep dive on the Rain interpreter, what it is and what it's for, [click here](https://docs.rainprotocol.xyz/blog/what-is-rain-interpreter)*

In this game, you write an expression that is used to calculate how much of your new token can minted every time somebody calls claim.

[Play here](https://toy-token.on.fleek.co/)

![](https://i.imgur.com/byQbOcR.png)

Your new token will be deployed by a factory that is already on Ethereum. Every Toy Token is a clone, which means it has identical bytecode.

![](https://i.imgur.com/OJMOJrG.png)

Why is this a good thing? Because you (and your friends) can trust that in the ways that matter, every Toy Token will function in the same way. The Toy Token factory is a [hyperstructure](https://jacob.energy/hyperstructures.html). 

The special thing about your new token is that it has the Rain interpreter embedded in it. It uses the interpreter to work out how much of itself to mint when someone calls claim.

![](https://i.imgur.com/M9SeqCk.png)

The Solidity for Toy Token is still the same as other Toy Tokens. But, it calculates the claimable amount by evaluating an expression you set when you deploy the token. In other words, you are able to express a behaviour that is unique to your token.

![](https://i.imgur.com/rWPAQIv.png)

## What does an expression look like?

Rain expressions are intentionally simple to write, and simple to read. If you can write Excel formulas, you can write an expression.

```
eager_if(greater_than(ierc20_balance_of(token-address wallet-address) 50) 1000 2000)
```

Which means “If the user has more than 50 of some token, 1000, else 2000”.

For Toy Token, the final calculated number will be the amount of tokens to mint. But you can imagine embedding the interpreter into other contracts and using that number for something else, like the price of an NFT, or the amount of one token to trade for another in an order book.

So, you don’t need to know Solidity and write an entire smart contract to do really creative things. You can inject your own rules into a specified part of the contract, which is usually the part you really care about. The power is now in your hands.

![](https://i.imgur.com/uNJVa1T.png)

## A new security model

The readability of an expression is also a new model of security. You can read other Toy Token expressions and understand how the claim amount is calculated, without having to comb through hundreds of lines of Solidity. As long as you trust the other parts of the contract (and you can, because they are all clones), the only bit you need to care about is the expression.