際際滷

際際滷Share a Scribd company logo
Enabling frictionless
access to DApps
Julien Niset @jniset
Itamar Lesuisse @itamarl
@argenthq
Paris, 5 March 2019, EthCC
Should you decide to stay in the room, we will
1. Show how the Argent Wallet helps people take their first
step into the world of Ethereum
2. Introduce Argent Connect and how it enables frictionless
access to DApps
3. Guide you through how to integrate Argent Connect in
your DApp with 10 lines of code
The Argent Wallet
Why did we start Argent?
Too easy to lose
assets
Too scary to
transact
Wallets cant
connect to DApps
Security
Freeze your account
Recovery if you lose your
phone (without seed phrase)
Block fraudulent transactions
Set daily transaction limit
Biometrics/Encryption
Simplicity
Trusted contacts
No transaction fees
No cryptic addresses
!
"
#
$
%
&
'
Can a non-custodial wallet have the UX of N26/Revolut/Monzo?
(
The answer is yes, a smart contract wallet makes it possible
Seedless recovery
with Guardians
Prevent theft with
Trusted Contacts
Free transactions
with Gas Abstraction
How does it work?
The private key in your phone signs an intent
This intent is relayed to the blockchain
veronika.
argent.xyz
Your wallet (smart contract) executes the intent
if the signing key has the necessary permission
Our smart contracts, in one slide
veronika.
argent.xyz
{} {} {} {}
{} {} {} {}
 A simple Base Wallet holds the funds
and identity of a user
 A set of authorised modules can
invoke the wallet
 Each module handles a specific piece
of the Wallet logic
 Modules can be added/removed/
upgraded by the owner
 All modules accept Meta-
Transactions
 Modules are shared between the
Wallets
Lock
Manager
Recovery
Manager
Guardian
Manager
DApp
Manager
Token
Transfer
Module
Manager
Approve
Transfer
Token
Exchanger
https://github.com/argentlabs/argent-contracts
Today, we have 3 types of keys
Owner
Guardian
DApp
full wallet management
security features
custom policies
Argent Connect
Users in control of their
assets, identity and data
through their wallet
Work on web and mobile, in
native apps and browsers
No need to constantly switch
between DApp and wallet
No need to own ETH or any
token at all
Protection from scammy
DApps
Our dream DApp experience
)
*+
,
-
.
/ UX as good as Web 2.0
The Argent Connect flow step by step
1. Scan the QRCode and establish a secure communication
channel between the DApp and the Phone.
veronika.
argent.xyz
The Argent Connect flow step by step
2. Send a connection_request with info (name, logo) and the
contracts and methods requiring authorization
veronika.
argent.xyz
The Argent Connect flow step by step
3. Create a DApp key and authorise it for the DApp contracts
and methods
veronika.
argent.xyz
The Argent Connect flow step by step
4. Send a connection_accepted with the DApp key
address and (optionally) the associated private key
veronika.
argent.xyz
.
.
.
.
.
.
.
.
The Argent Connect flow step by step
5. Interact with the DApp contracts and methods using Meta-
Transactions signed by the DApp key
veronika.
argent.xyz
.
.
.
.
.
.
.
.
Option 1: The DApp private key is sent to the DApp
The Argent Connect flow step by step
veronika.
argent.xyz
.
.
.
.
.
.
.
.
signature-request
signature-response
5. Interact with the DApp contracts and methods using Meta-
Transactions signed by the DApp key
Option 2: The DApp private key is only kept on the phone
A few words on the security model
! DApp keys can only be used for a specific set of Actions
(contract + method) authorised by the user
! DApp key can handle token transfer and will be subject to
the DApp daily limit defined by the user
! Authorising a new DApp key is immediate if the DApp is in
the Argent DApp registry and takes 24 hours otherwise
! Users can decide that critical actions should only be signed
on the phone
Integrate Argent
Connect
As promised, in (almost) 10 lines of code
const ARGENT_CONFIG = {
dappName: "Checked-in at EthCC 2019",
dappLogo: https://pbs.twimg.com/logo.jpg',
authorizations: [
{
contract: "0x47EbC997e40dB11177EAB09444E196C46d96991b",
methodName: 'check',
methodSig: ['0x919840ad']
}
],
rpcUrl: process.env.REACT_APP_INFURA_URL,
debug: false
}
import ArgentConnectReactButton from 'argent-connect-react';
onConnectWithArgent = async (provider) => {
this.web3 = new Web3(provider);
// ...
}
<ArgentConnectReactButton config={ARGENT_CONFIG}
onConnected={this.onConnectWithArgent}/>
1. Import argent-connect SDK
https://www.npmjs.com/package/argent-connect-react
2. Define your Argent configuration
3. Add the ArgentReactButton component
4. Define a callback method to receive
the Web3 Provider
Whats next
 Fiat to crypto
 Android launch in April
 Wallet privacy (zkSNARKs)
 Onboard the first 100 DApps
 DeFi DApps
 Wallet connect and universal login interoperability
Interested in integrating Argent Connect in your DApp?
Contact us at dapps@argent.xyz or @argenthq
Want to try it first ?
Download Argent: https://argent.link/ethcc2019

More Related Content

Argent EthCC 2019 - Frictionless DApp experience

  • 1. Enabling frictionless access to DApps Julien Niset @jniset Itamar Lesuisse @itamarl @argenthq Paris, 5 March 2019, EthCC
  • 2. Should you decide to stay in the room, we will 1. Show how the Argent Wallet helps people take their first step into the world of Ethereum 2. Introduce Argent Connect and how it enables frictionless access to DApps 3. Guide you through how to integrate Argent Connect in your DApp with 10 lines of code
  • 4. Why did we start Argent? Too easy to lose assets Too scary to transact Wallets cant connect to DApps
  • 5. Security Freeze your account Recovery if you lose your phone (without seed phrase) Block fraudulent transactions Set daily transaction limit Biometrics/Encryption Simplicity Trusted contacts No transaction fees No cryptic addresses ! " # $ % & ' Can a non-custodial wallet have the UX of N26/Revolut/Monzo? (
  • 6. The answer is yes, a smart contract wallet makes it possible Seedless recovery with Guardians Prevent theft with Trusted Contacts Free transactions with Gas Abstraction
  • 7. How does it work? The private key in your phone signs an intent This intent is relayed to the blockchain veronika. argent.xyz Your wallet (smart contract) executes the intent if the signing key has the necessary permission
  • 8. Our smart contracts, in one slide veronika. argent.xyz {} {} {} {} {} {} {} {} A simple Base Wallet holds the funds and identity of a user A set of authorised modules can invoke the wallet Each module handles a specific piece of the Wallet logic Modules can be added/removed/ upgraded by the owner All modules accept Meta- Transactions Modules are shared between the Wallets Lock Manager Recovery Manager Guardian Manager DApp Manager Token Transfer Module Manager Approve Transfer Token Exchanger https://github.com/argentlabs/argent-contracts
  • 9. Today, we have 3 types of keys Owner Guardian DApp full wallet management security features custom policies
  • 11. Users in control of their assets, identity and data through their wallet Work on web and mobile, in native apps and browsers No need to constantly switch between DApp and wallet No need to own ETH or any token at all Protection from scammy DApps Our dream DApp experience ) *+ , - . / UX as good as Web 2.0
  • 12. The Argent Connect flow step by step 1. Scan the QRCode and establish a secure communication channel between the DApp and the Phone. veronika. argent.xyz
  • 13. The Argent Connect flow step by step 2. Send a connection_request with info (name, logo) and the contracts and methods requiring authorization veronika. argent.xyz
  • 14. The Argent Connect flow step by step 3. Create a DApp key and authorise it for the DApp contracts and methods veronika. argent.xyz
  • 15. The Argent Connect flow step by step 4. Send a connection_accepted with the DApp key address and (optionally) the associated private key veronika. argent.xyz . . . . . . . .
  • 16. The Argent Connect flow step by step 5. Interact with the DApp contracts and methods using Meta- Transactions signed by the DApp key veronika. argent.xyz . . . . . . . . Option 1: The DApp private key is sent to the DApp
  • 17. The Argent Connect flow step by step veronika. argent.xyz . . . . . . . . signature-request signature-response 5. Interact with the DApp contracts and methods using Meta- Transactions signed by the DApp key Option 2: The DApp private key is only kept on the phone
  • 18. A few words on the security model ! DApp keys can only be used for a specific set of Actions (contract + method) authorised by the user ! DApp key can handle token transfer and will be subject to the DApp daily limit defined by the user ! Authorising a new DApp key is immediate if the DApp is in the Argent DApp registry and takes 24 hours otherwise ! Users can decide that critical actions should only be signed on the phone
  • 20. As promised, in (almost) 10 lines of code const ARGENT_CONFIG = { dappName: "Checked-in at EthCC 2019", dappLogo: https://pbs.twimg.com/logo.jpg', authorizations: [ { contract: "0x47EbC997e40dB11177EAB09444E196C46d96991b", methodName: 'check', methodSig: ['0x919840ad'] } ], rpcUrl: process.env.REACT_APP_INFURA_URL, debug: false } import ArgentConnectReactButton from 'argent-connect-react'; onConnectWithArgent = async (provider) => { this.web3 = new Web3(provider); // ... } <ArgentConnectReactButton config={ARGENT_CONFIG} onConnected={this.onConnectWithArgent}/> 1. Import argent-connect SDK https://www.npmjs.com/package/argent-connect-react 2. Define your Argent configuration 3. Add the ArgentReactButton component 4. Define a callback method to receive the Web3 Provider
  • 21. Whats next Fiat to crypto Android launch in April Wallet privacy (zkSNARKs) Onboard the first 100 DApps DeFi DApps Wallet connect and universal login interoperability Interested in integrating Argent Connect in your DApp? Contact us at dapps@argent.xyz or @argenthq Want to try it first ? Download Argent: https://argent.link/ethcc2019