JUST F*CKING
USE FLOW.
The only L1 built for consumer apps.
Gasless UX, Resource-oriented security, and 1-second finality.
THE ONBOARDING SPEEDRUN
From zero to Testnet deployment.
01
Install Flow CLI
$ sh -ci "$(curl -fsSL https://raw.githubusercontent.com/onflow/flow-cli/master/install.sh)"02
Initialize Project
$ flow init03
Generate Testnet Key
$ flow keys generate --network=testnet04
Deploy Your Contract
$ flow project deploy --network=testnetCADENCE 1.0 RECIPES
Battle-tested snippets for modern Flow.
Minimal NFT Contract
The core logic for a Flow Resource-based NFT.
access(all) contract MinimalNFT {
access(all) resource NFT {
access(all) let id: UInt64
init(id: UInt64) { self.id = id }
}
access(all) fun createNFT(id: UInt64): @NFT {
return <- create NFT(id: id)
}
}Send a Transaction
How to move resources (assets) between accounts.
import NonFungibleToken from 0xNFTADDRESS
transaction(recipient: Address, withdrawID: UInt64) {
prepare(signer: auth(Withdraw) &Account) {
let col = signer.storage.borrow<&Collection>(from: /storage/NFTCol)
let nft <- col.withdraw(withdrawID: withdrawID)
getAccount(recipient).capabilities.get(/public/NFTReceiver).borrow()!.deposit(token: <-nft)
}
}WHY NOT JUST USE ETHEREUM?
Resource Oriented
Assets are real objects in storage, not just a line in a mapping. It's impossible to 'double spend' logic.
Native UX
Multi-sig, account recovery, and gasless transactions are built into the protocol, not hacked on top.
Scalability
Separation of collection and consensus allows high throughput without sharding headaches.