Konubinix' opinionated web of thoughts

Starknet

Fleeting

contract classes and instances

Each class is uniquely identified by its class hash, comparable to a class name in traditional object-oriented programming languages

https://docs.starknet.io/architecture-and-concepts/smart-contracts/contract-classes/

nonce of instanciated contracts

A contract instance has a nonce, the value of which is the number of transactions originating from this address plus 1. For example, when you deploy an account with a DEPLOY_ACCOUNT transaction, the nonce of the account contract in the transaction is 0. After the DEPLOY_ACCOUNT transaction, until the account contract sends its next transaction, the nonce is 1.

https://docs.starknet.io/architecture-and-concepts/smart-contracts/contract-classes/

deployment

who pays the fees

from DEPLOY_ACCOUNT transaction
the deployED account1, 2
from Universal Deployer Contract (UDC)
the deployING account1

DEPLOY_ACCOUNT transaction

Universal Deployer Contract (UDC)

origin-independent

Origin-independent

Origin-independent contract deployments create contract addresses independent of the deployer and the UDC instance. Instead, only the class hash, salt, and constructor arguments determine the address. This type of deployment enables redeployments of accounts and known systems across multiple networks. To deploy a reproducible deployment, set unique to false.

https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/

origin-dependent

Origin-dependent

By making deployments dependent upon the origin address, users can reserve a whole address space to prevent someone else from taking ownership of the address.

https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/

address : 0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf

The UDC address is 0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf in Mainnet, Sepolia testnet, and starknet-devnet. This address might change in the future when it is migrated to a modern version of Cairo.

https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/

signature

efficient implementation for ECDSA signature with respect to a STARK-friendly curve

https://docs.starknet.io/architecture-and-concepts/network-architecture/transactions/

https://docs.starknet.io/architecture-and-concepts/network-architecture/transactions/


  1. If you use a DEPLOY_ACCOUNT transaction, the fees are paid from the address of the deployed account. If you use the UDC, which requires an INVOKE transaction, the fees are paid from the sender’s account.

    https://docs.starknet.io/architecture-and-concepts/accounts/deploying-new-accounts/

     ↩︎ ↩︎
  2. To use it, you should first pre-fund your new account address so that you can pay the transaction fee. You can then send the DEPLOY_ACCOUNT transaction.

    https://docs.starknet.io/architecture-and-concepts/network-architecture/transactions/

     ↩︎