Git Product home page Git Product logo

hashi-app's Introduction

Hashi app

We built the first and only bridge for all your Non Fungible Tokens between Tezos and Ethereum.

  • You can wrap any FA2 token to Ethereum
  • Or any ERC-721 token to Tezos

Convinience

Any FA2 or ERC-721 token can be bridged through Hashi. The tokens can be wrapped or recovered at any time. If you decide to sell the wrap NFT, to new owner will be able to unwrap it in its principal chain.

Decentralization

The protocol, unlike most of the bridges out there, can be use in a full trustless manner. We just deploy the 4 contracts needed to achieve this (2 per chain), and everything can happen without us now. Of course we also build an app, for non-nerds that just want to expand the field of possibilities for their NFTs.

Security

We imagined the protocol in such a way that there is no multi chain transactions, which are often attack vectors for bridges. Plus, it allow to add other blockchains in the protocol quickly, to expand the ecosystem of NFT tezos again and again.

Quick start

Clone the project

git clone https://github.com/hashi-protocol/hashi-app.git && cd hashi-app

Dependancies

yarn install

Connect your Ethereum wallet on the Ropsten testnet

Connect your Tezos wallet on the Florencenet testnet

You are ready to try Hashi ! โœจ

(We deployed a nice NFT faucet so that everyone can try and give feedback)

Useful links

Operation (simplified)

Idea

Each chain has two contracts:

  • a locker, which store the NFT on their main chain until the wrap version is burn.
  • a minter, or wrapper, which mint the wrap token, with the same metadata.

The operation is pretty simple: a user comes and lock its NFT into the locker on chain A. Then he mint a wrapped token on chain B. And when he wants to recover its original NFT, he burns the wrapped one (we have equipped it with this function) and he can unlock it on blockchain A.

Security

Now we are able to lock, mint, burn and unlock NFTs from Tezos to Ethereum. But what is to stop someone from mining his own nft several times, or even mining a nft that is not his ? And what happen if the wrapped NFT has been sold ?

So we have some checks to do before letting these operations take place :

  • check if an NFT has already been wrapped before wrapping it
  • check if a wrapped NFT has been burned on blockchain B before unlocking it on blockchain A
  • check that user who wants to wrap an NFT on blockchain B is the owner of it on blockchain A
  • check that user who wants to unlock an NFT on blockchain A was the last owner of it on blockchain A

Decentralization

Of course we could have done this of chain, one a secured server. But that is not what we wanted to do here. We wanted Hashi to be fully trustless, fully decentralized, and fully autonomous.

So we managed to find solutions to these security checks with decentralized oracles and with adding on chain storage on certain functions. More on that in the coming whitepaper...

Summary

Let's take an example. Alice owns a beautful NFT on the Ethereum blockchain, and wants to use it in art galleries or games, but with low fees, and with the minor ecological impact of Tezos.

She wraps it using Hashi :

hashi - wrap

And when she wants to recover it :

hashi - unwrap

About

This project was built by :

  • Nikita Terekhov
  • Pierre-Antoine Arsaguet
  • Mathis Gontier Delaunay

We are all engineering student from Telecom SudParis, and INSA Lyon. We met with KRYPTOSPHERE, the first and biggest french student association working on blockchain and new technologies.

hashi-app's People

Contributors

neeeekitos avatar mathisgd avatar pierreia avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.