Build User-Centric DApps with Torus at ETH London 2020

Take part in Torus Workshops and API Prizes at ETH London 2020
Build User-Centric DApps with Torus at ETH London 2020

Take part in Torus Workshops and win API Prizes at ETH London 2020

Torus is Sponsoring ETH London 2020

The Torus team will be heading over to the United Kingdom for the first ETH Global hackathon of 2020. Since our launch out of Beta earlier this month, we will be conducting research on how developers utilize our features to identify key areas for development.

We will also be showcasing some of our latest features on our alpha test-net with the community.

Torus API Bounty Prizes

Developers looking for a challenge at ETH London should definitely aim to build for our API prizes. We will be awarding several prizes to outstanding projects that best incorporate Torus and its user-centric features into their projects.

For this hackathon, we will be awarding prizes totalling £2,000 to 6 teams that integrate Torus as their login mechanism with the following criteria:

  • 1 Grand prize of £500 in ETH will be awarded to the most technically interesting DApp.
  • 1 Prize of £300 in ETH will be awarded to the best DApp that utilises Torus’ Account Resolver Feature (e.g. using Google, Reddit or Discord accounts for distributing tokens through a contact list).
  • 1 Prize of £300 in ETH will be awarded to the best DApp that implements Torus Email/Phone Number logins.
  • 1 Prize of £300 in ETH will be awarded to the best DApp that integrates Torus with a focus on privacy (e.g. Aztec Protocol, NuCypher, Enigma).
  • 1 Prize of £300 in ETH will be awarded to the best DApp that integrates Torus with a focus on DeFi.
  • 1 Prize of £300 in ETH will be awarded to the best DApp that integrates Torus’ smart contract capabilities.

Integrate Torus in 10 minutes

Developers are recommended to have their build environments configured for NodeJS: 10.x for efficient integration, with which they can then simply integrate Torus through the NPM package.

@toruslabs/torus-embed
This module generates the javascript to include in a DApp via a script tag. It creates an iframe that loads the Torus…

import Torus from "@toruslabs/torus-embed";
import Web3 from "web3";const torus = new Torus();
await torus.init();
await torus.login();
const web3 = new Web3(torus.provider);

After initiation, developers can choose to utilize Torus features like our Get User Public Information, Torus Name Resolver or integrated FIAT On-Ramps to better enhance the usability of their programme. A detailed breakdown to our API references can be found at our documentation page.

Getting Started
The code snippet below sets Torus as the default login method for the DApp, paste the following script to the of…

Get User Public Information

With Torus, developers are able to utilize the user’s basic public information made available by the user to personalise each login with the user’s profile picture, name and email address.

The user would have to be logged in to get their information, and only the first call in the session would open a pop-up window prompting for the user’s consent.const userInfo = await torus.getUserInfo();interface UserInfo {
email: string;
name: string;
profileImage: string;
verifier: string;
verifierId: string;
}

Torus Account Resolver

Users are able to send tokens directly to Google email accounts, Reddit usernames and Discord IDs regardless of whether the recipient has logged into Torus prior. Developers can get the public Ethereum address associated with each Google, Reddit or Discord account for seamless user transaction flows.

If there are no keys assigned to the specified account, the Torus network will assign and peg new keys to the account on its first interaction.const publicAddress = await torus.getPublicAddress({
verifier: "google" | "reddit" | "discord";
verifierId: "random@gmail.com"
});

Initiating Top Ups

Torus has integrated with several FIAT On-Ramp providers to allow users to directly top-up their wallet balances with ETH or DAI without having to ever leave the DApp. Developers can initiate top-up transactions directly to maintain seamless overall user experience.

Referenceconst paymentProviders = {
moonpay: {
 minOrderValue: 24.99,
 maxOrderValue: 2000,
 validCurrencies: ['USD', 'EUR', 'GBP'],
 validCryptoCurrencies: ['ETH', 'DAI', 'TUSD', 'USDC', 'USDT']
},
wyre: {
 minOrderValue: 20,
 maxOrderValue: 250,
 validCurrencies: ['USD'],
 validCryptoCurrencies: ['ETH', 'DAI', 'USDC']
}
}

Exampleconst paymentStatus = await torus.initiateTopup('moonpay', {
selectedCurrency: "USD",
fiatValue: 50,
selectedCryptoCurrency: "ETH"
});

Workshop: Phone & Email Logins, Smart Contract Wallets and the Path to Decentralised Custody

Developers looking to learn more about integrating Torus, or looking to try out Torus’ latest features on our alpha test-net can attend our workshop hosted by our co-founder and CEO, Yong Zhen Yu. There, Zhen will conduct in-depth consultations for teams building on Torus.

The workshop will be held at 9:30 am on the 29th of February, Saturday at the event venue.

Join Our Community

Join our community for updates on the progression of Torus and drop us a line on any of our social channels if you’d be keen on building DApps for mainstream audiences.

Twitter, Telegram, Reddit