Introducing the AS1 token: an experiment in hypercapitalism
Spencer Dinwiddie, self-proclaimed "tech guy with a jumper", will officially offer bond-backed security tokens on Ethereum, representing shares in his performance-incentivized contract with the Brooklyn Nets of the NBA.
This is a pretty dope concept. For fans, it's a cool way to support your favorite players. In addition to offering some upside for investors, some of the biggest token holders will join Dinwiddie for All-Star Weekend. It's fantasy sports-adjacent with tokens that could be put to work as collateral.
For players, it's a way to monetize their future income streams and bootstrap liquidity. The fixed nature of sports contracts makes them easy to "tokenize" and so, it will be a fascinating experiment to watch to see if other professional athletes follow suit in the coming months/years.
But, who says my man Spencer gets to have all the fun?
With a huge S/O to @RyanSAdams' Bankless and @Abv_Avg_Joe for his detailed step-by-step instructions and help, I've excited to announce that today, I am officially launching the limited edition AS1 token on Ethereum.
I'm not exactly sure how this will go, but I think it's a damn cool idea, so let's give it a try.
To take a somewhat scienitific approach and document the process for better or worse throughout, I've laid out the objectives of this experiment below:
Tokenize 100 hours of my time on Ethereum (ERC-20 standard);
Create the mechanism to redeem & burn the token;
Offer my tokens on a decentralized exchange (Uniswap) to determine a fair price.
For the scope of this article I will focus on the process of creating the tokens, smart contracts and offering them on Uniswap. I'll write a follow up article a little bit later on after the tokens have been out in the wild for a while.
Without any further ado, let's get to it!
Step 1: Creating the Token
Right, so I will be following the guide published in the Bankless newsletter on January 14, 2020. There is a paywall for the Bankless, but the subscription has been a hugely valuable resource for me and I highly encourage you to consider signing up.
OpenLaw.io is an open source protocol for creating legal agreements built on Ethereum. It's a pretty cool project but this is my first time using them so I had to sign up (and provide an email address).
Once I had gone through the relatively painless signup, the first step in creating my new token was to head over to the OpenLaw Personal Token Generator.
Pictured: I just needed to add in few details and the OpenLaw did the rest
The way that this "Generate Personal Token" template has been set up, if I wanted to create more tokens, I'd have to start over with a fresh batch/series. Each new token minting requires its own smart contract. So for this first experiment, I've decided to keep it to a limited release at just 100 tokens in the AS1 series. Who knows, maybe those that don't get redeemed & burned might become collector's items one day?
Once the form had been completed, I sent it off for an official signature (by me) before the contract was deployed to the Ropsten test network. I bring this up because it is a strange UX/UI pain point. I literally had to switch networks over from the Ethereum mainnet to Ropsten in order to officially sign the contract. From what I understand, they did this as a way to hack a gasless transaction for the signature...Ok, but still, pretty annoying. The Ropsten network was painfully, torturously slow approving this trascation. To the point that I was questioning if I had screwed something up and had to ask other people if they were running into the same problem. This is the type of thing that would need to get ironed out before this could scale.
Pictured: Signed and ready to execute on the Ethereum mainnet.
All that said, about an hour after approving the "signature" transaction, I was ready to "Execute" the smart contract on the Mainnet. This was quick and only took a minute or two.
Pictured: On January 15, 2020, the AS1 token was born.
Step 2: Creating the
Now that we've successfully birthed the AS1 tokens onto the Ethereum blockchain, it's time to create a smart contract that allows holders of the AS1 tokens to redeem their assets at a ratio of 1 token for 1 hour of my time.
This step will also be handled by OpenLaw.io. Essentially, we create a new OpenLaw template that can be used by anyone (and found in their database) under the name of "AS1 Token Redeem".
Pictured: The OpenLaw AS1 Token Redeem Form. This will auto-fill the Contract.
So now, whenever a token holder wants to redeem their AS1 Tokens, they just go to the AS1 Token Redeem on OpenLaw.io
Sidenote: This is all very early technology. The easy comparison is the internet in the early '90s. Imagine trying to navigate the web on a 16kb modem through this Netscape UI. Yikes.
Pictured: Yahoo.com on the Netscape internet browser circa 1993
That said, this has not been a seemless experience thus far. The delays approving the signature on the Ropsten network and a few debugging errors on the
redeem contract, have put me on this project for about 4 hours now. No light endeavour. This could be a lot easier, and I am sure that it will get easier in the future but as of today it still has a long way to go.
Getting back to the task at hand, however, I now have 100 redeemable AS1 tokens that I need to put out on the market.
Step 3: Listing The Token on Uniswap.Exchange
For those that are unfamiliar, Uniswap is a decentralized exchange protocol launched in November 2018 on Ethereum. It was created by Hayden Adams with funding by the Ethereum Foundation, and has since won the hearts and fandom of many decentralized finance and Ethereum advocates.
The Uniswap protocol that allows users to swap tokens and ETH by trading against a collection of assets held in a "liquidity pool" smart contract. There are no order books on Uniswap as there are on traditional exchanges, but rather the exchange rate for a given token pair is based on the ratio of ETH and tokens held in each pool. The total amount of liquidity provided for both tokens in the trading pair, aka the depth of each pool, enables bigger trades and more trading.
What also makes Uniswap special is not only that anyone can interact with these liquidity pools to swap tokens (non-custodial), but also that anyone can be a liquidity provider and earn fees in tokens and ETH based on their ownership stake of the pool.
In order to earn returns as a liquidity provider on Uniswap, you must provide both sides of the pair in a liquidity pool. Your return on trading fees grows as trading volume for the token pair grows. Uniswap is programmed such that it costs traders a 0.3% fee for each trade; the fees earned are then added back to the liquidity pool and distributed proportionally among liquidity providers.
Uniswap works on the concept of bonding curves. Bonding curves essentially allow for the minting and burning of a new token in exchange for a reserve token via smart contract.
In Uniswap's case, when you provide liquidity to the pool (i.e. ETH and another token), you receive a new liquidity token in exchange that represents a percentage of the total liquidity pool. When trades are made and fees are earned, no new liquidity tokens are minted. This in effect splits the fees proportionally among all existing liquidity providers.
Pictured: Curved Bonded Token with similar buy (in) & sell (out) curves by Simon de la Rouviere.
So far sounds pretty cool, right? The more trading, the more fees for liquidity providers.
Well, without getting into too much detail, the major caveat is a concept called impermanent loss. As a liquidity provider, you earn more fees as more trading occurs, however, you lose money as the % change between the assets increases -- in either direction. Meaning, any price ratio change between when you added the assets to the pool to when you withdraw, results in a loss. Net gains are therefore the trading fees accrued minus the impermanent loss when you withdraw - it matters when you enter and exit a pool.
One extremely helpful tool for managing and visualizing returns for liquidity providers on Uniswap is Pools.fyi.
Pictured: The 30-day historical returns for the ETH-MKR Liquidity pool on uniswap (including impermanent loss).
Right so, now that we have that intro to Uniswap out of the way, let's get back to the AS1 Token...
Instead of doing a ton of math to determine the optimial price for my AS1 token in ETH terms, I essentially said I would like to earn 10 ETH for this 100 hours of my time, and went with that.
Pictured: Initial liquidity deposit of 10 ETH + 98 AS1 Tokens.
That means that at initial liquidity, 1 AS1 Token (1 Hour with me) = 0.1 ETH (roughly).
Pictured: Initial exchange rate of 1 AS1 Token = 0.1 ETH.
As of writing this, 0.1 ETH is about $16 USD. Demand for the AS1 token will dynamically adjust pricing, so hopefully I can raise my rate!
Ok, so now anyone can technically buy the AS1 token on Uniswap but the marketer in me can't really stop there.
How easy would it be for someone without an Ethereum wallet (or ETH) to get from my website to redeeming AS1 tokens? At this point, it's a pretty difficult UX. Even for those poeple that have used Uniswap before, you can't just search for "AS1" in Uniswap to find my token.
Pictured: No exchange found for the AS1 token on Uniswap when you search "AS1".
You have to search for the Ethereum token contract address:
0xE3Dc650b0054C5fd4aEa05cb110c1c19733BFE05 in the search bar in order to find it (but I have been told this will be resolved in the v2 of Uniswap scheduled to launch later this year).
Pictured: Found it!
The process of redeeming the tokens is also fairly cumbersome. Unless you have a link directly to our "AS1 Redeem Token" template on OpenLaw.io, you'd have to go to the site and search for it.
One of my big takeaways so far is that I will need to create a short video to explain the concept behind AS1 token and how to use them. More on this to follow (I will post it here as soon as it's ready).
Second, in order to be exceptionally clear on the value prop for token holders, I will create a dedicated website to host all related info and news at AS1token.com. More on this to follow soon as well.
I'm sure I'll think of a ton of other things after I finish writing this and start to work on the video and website. As I mentioned earlier, I will also write a follow-up article in the next couple weeks to check in on progress.
Anyway, what do you think about the AS1 token? Are you a buyer? Going to make your own token? Get @ me on Twitter: @andysimon_co.
© Andy Simon. All rights reserved.