Reality Cards — Progress Update

DeFi Dude
Reality Cards
Published in
6 min readMay 1, 2021

Welcome to the latest progress update, where we dive into what has been going on at Reality Cards, what’s coming next, and more. If you’re curious what we’ve been working on (and why we haven’t launched yet) — read on!

Growth

First and foremost, we’ve grown! Andrew Stanger, CEO and Co-Founder stated:

“Just three months ago, at the closing of our seed round, Reality Cards had only two full time employees — myself and my co-founder Vlad. We are now a team of six full time team members, and have achieved substantial recent progress in all stages of product development”

New team members include Daniel Chilvers (formerly stakeyourname.eth) as our solidity engineer, Mateusz Suchoń (formerly chess.com) and Paulius Kašiuba (formerly Ethearnal) as front-end developers. DeFi Dude, our illustrious community manager who has been with us since the early days in a part time capacity, has now joined us full time. Finally, Aditya Kandari, a serial founder and product guru, has also joined the team as a part time product manager.

Further, following a second funding round in April, we are now well capitalised, with a Treasury in excess of $2m.

Updates

Back in February, we unveiled an early testnet version of our new interface. There was far more to this than just a new fancy look, with lots of behind-the-scenes changes. Most notably, we are now fully integrated with The Graph, decreasing load times by over 90% and allowing users to view event data without having to connect their wallet (or even having one at all). Another update we unveiled is the “shared deposits” feature, which we’ll dive into more below.

We’re continuing to iterate on this version with updates coming thick and fast. We are hoping to incorporate a regular update cycle that comes with new features rolling out on a near weekly basis. For the first time since the project began, our “to-do list” is actually getting shorter!

Some recent updates we’ve rolled out:

  • New leaderboard and orderbook
  • Profile section
  • Mountains of new user data
  • Time limits on rented Cards
  • Notification badges
  • Card images on the event explorer
  • Bug fixes, lots of bug fixes

There still remains a lot more work to be done (most obviously, decentralized market creation, a mammoth task in itself), but this isn’t what’s been stopping us from launching quite yet. If you’re wondering what’s holding us up so far, you may have guessed it, but if not — the contracts.

Contract Changes

The first version of the smart contracts (which were also used in our MVP) were completed and audited almost a year ago. However, user feedback exposed two glaring shortcomings:

  1. No shared deposit
  2. No underbidding

So what’s a shared deposit all about? In the MVP, every event was a separate contract, and they did not talk to each other. This works fine if we only have one event at a time — but creates a UX nightmare if we have multiple events concurrently, because a user’s unused deposit becomes “trapped” within each event.

Example: Alice deposits 100 DAI on the event “What t-shirt will Vitalik wear tomorrow?” and she rents the “Rainbow Unicorn” Card for 10 DAI/day. Bob later takes the card from Alice when she had only paid 1 DAI out of her deposit, leaving Alice with 99 DAI. Later, Alice notices a new event “What will the price of ETH be next week?” which she wants to bet on, but she is unable to immediately participate as her 99 DAI remains in the t-shirt event contract, requiring her to withdraw and re-deposit into the new event. This is a terrible user flow.

Without shared deposits, Alice can’t rent either Card without withdrawing from another event first

Shared deposits, where we have a single Treasury contract which holds all user funds across all events, solves this problem. Each event remains a separate contract, but does not hold any funds. A user now only needs to make a single deposit, and the funds can be used across as many events as they wish.

What about “underbidding”? In the MVP, if a user wished to rent a Card but at a lower price than what was currently available, their only option was to wait for the price to drop and rent it manually. So for the traders out there, it’s as if only market orders were available on your favorite crypto exchange, and limit orders were not possible. We needed a way for users to “underbid” the current price, so that if the current owner ran out of the deposit, you could automatically become the new owner at the lower price.

Work on the above two features began immediately, and were completed in December, with audits coming back in January. Unfortunately, a potential exploit was discovered in the audit: the new underbidding-capable orderbook had introduced the possibility of a subtle form of DDoS attack, effectively allowing a user to fill an orderbook with spam and prevent anyone else from owning a Card (note that this would not have put user funds at risk).

This issue was promptly fixed, with the second round of audits coming back in March. While the orderbook (and other) issues were resolved, major gas inefficiencies were highlighted. Without going into too much technical detail, the contracts at the time allowed for a maximum of 30 Cards to be rented simultaneously. However, an opportunity to use extensive memoization throughout the rent collection process was identified which increased this maximum into the thousands. Given the extensive improvement to the user experience this would provide, we decided to delay launch yet again for time to implement this feature.

Next Steps

We’re currently working extremely hard to implement the necessary changes to allow users to rent as many Cards simultaneously as they could reasonably ever desire. These changes also fix various other issues previously identified, such as users being able to selectively choose the order of individual Card rent collections.

The changes required are substantial but are nearly complete, and (hopefully) the final version of the contracts should be ready within a couple of weeks. Then begins a 6–8 week period of audits and further testing, giving us an estimated launch date of late June or early July.

We know it’s been a long road (and a long read), and we thank you and everyone in our growing community for your continued support and patience. Nobody is more excited to get this show on the road than us! We have every confidence that Reality Cards, and the new concept of “outcome ownership” is going to completely change the way we think about prediction markets and NFTs in general. Thus, it’s worth getting it right.

What is Reality Cards?

Reality Cards, as the world’s first ‘outcome ownership’ market, is a unique hybrid of NFTs and prediction markets.

Each outcome is an NFT (or ‘Card’) and are not bet on, they are owned, by whoever is willing to pay the highest rental price. At the end of the event, all rental payments are shared by all owners of the winning outcome in proportion to ownership time.

The outcome NFT itself is collected by whoever owns each outcome the longest, whether or not it was a winning outcome.

Thus, Reality Cards transforms real-world events into beautiful and unique NFTs.

Stay Connected

--

--