Somnia 백서

Somnia

원문

bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 54쪽 중 2쪽

mnia.network">https://explorer.somnia.network</a></td><td><a href="https://shannon-explorer.somnia.network/">https://shannon-explorer.somnia.network/</a></td></tr><tr><td>Symbol</td><td>SOMI</td><td>STT</td></tr><tr><td>RPC</td><td><a href="https://api.infra.mainnet.somnia.network/">https://api.infra.mainnet.somnia.network/</a><br><br>wss://api.infra.mainnet.somnia.network/ws</td><td><a href="https://api.infra.testnet.somnia.network/">https://api.infra.testnet.somnia.network/</a><br><br>wss://api.infra.testnet.somnia.network/ws</td></tr><tr><td>MultiCallV3</td><td><a href="https://explorer.somnia.network/address/0x5e44F178E8cF9B2F5409B6f18ce936aB817C5a11">0x5e44F178E8cF9B2F5409B6f18ce936aB817C5a11</a></td><td><a href="https://shannon-explorer.somnia.network/address/0x841b8199E6d3Db3C6f264f6C2bd8848b3cA64223">0x841b8199E6d3Db3C6f264f6C2bd8848b3cA64223</a></td></tr><tr><td>EntryPoint v0.7</td><td></td><td><a href="https://shannon-explorer.somnia.network/address/0x0000000071727De22E5E9d8BAf0edAc6f37da032">0x0000000071727De22E5E9d8BAf0edAc6f37da032</a></td></tr><tr><td>Factory Address</td><td></td><td><a href="https://shannon-explorer.somnia.network/address/0x4bE0ddfebcA9A5A4a617dee4DeCe99E7c862dceb">0x4be0ddfebca9a5a4a617dee4dece99e7c862dceb</a></td></tr><tr><td>Alternative Testnet Block Explorer</td><td></td><td><a href="https://somnia-testnet.socialscan.io/">https://somnia-testnet.socialscan.io/</a></td></tr><tr><td>Testnet Faucet</td><td></td><td><a href="https://testnet.somnia.network/">https://testnet.somnia.network/</a></td></tr><tr><td>Stakely Mainnet Faucet</td><td><a href="https://stakely.io/faucet/somnia-somi">https://stakely.io/faucet/somnia-somi</a></td><td></td></tr><tr><td>CreateX</td><td>0xD13C575ED5378fd18B100Bd87D5765d9A747358B</td><td>0x535822d4b86b2372FBE4fd9d1468318F04A2A640</td></tr></tbody></table> ## RPC Providers <table><thead><tr><th width="215.216796875">RPCs</th><th></th></tr></thead><tbody><tr><td>Ankr</td><td><a href="https://www.ankr.com/rpc/somnia/">https://www.ankr.com/rpc/somnia</a></td></tr><tr><td>Public Node</td><td><a href="https://somnia.publicnode.com/">https://somnia.publicnode.com</a></td></tr><tr><td>Stakely</td><td><a href="https://somnia-json-rpc.stakely.io">https://somnia-json-rpc.stakely.io</a></td></tr><tr><td>Validation Cloud</td><td><a href="https://www.validationcloud.io/somnia">https://www.validationcloud.io/somnia</a></td></tr></tbody></table> ## Faucet Providers <table><thead><tr><th width="215.439453125"></th><th></th></tr></thead><tbody><tr><td>Google Cloud Faucet</td><td><a href="https://cloud.google.com/application/web3/faucet/somnia/shannon">https://cloud.google.com/application/web3/faucet/somnia/shannon</a></td></tr><tr><td>Stakely</td><td><a href="https://stakely.io/faucet/somnia-testnet-stt">https://stakely.io/faucet/somnia-testnet-stt</a></td></tr><tr><td>Thirdweb Faucet</td><td><a href="https://thirdweb.com/somnia-shannon-testnet">https://thirdweb.com/somnia-shannon-testnet</a></td></tr></tbody></table> ## Community * [Join us on Discord](https://discord.com/invite/Somnia) to chat with devs and raise issues * [Follow us on Twitter](https://twitter.com/Somnia_Network) for updates ## Solidity Resources * [Ethereum Developer ](https://learnweb3.io/degrees/ethereum-developer-degree/)by Learn Web3 * [Solidity by Example](https://solidity-by-example.org/) * [CryptoZombies](https://cryptozombies.io/en/course) * [Cookbook.dev](https://www.cookbook.dev/search?q=cookbook\&categories=Contracts\&sort=popular\&filter=\&page=1) * [Alchemy Unversity](https://www.alchemy.com/university/courses/solidity) ## Toolkit * [Hardhat Toolkit](https://hardhat.org/docs) - Solidity development framework paired with a JavaScript testing framework * [Foundry Toolkit](https://book.getfoundry.sh/) - Solidity framework for both development and testing. * [Remix](https://remix.ethereum.org/#lang=en\&optimize=false\&runs=200\&evmVersion=null) - Solidity IDE with interactive features # Network Overview (Mainnet / Testnet) Somnia provides two distinct environments for developers and users: **Mainnet** and **Testnet (Shannon)**. Both serve different purposes in the ecosystem, and knowing when to use which is essential for building and deploying applications effectively. *** ### Somnia Mainnet The **Mainnet** is the official production blockchain of Somnia. All transactions on this chain are **final and irreversible** and require **SOMI tokens** as gas. #### Key Characteristics * Real-value environment secured by Somnia’s validator set. * Integrated with wallets, explorers, bridges, and infrastructure providers. * Permanent and immutable transaction history. * Designed for live dApps, end-users, and production-ready deployments. #### When to Use Mainnet * Deploying **audited and tested smart contracts**. * Running dApps with **real users and assets**. * Managing liquidity, staking, governance, or NFT projects. * Partner integrations requiring **security and finality**. #### Example {% code title="Deploy to Somnia Mainnet" %} ```bash # Deploying a contract to Somnia Mainnet npx hardhat run scripts/deploy.js --network somnia_mainnet ``` {% endcode %} *** ### Somnia Testnet (Shannon) The **Testnet** is a sandbox environment that mirrors mainnet behavior but uses **STT test tokens** with no real-world value. It allows safe experimentation and rapid iteration without financial risk. #### Key Characteristics * Transactions use **STT tokens**, available via the faucet. * Close-to-mainnet parameters for realistic testing. * Safe for prototyping, debugging, and QA. * Commonly used in workshops, hackathons, and developer onboarding. #### When to Use Testnet * Learning how to connect and deploy on Somnia. * Prototyping features or building MVPs. * Debugging smart contracts or dApp flows. * Preparing for audits and production deployment. #### Example {% code title="Deploy to Somnia Testnet (Shannon)" %} ```bash # Deploying a contract to Somnia Testnet npx hardhat run scripts/deploy.js --network somnia_testnet ``` {% endcode %} *** ### Quick Comparison | Feature | Mainnet (Production) | Testnet (Shannon) | | ------------ | ------------------------------ | --------------------------- | | Currency | SOMI (real value) | STT (valueless, faucet) | | Purpose | Production deployments | Development & testing | | Transactions | Permanent and irreversible | Experimental and disposable | | Typical Use | Live dApps, DeFi, staking, NFT | Prototyping, QA, education | | Risk | Financial impact possible | No financial risk | *** ### Best Practices {% hint style="info" %} * Start on Testnet: Validate contracts and flows on Shannon before mainnet. * Audit before launch: Ensure contracts are reviewed and secure. * Use separate configs: Keep `.env` files distinct for testnet and mainnet. * Stay updated: Follow official announcements for upgrades and changes. {% endhint %} {% hint style="success" %} Tip: Treat **Testnet** as your safe playground and **Mainnet** as your production stage. Every project should pass through Testnet before moving to Mainnet. {% endhint %} # SOMI coin SOMI is the native coin of the Somnia Network. It is a currency used to pay for transactions, similar to Ether (ETH) on Ethereum and other EVM networks. SOMI is denominated in Wei, the base unit and smallest value that can be expressed in the network. Below is a table showing different denomination and comparison to falimiar terms: <table><thead><tr><th width="161.42578125">Unit</th><th width="250.30078125" align="right">Wei Value</th><th width="75.859375" align="right">Exp</th><th>Ethereum synonym</th></tr></thead><tbody><tr><td>Somi (SOMI)</td><td align="right">1,000,000,000,000,000,000</td><td align="right">1e18</td><td>Ether (ETH)</td></tr><tr><td>milliSomi</td><td align="right">1,000,000,000,000,000,</td><td align="right">1e15</td><td></td></tr><tr><td>microSomi</td><td align="right">1,000,000,000,000</td><td align="right">1e12</td><td></td></tr><tr><td>nanoSomi</td><td align="right">1,000,000,000</td><td align="right">1e9</td><td>gWei</td></tr><tr><td>Wei</td><td align="right">1</td><td align="right">1</td><td>Wei</td></tr></tbody></table> # Somnia Mainnet Releases ### somnia-c2ebe4eae665079-release - Jig Hard Fork **Activated**: 6th August 2026, 11:00 UTC The Jig hard fork is a network upgrade that introduces: * **Sustained gas discounts:** rewards sustained usage with a discounted base gas price. See [Sustained Use Gas Discounts](/developer/deployment-and-production/sustained-use-gas-discounts). * **Blake2f fix:** corrects an edge case in the Blake2f precompile * **`GASPRICE` semantics:** the `GASPRICE` opcode (`tx.gasprice`) now returns the price actually charged for the transaction - the sender's discounted base price plus their priority fee - rather than the block's base gas price. This applies to all transactions, calls and simulations, and makes `GASPRICE` sender-dependent. Contracts that use `tx.gasprice` for gas reimbursement or fee floors should review that logic. * **Block history:** gas limits reported for historical blocks are now capped consistently This release also improves RPC compatibility, consensus performance and stability: * \#1762 Implement eth\_sendRawTransactionSync * \#1751 Add accessList field in RPC responses * \#1734 Add `removed` field to eth\_getLogs log objects * \#1765 Harden RPC storage key-type validation * \#1742 Aggregate BLS public keys for message verification * \#1743 #1744 Parallelise and cache the PBFT leader's BLS verifications * \#1737 Parallelise backend validation by transaction * \#1749 Replace validator shards with a single MPMC queue * \#1724 Reduce storage database stalls when pruning * \#1730 Retire obsolete storage data types Reclaiming disk space: After upgrading, node operators can reclaim significant disk space (hundreds of gigabytes on long-running nodes) by deleting the storage data types retired in #1730. With the node **stopped**, run: ```bash somnia delete-obsolete-storage --storage-database-path <storage path> ``` *** ### somnia-369f69e34c9778c-release - RPC compatibility **Released**: 3rd July 2026 This release is for RPC servers only and fixes compatibility issues: * \#1717 Report gas limits in line with wallets logic (namely Rabby) * \#1721 Better handle bursty loads of historical state requests *** ### somnia-f03d9d276649877-release - Bug fixes and stability {% hint style="info" %} This release matches somnia-e07ba4d147406c9-release on the testnet. {% endhint %} **Released:** 3rd June 2026 Improves system performance and stability, fixes minor bugs: * \#1695 Fix simulation override on an existing contract (eth\_call) * \#1686 Fixes for HSDB rollback * \#1459 Speed up Ice DB compaction * \#1685 Session transaction cancellation and timeout * \#1679 Force PBFT\_PERSISTENT\_STATE pruning * \#1678 Add metrics for reactivity *** ### somnia-f444d2cf8f428d6-release - Hotfix **Released:** 11th May 2026 A hotfix release addressing Cuthbert (shadow verification subsystem) issue that could result in false positive divergence when malicious transaction is executed. *** ### somnia-f6e406d2fb3ef90-release - Hotfix **Released:** 22nd April 2026 A hotfix release addressing RPC issues discovered after the Ingot hard fork. *** ### somnia-c1a0de06c6bcdae-release - Ingot Hard Fork **Activated:** 15th April 2026, 11:30 AM UTC The Ingot hard fork is a major network upgrade that introduces: * **Reactivity:** enables on-chain events * **Session transactions:** allows users to pre-authorize a sequence of transactions, reducing friction for interactive applications * **EIP-7702:** a standard that lets regular accounts temporarily act like smart contracts, enabling more flexible transaction flows * **Agentic L1:** expands Somnia to become a hyper-performant L1 for agents and applications *** ### somnia-0e939b9869cab33-release - Hotfix **Released:** 13th January 2026 A hotfix release addressing storage issues and improving storage efficency. *** ### somnia-3e094e96eab9d76-release - Genesis **Launched:** 1st September 2025 The first mainnet release of the Somnia blockchain - an ultra-high-speed EVM-compatible L1 built for scale. # JSON-RPC API Somnia exposes an RPC API compatible with the Ethereum JSON-RPC specification. The mainnet public RPC endpoint is `https://api.infra.mainnet.somnia.network` (chain ID `0x13a7` / 5031). ## Methods by Name | Method | Compatibility | [Requires Node Ready](#requires-node-ready) | WebSocket Only | | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | -------------- | | [debug\_traceBlockByHash](#debug_traceblockbyhash) | [Geth debug](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtraceblockbyhash) | Yes | | | [debug\_traceBlockByNumber](#debug_traceblockbynumber) | [Geth debug](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtraceblockbynumber) | Yes | | | [debug\_traceCall](#debug_tracecall) | [Geth debug](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracecall) | Yes | | | [debug\_traceTransaction](#debug_tracetransaction) | [Geth debug](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracetransaction) | Yes | | | [eth\_accounts](#eth_accounts) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_accounts) | | | | [eth\_blockNumber](#eth_blocknumber) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_blocknumber) | | | | [eth\_call](#eth_call) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_call) | Yes | | | [eth\_chainId](#eth_chainid) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_chainid) | | | | [eth\_createAccessList](#eth_createaccesslist) | [Execution APIs](https://ethereum.github.io/execution-apis/api/methods/eth_createAccessList) | Yes | | | [eth\_estimateGas](#eth_estimategas) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_estimategas) | Yes | | | [eth\_feeHistory](#eth_feehistory) | [Execution APIs](https://ethereum.github.io/execution-apis/api/methods/eth_feeHistory) | | | | [eth\_gasPrice](#eth_gasprice) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_gasprice) | | | | [eth\_getBalance](#eth_getbalance) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getbalance) | | | | [eth\_getBlockByHash](#eth_getblockbyhash) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getblockbyhash) | | | | [eth\_getBlockByNumber](#eth_getblockbynumber) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getblockbynumber) | | | | [eth\_getBlockReceipts](#eth_getblockreceipts) | [Execution APIs](https://ethereum.github.io/execution-apis/api/methods/eth_getBlockReceipts) | | | | [eth\_getBlockTransactionCountByHash](#eth_getblocktransactioncountbyhash) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) | | | | [eth\_getBlockTransactionCountByNumber](#eth_getblocktransactioncountbynumber) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) | | | | [eth\_getCode](#eth_getcode) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getcode) | Yes | | | [eth\_getFilterChanges](#eth_getfilterchanges) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getfilterchanges) | | | | [eth\_getFilterLogs](#eth_getfilterlogs) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getfilterlogs) | | | | [eth\_getHeaderByHash](#eth_getheaderbyhash) | [Geth](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth#ethgetheaderbyhash) | | | | [eth\_getHeaderByNumber](#eth_getheaderbynumber) | [Geth](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth#ethgetheaderbynumber) | | | | [eth\_getLogs](#eth_getlogs) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getlogs) | | | | [eth\_getStorageAt](#eth_getstorageat) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_getstorageat) | Yes | | | [eth\_getTransactionByBlockHashAndIndex](#eth_gettransactionbyblockhashandindex) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_gettransactionbyblockhashandindex) | | | | [eth\_getTransactionByBlockNumberAndIndex](#eth_gettransactionbyblocknumberandindex) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_gettransactionbyblocknumberandindex) | | | | [eth\_getTransactionByHash](#eth_gettransactionbyhash) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_gettransactionbyhash) | | | | [eth\_getTransactionCount](#eth_gettransactioncount) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_gettransactioncount) | Yes | | | [eth\_getTransactionReceipt](#eth_gettransactionreceipt) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_gettransactionreceipt) | | | | [eth\_maxPriorityFeePerGas](#eth_maxpriorityfeepergas) | [Execution APIs](https://ethereum.github.io/execution-apis/api/methods/eth_maxPriorityFeePerGas) | | | | [eth\_newBlockFilter](#eth_newblockfilter) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_newblockfilter) | | | | [eth\_newFilter](#eth_newfilter) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_newfilter) | | | | [eth\_newPendingTransactionFilter](#eth_newpendingtransactionfilter) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) | | | | [eth\_sendRawTransaction](#eth_sendrawtransaction) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_sendrawtransaction) | Yes | | | [eth\_subscribe](#eth_subscribe) | [Geth](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth#eth-subscribe-unsubscribe) | | Yes | | [eth\_syncing](#eth_syncing) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_syncing) | | | | [eth\_uninstallFilter](#eth_uninstallfilter) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#eth_uninstallfilter) | | | | [eth\_unsubscribe](#eth_unsubscribe) | [Geth](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth#eth-subscribe-unsubscribe) | | | | [net\_listening](#net_listening) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#net_listening) | | | | [net\_version](#net_version) | [Ethereum standard](https://ethereum.org/developers/docs/apis/json-rpc/#net_version) | | | | [realtime\_sendRawTransaction](#realtime_sendrawtransaction) | Somnia-specific | Yes | | | [somnia\_getBlockByHash](#somnia_getblockbyhash) | Somnia-specific | | | | [somnia\_getBlockByNumber](#somnia_getblockbynumber) | Somnia-specific | | | | [somnia\_getPrivilegedTransactionReceiptsForBlockByHash](#somnia_getprivilegedtransactionreceiptsforblockbyhash) | Somnia-specific | | | | [somnia\_getPrivilegedTransactionReceiptsForBlockByNumber](#somnia_getprivilegedtransactionreceiptsforblockbynumber) | Somnia-specific | | | | [somnia\_getSessionAddress](#somnia_getsessionaddress) | Somnia-specific | | | | [somnia\_getStatistics](#somnia_getstatistics) | Somnia-specific | | | | [somnia\_isReady](#somnia_isready) | Somnia-specific | | | | [somnia\_isReadyWithErrorCode](#somnia_isreadywitherrorcode) | Somnia-specific | | | | [somnia\_nodePublicKeys](#somnia_nodepublickeys) | Somnia-specific | | | | [somnia\_reactivityGetSubscriptionInfo](#somnia_reactivity
프로젝트로 돌아가기