> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dfns.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Starknet

> Network-specific features, signature kinds, supported assets, and integration requirements for Starknet wallets on the Dfns platform.

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](/api-reference/wallets/activate-wallet) endpoint

```mermaid theme={null}
flowchart LR
    A[Create wallet] --> B[Address derived]
    B --> C[Receive funds]
    C --> D[Activate wallet]
    D --> E[Contract deployed]
    E --> F[Ready to send]
```

<Note>
  You need funds in the wallet to pay for the activation transaction. Ensure the wallet has sufficient balance before activating.
</Note>

## 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](/api-reference/wallets/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 |

<Tip>
  For the most cost-effective transactions, ensure your wallet has STRK for fees rather than relying on ETH.
</Tip>

## Related resources

* [Broadcast transaction](/api-reference/broadcast/index)
* [Sign transaction](/api-reference/sign/index)
* [Supported networks](/networks)
* [Starknet documentation](https://docs.starknet.io/)
