Getting Started

These docs are still a work in progress so please bear with us!

Snowflake Overview

Snowflake Smart Contract Overview

The Snowflake smart contract is a compliant Provider under ERC 1484

Under traditional smart contract infrastructure, dApps interact with users recognized by an Ethereum address. This creates complex user experiences in which a user must create a wallet, generally acquire Ethereum in their wallet and often additional tokens unique to the dApp experience. Snowflake operates as a base class that creates an underlying ecosystem of dApps that enable developers out-of-the-box to:

  • Leverage a broad range of digital identity standards through ERC 1484.

  • Allow users to access their dApps from an Identity associated with multiple addresses, and accordingly multiple devices without insecurely transferring private keys from one device to another.

  • Charge users directly in the HYDRO token for services provided by the dApp.

  • Charge users indirectly through a smart contract for services provided by the dApp.

    -- This transfer can occur through a DEX, enabling dApps to maintain complex token ecosystems and receive payments in any token without their end-users needing to manage multiple tokens in their wallets.

    -- This transfer can occur through arbitrarily sophisticated smart contracts with sophisticated payment structures such as interest rates, late fees, subscription fees, escrows, and other functions important to dApp development.

  • Pay gas costs for user transactions occurring within their dApps through meta-transactions, removing the requirement for their end users to pay gas costs. This significantly simplifies the user onboarding flow, removing the requirement for dApp end-users to hold Eth in their wallets.

Setting up a dApp for Snowflake

dApps using Snowflake will need to inherit Snowflake as a provider.

contract Example is SnowflakeResolver {
constructor() public {
snowflakeDescription = “Example dApp“;
snowflakeName = “Example”;
}
}

Parameter

Type

Description

snowflakeDescription

string

Short description of what the app functions as.

snowflakeName

string

notation given to the constructed application.