Skip to main content
Starknet is a zero-knowledge rollup on Ethereum. This guide covers Starknet-specific features when using Dfns wallets.

Wallet architecture

On Starknet, wallets are smart contracts. Dfns uses the OpenZeppelin (OZ) implementation for wallet contracts.

Wallet lifecycle

  1. Key generation: When you create a Starknet wallet in Dfns, a private key is generated and an address is derived
  2. Receiving funds: You can receive assets at this address before the wallet is deployed
  3. Activation: Before you can send transactions, you must deploy the wallet contract using the Activate Wallet endpoint
You need funds in the wallet to pay for the activation transaction. Ensure the wallet has sufficient balance before activating.

Token standards

Starknet uses EVM-like token standards:
StandardDescriptionEquivalent
SNIP-2Fungible tokensERC-20
SNIP-3NFTsERC-721
SNIP-12Typed structured dataEIP-712

Native tokens

Starknet has two native tokens:
  • STRK: The native network token used for fees
  • ETH: Bridged Ethereum, also widely used

Transfers

Use the Transfer Asset endpoint for Starknet transfers:
  • STRK: Use kind: Native
  • ETH: Use kind: Erc20 with the ETH contract address
  • SNIP-2 tokens: Use kind: Snip2 with the token’s contract address
  • SNIP-3 NFTs: Use kind: Snip3 with the NFT’s contract address and tokenId

Fees

Starknet fees can be paid in different tokens:
Fee tokenNotes
STRKDefault, most efficient
ETHAutomatically swapped to STRK first, resulting in higher fees and multiple transactions
For the most cost-effective transactions, ensure your wallet has STRK for fees rather than relying on ETH.