This presentation covers the following topics:
- How the Argent Wallet helps people take their first step into the world of Ethereum
- Introduce Argent Connect and how it enables frictionless access to DApps
- Guide you through how to integrate Argent Connect in your DApp with 10 lines of code
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