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
- Key generation: When you create a Starknet wallet in Dfns, a private key is generated and an address is derived
- Receiving funds: You can receive assets at this address before the wallet is deployed
- 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:
| Standard | Description | Equivalent |
|---|
| SNIP-2 | Fungible tokens | ERC-20 |
| SNIP-3 | NFTs | ERC-721 |
| SNIP-12 | Typed structured data | EIP-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 token | Notes |
|---|
| STRK | Default, most efficient |
| ETH | Automatically 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.