At Dapper Labs, we are truly excited about the potential for Web3 to usher in a new digital ownership economy, with an opportunity to create a massive wave of network effects.
Web3 encapsulates all of the underlying blockchain technology that enables a new way of looking at web applications, going beyond the centralized platform management of today’s organizations to the publicly verifiable ownership of digital assets. The ownership and portability of digital assets is made independent of centralized entities by locating those assets on decentralized blockchains. This model further encourages composability by identifying reusable primitives that can be publicly leveraged by any project, instead of siloed systems existing inside of private entities.
That’s why we created Dapper, a product of Dapper Labs. Dapper enables developers to quickly build amazing Web3 products at mainstream scale, accessing the largest Web3 community. Our secure wallet with verified apps increases the trust and safety of the end user enabling anyone to comfortably, conveniently and confidently participate in Web3.
The Web3 Stack
Building a Web3 Application with Dapper involves understanding of each of the technologies in the following stack:
- Flow Client Library (FCL): Provides convenient access to the Flow Blockchain including wallet authentication, querying and mutations.
- Dapper Wallet: Acts as the gateway for the user to approve for all transactions. Only verified transactions are allowed, and transactions presented in plain-english so users know what the transactions are doing.
- Dapper Platform: Provides the core functionality behind the Dapper Wallet. Developer contracts and transactions are registered with the platform, providing access to users in the Dapper ecosystem.
- Back-end Services: All off-chain services required to create a rich user experience. This includes databases, media gateways, analytic services, logging, etc. The backend services can also interact directly with Flow through FCL.
- Client Application: Provides either a web or mobile user interface and uses a combination of calls to the Flow blockchain via FCL and calls to back-end services. Interactions with the blockchain can be done directly from the client, or via back-end APIs depending on the application architecture.
- Flow Blockchain: The blockchain underlying the entire ecosystem. All contracts and accounts exist on-chain, and all transactions are recorded on-chain.
Dapper Platform provides developers access to a premier ecosystem of web3 products and Dapper Wallet’s key functionality. This includes:
- Identity: Easily onboard customers in a matter of seconds.
- Checkout: Provide a seamless purchase experience for all your customers.
- Custody: Users can safely store and share their digital collectibles.
- Airdrops: Reward customers with things they love.
- Fungible Tokens: Issue, distribute, and transact in arbitrary tokens.
Dapper Platform leverages the Flow Blockchain to provide a safe and secure ecosystem for users, from the blockchain layer all the way up to the user experience at the application level.
Flow is an environmentally friendly, fully decentralized blockchain that is built to put users first with:
- Minimal transaction fees
- Fast deterministic finality
- Human readable messages
- Secure Account Recovery flows
- Upgradeable Smart Contracts
- Built in logging support
Cadence is a new smart contract programming language for use on the Flow Blockchain. Cadence introduces new features to smart contract programming that help developers ensure that their code is safe, secure, clear, and approachable. Some of these features are:
- Type safety and a strong static type system
- Resource-oriented programming, a new paradigm that pairs linear types with object capabilities to create a secure and declarative model for digital ownership by ensuring that resources (and their associated assets) can only exist in one location at a time, cannot be copied, and cannot be accidentally lost or deleted
- Built-in pre-conditions and post-conditions for functions and transactions
- The utilization of capability-based security, which enforces access control by requiring that access to objects is restricted to only the owner and those who have a valid reference to the object
Resource-oriented programming, and by extension Cadence, is the perfect programming environment for Non-Fungible Tokens (NFTs), because users are able to store their NFT objects directly in their accounts and transact peer-to-peer. Please see the blog post about resources to understand why they are perfect for digital collectibles such as NBA Top Shot or NFL All Day Moments.
Dapper Wallet allows users to pay using fiat or cryptocurrencies.
Every Dapper user has a “Dapper Balance” that represents a USD denominated balance and any on-chain transactions are done internally using utility tokens called DUC (Dapper Utility Coin that represents USD) and FUT (Flow Utility Token that represents Flow). These tokens are purely on-chain accounting tokens.
Users can off-ramp their “Dapper Balance” using various methods depending on their jurisdiction. This includes Automated Clearing House (ACH) Transfers in the US, Wire Withdrawals in the US, Canada & UK, and USDC stable coins on Flow or Ethereum internationally.
Dapper Wallet users can buy NFTs from other users or other dApps integrated with Dapper Wallet.