Compare commits
56
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
37bb80da2f | ||
|
|
162f4a23d2 | ||
|
|
133db356bb | ||
|
|
979af9eb9a | ||
|
|
e81ce21209 | ||
|
|
96bd3274fd | ||
|
|
8593a66224 | ||
|
|
3ad562166d | ||
|
|
b13dabebe5 | ||
|
|
8d082b3b35 | ||
|
|
ce75da3f7e | ||
|
|
3dfb3bedf9 | ||
|
|
f42086a06b | ||
|
|
ac9fadf395 | ||
|
|
f0db245421 | ||
|
|
d03c991f4f | ||
|
|
73f2993efb | ||
|
|
bff5bfe421 | ||
|
|
0bee754eba | ||
|
|
822c4f1272 | ||
|
|
628d5f31e2 | ||
|
|
7cd2f7876e | ||
|
|
9a758e719c | ||
|
|
1087d68b1f | ||
|
|
c5ebe1187b | ||
|
|
e1525d392f | ||
|
|
65055cd8f3 | ||
|
|
ac6fdf101f | ||
|
|
bc7084cf67 | ||
|
|
439e219084 | ||
|
|
2298a68dfb | ||
|
|
81315288b8 | ||
|
|
a42f6acc4e | ||
|
|
ade89f42c0 | ||
|
|
d09abb23f6 | ||
|
|
31464fdeae | ||
|
|
4d5b23a7d5 | ||
|
|
da204b0737 | ||
|
|
73ce629f93 | ||
|
|
85dd3089b7 | ||
|
|
231c577fcf | ||
|
|
24a3023288 | ||
|
|
b38c3be3c0 | ||
|
|
2a087da317 | ||
|
|
eaa50d0f60 | ||
|
|
f3866182c1 | ||
|
|
75fc890562 | ||
|
|
938b63a175 | ||
|
|
8d0db32778 | ||
|
|
2fcbe22d7a | ||
|
|
8d895d90bf | ||
|
|
4c4c0606f4 | ||
|
|
640798f1ad | ||
|
|
64eb5e648e | ||
|
|
99adbc5e9c | ||
|
|
2e1c23b4ca |
@@ -0,0 +1,13 @@
|
||||
# What does this PR resolve? 🚀
|
||||
- Example 1
|
||||
- Example 2
|
||||
|
||||
# Details 📝
|
||||
Details about the resolved issues or added features...
|
||||
|
||||
# Checklist ✅
|
||||
- [ ] I have merged the main branch into my branch and resolved all conflicts
|
||||
- [ ] I have documented the new code
|
||||
- [ ] I have smoke tested the new code locally
|
||||
- [ ] I have assigned the PR to myself
|
||||
- [ ] I have named the PR correctly
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
|
||||
# Production
|
||||
/build
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
.idea
|
||||
Vendored
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.13'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux' }
|
||||
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
/* manage how many builds we keep */
|
||||
buildDiscarder(logRotator(
|
||||
numToKeepStr: '20',
|
||||
daysToKeepStr: '30',
|
||||
))
|
||||
}
|
||||
|
||||
environment {
|
||||
GIT_COMMITTER_NAME = 'status-im-auto'
|
||||
GIT_COMMITTER_EMAIL = 'auto@status.im'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Install') {
|
||||
steps {
|
||||
script {
|
||||
nix.develop('yarn install')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
script {
|
||||
nix.develop('yarn build')
|
||||
jenkins.genBuildMetaJSON('build/build.json')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Publish') {
|
||||
steps {
|
||||
sshagent(credentials: ['status-im-auto-ssh']) {
|
||||
script {
|
||||
nix.develop("""
|
||||
ghp-import \
|
||||
-b ${deployBranch()} \
|
||||
-c ${deployDomain()} \
|
||||
-p build
|
||||
""",
|
||||
pure: false
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
cleanup { cleanWs() }
|
||||
}
|
||||
}
|
||||
|
||||
def isMasterBranch() { GIT_BRANCH ==~ /.*master/ }
|
||||
def deployBranch() { isMasterBranch() ? 'deploy-master' : 'deploy-develop' }
|
||||
def deployDomain() { isMasterBranch() ? 'docs.status.network' : 'dev-docs.status.network' }
|
||||
@@ -0,0 +1,82 @@
|
||||
# Status Network Documentation
|
||||
|
||||
Welcome to the official documentation for Status Network! This repository contains the source code for our documentation website, built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Node.js](https://nodejs.org/en/) (v18 or higher)
|
||||
- [Yarn](https://yarnpkg.com/) (v1 or higher)
|
||||
- [Git](https://git-scm.com/)
|
||||
|
||||
If you are familiar with using [Nix shell](https://nix.dev/manual/nix/2.17/command-ref/new-cli/nix3-develop) all of the dependencies will be installed by just running `nix develop` from within this repository which will spawn a new shell.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/status-im/docs.status.network
|
||||
cd docs.status.network
|
||||
|
||||
# Install dependencies
|
||||
yarn
|
||||
```
|
||||
|
||||
### Local Development
|
||||
|
||||
```bash
|
||||
# Start the development server
|
||||
yarn start
|
||||
```
|
||||
|
||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# Build the static site
|
||||
yarn build
|
||||
```
|
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||
|
||||
|
||||
## CI/CD
|
||||
|
||||
- [CI builds](https://ci.infra.status.im/job/website/job/docs.status.network/) `master` and pushes to `deploy-master` branch, which is hosted at <https://docs.status.network/>.
|
||||
- [CI builds dev](https://ci.infra.status.im/job/website/job/dev-docs.status.network/) `develop` and pushes to `deploy-develop` branch, which is hosted at <https://dev-docs.status.network/>.
|
||||
|
||||
The hosting is done using [Caddy server with Git plugin for handling GitHub webhooks](https://github.com/status-im/infra-misc/blob/master/ansible/roles/caddy-git).
|
||||
|
||||
Information about deployed build can be also found in `/build.json` available on the website.
|
||||
|
||||
## 📝 Contributing
|
||||
|
||||
We welcome contributions from the community! Here's how you can help improve our documentation:
|
||||
|
||||
### Making Changes
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a new branch: `git checkout -b feature/your-feature-name`
|
||||
3. Make your changes
|
||||
4. Test locally using `yarn start`
|
||||
5. Commit your changes: `git commit -am 'Add some feature'`
|
||||
6. Push to the branch: `git push origin feature/your-feature-name`
|
||||
7. Submit a pull request
|
||||
|
||||
### Documentation Structure
|
||||
|
||||
```
|
||||
docs/
|
||||
├── introduction/ # Introduction and getting started
|
||||
├── tokenomics/ # Economic model and Karmic Tokenomics
|
||||
├── general-info/ # Network details and contracts
|
||||
├── tools/ # Development tools and resources
|
||||
├── tutorials/ # Step-by-step guides
|
||||
└── other/ # Additional resources
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Made with ❤️ by the Status Network team
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[676],{1319:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=n(4848),i=n(8453);const o={},a="Economic Model",r={id:"tokenomics/economic-model",title:"Economic Model",description:"Unlike traditional L2s that generate revenue from gas fees, Status Network operates on a radically different paradigm: users and applications do not pay transaction fees. This necessitates alternative revenue sources to maintain and sustain the network. As gas fees trend toward zero and rollups move toward decentralization, the business model of L2s must shift from execution-based revenue (sequencer fees) to monetizing asset trading volume and yield-bearing total value locked (TVL) on the network.",source:"@site/docs/tokenomics/economic-model.md",sourceDirName:"tokenomics",slug:"/tokenomics/economic-model",permalink:"/tokenomics/economic-model",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/docs.status.network/tree/develop/docs/tokenomics/economic-model.md",tags:[],version:"current",lastUpdatedAt:1740123921e3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u26a1 Quick Start",permalink:"/introduction/quick-start"},next:{title:"\ud83d\udcb0 Public Funding",permalink:"/tokenomics/public-funding"}},c={},l=[{value:"Revenue Streams",id:"revenue-streams",level:2}];function d(e){const t={h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"economic-model",children:"Economic Model"})}),"\n",(0,s.jsx)(t.p,{children:"Unlike traditional L2s that generate revenue from gas fees, Status Network operates on a radically different paradigm: users and applications do not pay transaction fees. This necessitates alternative revenue sources to maintain and sustain the network. As gas fees trend toward zero and rollups move toward decentralization, the business model of L2s must shift from execution-based revenue (sequencer fees) to monetizing asset trading volume and yield-bearing total value locked (TVL) on the network."}),"\n",(0,s.jsx)(t.h2,{id:"revenue-streams",children:"Revenue Streams"}),"\n",(0,s.jsx)(t.p,{children:"To achieve sustainability, Status Network derives revenue from the following sources:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Native Yield Commission"}),": Assets bridged to Status Network (ETH and DAI initially) are rehypothecated into yield-bearing equivalents (stETH and sDAI). A portion of the yield generated (30%) is allocated to the network's operational costs."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Native DEX Swap Fees"}),": Status Network features a native DEX where trading fees contribute to network operation. Native DEX liquidity providers can earn extra incentives from the native yield on top of the usual LP fees."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Premium Gas Fees"}),": Users exceeding their free transaction quota must pay a premium fee, which is split between Status Network and RLN (the spam prevention mechanism), incentivizing fair usage and discouraging abuse."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Future Native Apps"}),": The network will later introduce additional revenue streams, such as a lending market, NFT marketplace, and token launchpad, each contributing a percentage of generated fees back into the L2 operation."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"This model ensures that Status Network remains economically sustainable while offering free transactions. By leveraging TVL and its associated native yield as well as transaction volume, Status Network aligns incentives between users, liquidity providers, and developers, creating a self-sustaining ecosystem without reliance on inflationary token emissions."})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var s=n(6540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[158],{8158:(s,a,e)=>{e.r(a),e.d(a,{DocSearchModal:()=>t.a1});var t=e(3219)}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
/*! algoliasearch-lite.umd.js | 4.24.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[237],{3363:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var s=n(4164),o=n(1312),i=n(1107),r=n(4848);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,s.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(6540);var s=n(1312),o=n(9024),i=n(1957),r=n(3363),a=n(4848);function d(){const e=(0,s.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(i.A,{children:(0,a.jsx)(r.A,{})})]})}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[416],{416:(s,t,e)=>{e.r(t)}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[647],{7121:(s,e,r)=>{r.r(e),r.d(e,{default:()=>d});r(6540);var t=r(4164),u=r(9024),a=r(7559),c=r(2831),n=r(1957),o=r(4848);function d(s){return(0,o.jsx)(u.e3,{className:(0,t.A)(a.G.wrapper.docsPages),children:(0,o.jsx)(n.A,{children:(0,c.v)(s.route.routes)})})}}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[913],{8913:(s,t,e)=>{e.r(t)}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[98],{4532:(n,s,e)=>{e.r(s),e.d(s,{default:()=>d});e(6540);var r=e(9024),t=e(2565),o=e(3025),c=e(2831),i=e(1463),u=e(4848);function a(n){const{version:s}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:s.version,tag:(0,t.k)(s.pluginId,s.version)}),(0,u.jsx)(r.be,{children:s.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:s,route:e}=n;return(0,u.jsx)(r.e3,{className:s.className,children:(0,u.jsx)(o.n,{version:s,children:(0,c.v)(e.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[742],{7093:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
|
||||
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[957],{936:s=>{s.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[64],{839:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>l,toc:()=>a});var t=i(4848),o=i(8453);const s={},r="Public Funding",l={id:"tokenomics/public-funding",title:"Public Funding",description:"Apps Funding Pool and Public Funding Mechanism",source:"@site/docs/tokenomics/public-funding.md",sourceDirName:"tokenomics",slug:"/tokenomics/public-funding",permalink:"/tokenomics/public-funding",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/docs.status.network/tree/develop/docs/tokenomics/public-funding.md",tags:[],version:"current",lastUpdatedAt:1740123921e3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83e\udd1d Economic Model",permalink:"/tokenomics/economic-model"},next:{title:"\ud83d\udc09 Karmic Tokenomics",permalink:"/tokenomics/karmic-tokenomics"}},c={},a=[{value:"Apps Funding Pool and Public Funding Mechanism",id:"apps-funding-pool-and-public-funding-mechanism",level:2},{value:"Why Public Funding Matters",id:"why-public-funding-matters",level:3},{value:"How the Apps Funding Pool Works",id:"how-the-apps-funding-pool-works",level:3}];function d(n){const e={h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"public-funding",children:"Public Funding"})}),"\n",(0,t.jsx)(e.h2,{id:"apps-funding-pool-and-public-funding-mechanism",children:"Apps Funding Pool and Public Funding Mechanism"}),"\n",(0,t.jsx)(e.p,{children:"One of the most critical components of Status Network is the apps funding pool, designed to provide sustainable financial support for applications built on the network. Unlike traditional blockchain ecosystems where developers rely on grants or short-term incentives, Status Network ensures continuous funding through a self-sustaining mechanism driven by network activity and TVL."}),"\n",(0,t.jsx)(e.h3,{id:"why-public-funding-matters",children:"Why Public Funding Matters"}),"\n",(0,t.jsx)(e.p,{children:"Public funding is essential to ensure that builders have access to capital without dependence on extractive external funding mechanisms. The Status organisation has a long-standing history of investing in open-source projects and decentralised infrastructure, reinforcing its commitment to public goods. The apps funding pool extends this ethos by providing a decentralized, community-driven allocation mechanism where developers can receive financial support directly from the network itself."}),"\n",(0,t.jsx)(e.h3,{id:"how-the-apps-funding-pool-works",children:"How the Apps Funding Pool Works"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:"Funded by Native Yield and Fees"}),": A significant part of the yield generated from bridged assets (ETH and DAI initially) and from the native DEX swap fees flows directly into the funding pool."]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:"Governed by Karma Holders"}),": Allocation of funds is determined by Karma token holders, ensuring a community-led decision-making process: if the community loves your app, you'll get funding."]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:"Transparent and Fair Distribution"}),": Initially, funding will be capped at a limited number of recipients to maintain quality control, but as the pool grows, more projects will be supported."]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:"Aligning Builders with Network Growth"}),": Developers who actively contribute to network usage and adoption will receive more voting power in the form of Karma, allowing them to vote for themselves and reinforcing the incentive to create valuable applications."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.p,{children:"This mechanism ensures a continuous, non-extractive source of capital for builders, allowing them to focus on creating successful applications."})]})}function u(n={}){const{wrapper:e}={...(0,o.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>r,x:()=>l});var t=i(6540);const o={},s=t.createContext(o);function r(n){const e=t.useContext(s);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:r(n.components),t.createElement(s.Provider,{value:e},n.children)}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[301],{7371:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var n=s(4848),o=s(8453);const r={title:"Tokens",description:"Official list of supported tokens and their contract addresses on Status Network, including both L1 and L2 token addresses and bridge mappings.",keywords:["Status Network tokens","token list","supported tokens","token addresses","L2 tokens","bridge tokens"]},a="Tokens",d={id:"general-info/contract-addresses/tokens",title:"Tokens",description:"Official list of supported tokens and their contract addresses on Status Network, including both L1 and L2 token addresses and bridge mappings.",source:"@site/docs/general-info/contract-addresses/tokens.md",sourceDirName:"general-info/contract-addresses",slug:"/general-info/contract-addresses/tokens",permalink:"/general-info/contract-addresses/tokens",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/docs.status.network/tree/develop/docs/general-info/contract-addresses/tokens.md",tags:[],version:"current",lastUpdatedAt:1739193403e3,frontMatter:{title:"Tokens",description:"Official list of supported tokens and their contract addresses on Status Network, including both L1 and L2 token addresses and bridge mappings.",keywords:["Status Network tokens","token list","supported tokens","token addresses","L2 tokens","bridge tokens"]},sidebar:"tutorialSidebar",previous:{title:"\u2795 Add Status Network",permalink:"/general-info/add-status-network"},next:{title:"\ud83e\uddea Testnet Contracts",permalink:"/general-info/contract-addresses/testnet-contracts"}},i={},c=[];function l(e){const t={a:"a",h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"tokens",children:"Tokens"})}),"\n",(0,n.jsxs)(t.p,{children:["For the most up-to-date list of supported tokens and their contract addresses on Status Network, please refer to our official ",(0,n.jsx)(t.a,{href:"https://github.com/status-im/status-network-token-list",children:"Status Network Token List repository"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"This repository contains:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Token addresses for both L1 (Sepolia) and L2 (Status Network)"}),"\n",(0,n.jsx)(t.li,{children:"Token metadata (decimals, symbols, etc.)"}),"\n",(0,n.jsx)(t.li,{children:"Bridge contract mappings"}),"\n",(0,n.jsx)(t.li,{children:"App tokens deployed on Status Network"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"The token list is maintained and updated regularly to ensure accuracy and security of token bridging operations."})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>d});var n=s(6540);const o={},r=n.createContext(o);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,64 +0,0 @@
|
||||
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|
||||
* @license MIT */
|
||||
|
||||
/*! Bundled license information:
|
||||
|
||||
prismjs/prism.js:
|
||||
(**
|
||||
* Prism: Lightweight, robust, elegant syntax highlighting
|
||||
*
|
||||
* @license MIT <https://opensource.org/licenses/MIT>
|
||||
* @author Lea Verou <https://lea.verou.me>
|
||||
* @namespace
|
||||
* @public
|
||||
*)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* scheduler.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
@@ -1 +0,0 @@
|
||||
(()=>{"use strict";var e,t,a,r,o,c={},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var a=d[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,f),a.loaded=!0,a.exports}f.m=c,f.c=d,e=[],f.O=(t,a,r,o)=>{if(!a){var c=1/0;for(i=0;i<e.length;i++){a=e[i][0],r=e[i][1],o=e[i][2];for(var d=!0,n=0;n<a.length;n++)(!1&o||c>=o)&&Object.keys(f.O).every((e=>f.O[e](a[n])))?a.splice(n--,1):(d=!1,o<c&&(c=o));if(d){e.splice(i--,1);var b=r();void 0!==b&&(t=b)}}return t}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[a,r,o]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,a({}),a([]),a(a)];for(var d=2&r&&e;"object"==typeof d&&!~t.indexOf(d);d=a(d))Object.getOwnPropertyNames(d).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,f.d(o,c),o},f.d=(e,t)=>{for(var a in t)f.o(t,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,a)=>(f.f[a](e,t),t)),[])),f.u=e=>"assets/js/"+({11:"77ad1297",30:"1d080eba",48:"a94703ab",64:"ed9d46b0",98:"a7bd4aaa",138:"1a4e3797",219:"0f8cca8e",286:"9598ac1c",301:"f85d9794",361:"c377a04b",401:"17896441",435:"390b0396",453:"8c5da4da",475:"904936a2",553:"7b3ceffd",567:"22dd74f7",584:"8ff8f49b",604:"572f3558",647:"5e95c892",676:"0c57bc34",683:"6b3e4299",742:"aba21aa0",846:"9a789939",847:"f90b2cb2",870:"5d1e787d",885:"f03da4f0",900:"5252cc52",927:"e671a38e",957:"c141421f"}[e]||e)+"."+{11:"c44e0ce1",30:"61287504",48:"e1de86a6",64:"c96d2561",98:"8658bd18",138:"d63de5c3",158:"e7edbb43",219:"42895bb8",237:"ff2b0b79",286:"b20eafbd",301:"11492893",361:"00357efa",401:"0b037223",416:"383d51b8",435:"2d1ad557",453:"662db831",475:"9f150cb9",553:"8e396ab5",567:"00be934d",584:"a32bc87d",604:"477aa3ba",647:"b6873a0a",676:"8257a434",683:"b9b4160d",742:"b7b1f71f",846:"b13b47f9",847:"77e95e28",870:"82b1f65f",885:"819d5e74",900:"db58e33f",913:"548fdd14",927:"0c8a1cc9",957:"0fd7f426"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="status-network-docs:",f.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var d,n;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var u=b[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+a){d=u;break}}d||(n=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,f.nc&&d.setAttribute("nonce",f.nc),d.setAttribute("data-webpack",o+a),d.src=e),r[e]=[t];var s=(t,a)=>{d.onerror=d.onload=null,clearTimeout(l);var o=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),o&&o.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=s.bind(null,d.onerror),d.onload=s.bind(null,d.onload),n&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401","77ad1297":"11","1d080eba":"30",a94703ab:"48",ed9d46b0:"64",a7bd4aaa:"98","1a4e3797":"138","0f8cca8e":"219","9598ac1c":"286",f85d9794:"301",c377a04b:"361","390b0396":"435","8c5da4da":"453","904936a2":"475","7b3ceffd":"553","22dd74f7":"567","8ff8f49b":"584","572f3558":"604","5e95c892":"647","0c57bc34":"676","6b3e4299":"683",aba21aa0:"742","9a789939":"846",f90b2cb2:"847","5d1e787d":"870",f03da4f0:"885","5252cc52":"900",e671a38e:"927",c141421f:"957"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(t,a)=>{var r=f.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var c=f.p+f.u(t),d=new Error;f.l(c,(a=>{if(f.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;d.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",d.name="ChunkLoadError",d.type=o,d.request=c,r[1](d)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,c=a[0],d=a[1],n=a[2],b=0;if(c.some((t=>0!==e[t]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(n)var i=n(f)}for(t&&t(a);b<c.length;b++)o=c[b],f.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return f.O(i)},a=self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})()})();
|
||||
@@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
};
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"timestamp": "2025-02-24T14:52:15Z",
|
||||
"git": {
|
||||
"commit": "8a2d5dc248eede5080a402b7566791d4ba8870b0",
|
||||
"branch": "origin/master",
|
||||
"url": "git@github.com:status-im/docs.status.network.git"
|
||||
},
|
||||
"build": {
|
||||
"id": "41",
|
||||
"number": "41",
|
||||
"name": "website/docs.status.network",
|
||||
"slave": "linux-01",
|
||||
"url": "https://ci.infra.status.im/job/website/job/docs.status.network/41/"
|
||||
}
|
||||
}
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define languages
|
||||
langs=("ko" "zh" "ja")
|
||||
|
||||
# Define the file structure
|
||||
files=(
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/add-status-network.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/network-details.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/introduction/quick-start.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/other/official-links.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tokenomics/karma-token.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tokenomics/snt-token.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/block-explorers.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/bridge.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/rpc.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md"
|
||||
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/index.md"
|
||||
)
|
||||
|
||||
for lang in "${langs[@]}"; do
|
||||
for file in "${files[@]}"; do
|
||||
path=${file/LANG/$lang}
|
||||
mkdir -p "$(dirname "$path")"
|
||||
touch "$path"
|
||||
done
|
||||
done
|
||||
@@ -0,0 +1,97 @@
|
||||
---
|
||||
title: Add Status Network
|
||||
description: Step-by-step guide on how to add Status Network to MetaMask and other wallets. Learn how to configure network settings for both desktop and mobile wallets.
|
||||
keywords: [Status Network, MetaMask setup, add network, wallet configuration, RPC settings, Chain ID, blockchain network setup]
|
||||
---
|
||||
|
||||
import AddToMetaMask from '@site/src/components/AddToMetaMask';
|
||||
|
||||
# Add Status Network
|
||||
|
||||
This guide shows how to add the **Status Network** to your wallet.
|
||||
|
||||
You can add Status Network Testnet directly by clicking on the button below:
|
||||
|
||||
<AddToMetaMask />
|
||||
|
||||
|
||||
## Manual Configuration
|
||||
|
||||
To add **Status Network Testnet** as a custom network to MetaMask:
|
||||
|
||||
1. **Open MetaMask**:
|
||||
|
||||
- Click on the MetaMask extension icon in your browser to open it.
|
||||
|
||||
2. **Access the Network Settings**:
|
||||
|
||||
- Click on the network selection dropdown at the top of the MetaMask window.
|
||||
|
||||
3. **Add a New Network**:
|
||||
|
||||
- Click on **"Add network"**.
|
||||
- In the new window, click on **"Add a network manually"**.
|
||||
|
||||
4. **Enter Network Details**:
|
||||
|
||||
- Fill in the following information:
|
||||
|
||||
| Name | Value |
|
||||
|------------------|------------------------------------------|
|
||||
| **Network Name** | Status Network Testnet |
|
||||
| **RPC URL** | https://public.sepolia.rpc.status.network |
|
||||
| **Chain ID** | 1660990954 |
|
||||
| **Currency Symbol** | `ETH` |
|
||||
| **Block Explorer URL** | https://sepoliascan.status.network |
|
||||
|
||||
5. **Save the Network**:
|
||||
|
||||
- Click **"Save"** to add the Status Network Testnet to your MetaMask wallet.
|
||||
|
||||
You should now be able to connect to the Status Network Testnet by selecting it from the network dropdown menu.
|
||||
|
||||
---
|
||||
|
||||
## Mobile Wallets
|
||||
|
||||
### Adding Status Network to MetaMask Mobile
|
||||
|
||||
1. **Open MetaMask Mobile App**:
|
||||
|
||||
- Launch the MetaMask app on your mobile device.
|
||||
|
||||
2. **Access Settings**:
|
||||
|
||||
- Tap on the hamburger menu (three horizontal lines) in the top left corner.
|
||||
- Select **"Settings"**.
|
||||
|
||||
3. **Add a New Network**:
|
||||
|
||||
- Tap on **"Networks"**.
|
||||
- Tap on **"Add Network"**.
|
||||
|
||||
4. **Enter Network Details**:
|
||||
|
||||
- Input the same network details as mentioned above for Testnet.
|
||||
|
||||
5. **Save the Network**:
|
||||
|
||||
- Tap **"Add"** to save the new network.
|
||||
|
||||
---
|
||||
|
||||
## Additional Information
|
||||
|
||||
- **Official Links**:
|
||||
|
||||
- [Status Network Website](https://status.network/)
|
||||
- [Status Network Documentation](https://docs.status.network/)
|
||||
- [Status Network Testnet Explorer](https://sepoliascan.status.network)
|
||||
|
||||
- **Need Help?**
|
||||
|
||||
- If you encounter any issues, please join our [Telegram](https://t.me/statusl2) for support.
|
||||
|
||||
---
|
||||
|
||||
By following this guide, you've successfully added the Status Network to your MetaMask wallet!
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: Bridging to Status Network Testnet
|
||||
description: Learn how to bridge tokens between Sepolia and Status Network testnet using the official Status Network bridge. Complete guide with prerequisites and step-by-step instructions.
|
||||
keywords: [Status Network bridge, token bridge, cross-chain bridge, Sepolia bridge, L2 bridge, testnet bridge, blockchain bridge]
|
||||
---
|
||||
|
||||
# Bridging to Status Network Testnet
|
||||
|
||||
The Status Network bridge allows you to transfer tokens between Sepolia and Status Network testnet. The bridge is deployed at [bridge.status.network](https://bridge.status.network).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- MetaMask or another Web3 wallet installed
|
||||
- Some testnet ETH on Sepolia network
|
||||
- The token you want to bridge on Sepolia network
|
||||
|
||||
## Bridging Process
|
||||
|
||||
1. Visit [bridge.status.network](https://bridge.status.network)
|
||||
|
||||
2. Connect your wallet by clicking the "Connect Wallet" button in the top right corner
|
||||
|
||||
3. Select the token you want to bridge from the dropdown menu
|
||||
|
||||
4. Enter the amount you want to bridge
|
||||
|
||||
5. Click "Bridge" and confirm the transaction in your wallet
|
||||
|
||||
6. Wait for the bridging process to complete
|
||||
- Bridging typically takes about 5-10 minutes
|
||||
- You can track the status of your bridge transaction on the bridge interface
|
||||
|
||||
## Important Notes
|
||||
|
||||
- Always verify you're on the correct website (bridge.status.network) before initiating any transactions
|
||||
- Start with a small amount to test the bridge before transferring larger amounts
|
||||
- Make sure you have enough ETH in your wallet to cover gas fees
|
||||
- If you encounter any issues, join our [Telegram](https://t.me/statusl2) for support
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
title: Testnet Contracts
|
||||
description: Comprehensive list of Status Network testnet contract addresses, including bridge contracts, core infrastructure, and L2 contracts with their purposes and links to block explorers.
|
||||
keywords: [Status Network contracts, testnet addresses, smart contracts, bridge contracts, L1 contracts, L2 contracts, blockchain infrastructure]
|
||||
---
|
||||
|
||||
# Testnet Contracts
|
||||
|
||||
This page lists all the important contract addresses for the Status Network testnet infrastructure.
|
||||
|
||||
## Layer 1 Contracts (Sepolia)
|
||||
|
||||
These contracts are deployed on the Sepolia testnet. You can view them on [Sepolia Etherscan](https://sepolia.etherscan.io).
|
||||
|
||||
### Bridge Contracts
|
||||
- **L1 Token Bridge Proxy**
|
||||
- Address: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||
- Purpose: Manages token bridging operations on L1
|
||||
|
||||
### Core Infrastructure
|
||||
- **L1 Postman**
|
||||
- Address: [`0xB15725119b917d348FfEB365B43bCDeEbfb65C5d`](https://sepolia.etherscan.io/address/0xB15725119b917d348FfEB365B43bCDeEbfb65C5d)
|
||||
- Purpose: Handles message passing between L1 and L2
|
||||
|
||||
- **L1 Data Submission**
|
||||
- Address: [`0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d`](https://sepolia.etherscan.io/address/0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d)
|
||||
- Purpose: Manages data submission from L2 to L1
|
||||
|
||||
- **L1 Finalization**
|
||||
- Address: [`0xb91CB39b3b9F015b0aC88616A463B35568052AEF`](https://sepolia.etherscan.io/address/0xb91CB39b3b9F015b0aC88616A463B35568052AEF)
|
||||
- Purpose: Handles finalization of L2 blocks on L1
|
||||
|
||||
## Layer 2 Contracts (Status Network Testnet)
|
||||
|
||||
These contracts are deployed on the Status Network testnet. You can view them on [Status Network Explorer](https://sepoliascan.status.network).
|
||||
|
||||
### Bridge Contracts
|
||||
- **L2 Token Bridge Proxy**
|
||||
- Address: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||
- Purpose: Manages token bridging operations on L2
|
||||
|
||||
### Infrastructure Contracts
|
||||
- **L2 Faucet**
|
||||
- Address: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||
- Purpose: Distributes testnet tokens to users
|
||||
|
||||
- **L2 Anchoring**
|
||||
- Address: [`0x24B5eD2763129D6cBDEfE32e08558D2095132560`](https://sepoliascan.status.network/address/0x24B5eD2763129D6cBDEfE32e08558D2095132560)
|
||||
- Purpose: Manages state anchoring between L1 and L2
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: Tokens
|
||||
description: Official list of supported tokens and their contract addresses on Status Network, including both L1 and L2 token addresses and bridge mappings.
|
||||
keywords: [Status Network tokens, token list, supported tokens, token addresses, L2 tokens, bridge tokens]
|
||||
---
|
||||
|
||||
# Tokens
|
||||
|
||||
For the most up-to-date list of supported tokens and their contract addresses on Status Network, please refer to our official [Status Network Token List repository](https://github.com/status-im/status-network-token-list).
|
||||
|
||||
This repository contains:
|
||||
- Token addresses for both L1 (Sepolia) and L2 (Status Network)
|
||||
- Token metadata (decimals, symbols, etc.)
|
||||
- Bridge contract mappings
|
||||
- App tokens deployed on Status Network
|
||||
|
||||
The token list is maintained and updated regularly to ensure accuracy and security of token bridging operations.
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
id: network-details
|
||||
title: Status Network Details & Configuration
|
||||
description: Official network details for Status Network testnet including RPC endpoints, Chain ID, and configuration information for wallets and development environments.
|
||||
keywords: [Status Network, network details, RPC endpoint, Chain ID, testnet configuration, blockchain network, MetaMask setup]
|
||||
---
|
||||
|
||||
import AddToMetaMask from '@site/src/components/AddToMetaMask';
|
||||
|
||||
# Network Details
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------------------------------------------|
|
||||
| **Network Name** | Status Network Testnet |
|
||||
| **RPC Endpoint** | https://public.sepolia.rpc.status.network |
|
||||
| **Chain ID** | 1660990954 |
|
||||
| **Currency Symbol** | ETH |
|
||||
| **Block Explorer** | https://sepoliascan.status.network |
|
||||
| **Bridge** | https://bridge.status.network |
|
||||
|
||||
<AddToMetaMask />
|
||||
<div style={{height: '2rem'}} />
|
||||
|
||||
These are the official network details for the Status Network testnet. You can use these details to:
|
||||
- Add the network to your wallet
|
||||
- Configure development environments
|
||||
- Connect dApps to the network
|
||||
- Verify smart contracts
|
||||
|
||||
For instructions on adding the network to your wallet, see our [Add Status Network guide](./add-status-network.md).
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: index
|
||||
title: Status Network · Gasless L2
|
||||
description: Status Network is a gasless Layer 2 blockchain network enabling seamless, fee-free decentralized applications. Start building with easy wallet setup, faucets, and deployment tools.
|
||||
keywords: [Status Network, Layer 2, gasless blockchain, ethereum scaling, L2, validium, web3 development, dapp development, blockchain development]
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Status Network: The Gasless Layer 2
|
||||
|
||||
Status Network is the first natively gasless Ethereum L2, optimized for social apps and games, featuring sustainable public funding for developers through native yield and DEX fees. Built on the Linea zkEVM stack, it provides high-performance, gas-free transactions while ensuring economic sustainability through a novel funding model.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Gasless Transactions**
|
||||
|
||||
Developers can create seamless experiences and users can transact freely without worrying about gas fees.
|
||||
|
||||
- **Native Yield and Fees**
|
||||
|
||||
To sustain the L2 operation and support developers, Status Network is funded through a combinaison of native yield and fees coming from its native apps, starting with a DEX.
|
||||
|
||||
- **Sustainable Public Funding**
|
||||
|
||||
The apps funding pool, governed by token holders, continuously allocates capital from native yield and fees to onchain builders.
|
||||
|
||||
- **High-Performance Execution**
|
||||
|
||||
Status Network is built on Linea’s zkEVM rollup stack, ensuring fast and secure transactions.
|
||||
|
||||
- **Spam Protection via RLN**
|
||||
|
||||
Rate-Limiting Nullifiers (RLN) prevent spam and DDoS attacks while maintaining a fair allocation of free transactions per user and apps.
|
||||
|
||||
- **Deep Integration with IFT**
|
||||
|
||||
Status Network is natively integrated with Status Wallet, Keycard, Waku and Codex, all part of [IFT](https://free.technology).
|
||||
|
||||
## Getting Started
|
||||
|
||||
Wants to skip the explanation part and go straight to building? Here's how to get started:
|
||||
|
||||
1. [Add Status Network to Your Wallet](/general-info/add-status-network)
|
||||
2. [Get Testnet ETH](/tools/testnet-faucets)
|
||||
3. [Bridge Assets](/general-info/bridge/bridging-testnet)
|
||||
4. [Deploy Your First Contract](/tutorials/deploying-contracts/using-remix)
|
||||
|
||||
## Support & Resources
|
||||
|
||||
Connect with our community and access the resources you need:
|
||||
- Join our [Telegram Builder's Community](https://t.me/statusl2)
|
||||
- View [Network Details](/general-info/network-details)
|
||||
- Browse [Contract Addresses](/general-info/contract-addresses/testnet-contracts)
|
||||
|
||||
Ready to build something amazing? Start your journey on the free network today!
|
||||
@@ -0,0 +1,124 @@
|
||||
---
|
||||
title: Quick Start
|
||||
description: Get started with Status Network in under 10 minutes. Learn how to deploy your first smart contract using Remix IDE, get test ETH, and interact with the network.
|
||||
keywords: [Status Network tutorial, quick start, smart contract deployment, Remix IDE, blockchain development, testnet setup, MetaMask configuration]
|
||||
---
|
||||
|
||||
# Quick Start
|
||||
|
||||
In this section, we'll get you deploying a sample contract on **Status Network Testnet** in less than 10 minutes.
|
||||
|
||||
Let's see how to deploy a smart contract on Status Network using the Remix IDE for simplicity.
|
||||
|
||||
## Get Everything Ready
|
||||
|
||||
Before getting started:
|
||||
|
||||
1. **Add Status Network Testnet to MetaMask**:
|
||||
|
||||
Follow the [Add Status Network guide](/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask.
|
||||
|
||||
2. **Get Test ETH**:
|
||||
|
||||
You'll need both Sepolia ETH and Status Network ETH:
|
||||
- First get Sepolia ETH from [Sepolia Faucet](https://faucet.status.network)
|
||||
- Then bridge some ETH to Status Network using the [Status Bridge](https://bridge.status.network)
|
||||
- Alternatively, get Status Network ETH directly from our [Testnet Faucet](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||
|
||||
We are ready to get started!
|
||||
|
||||
## Remix & Sample Code
|
||||
|
||||
**Remix** is a no-setup tool for developing smart contracts. It's easy to get started, allowing a simple deployment process, debugging, interacting with smart contracts, and more.
|
||||
|
||||
For this tutorial, we will deploy a simple `SimpleStorage.sol` contract:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract SimpleStorage {
|
||||
uint256 number;
|
||||
|
||||
function store(uint256 num) public {
|
||||
number = num;
|
||||
}
|
||||
|
||||
function retrieve() public view returns (uint256) {
|
||||
return number;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** This contract lets you store a number and then read what that number is.
|
||||
|
||||
## Steps to Deploy
|
||||
|
||||
1. **Copy the Sample Code**:
|
||||
|
||||
- Copy the sample code and paste it into a new file named `SimpleStorage.sol` in Remix.
|
||||
|
||||
2. **Compile the Smart Contract**:
|
||||
|
||||
- Go to the **Solidity Compiler** tab (on the left sidebar).
|
||||
- Ensure the compiler version is 0.8.0 or higher.
|
||||
- Click **"Compile SimpleStorage.sol"**.
|
||||
- You can enable **"Auto compile"** for automatic compilation whenever you change the contract code.
|
||||
|
||||
3. **Deploy the Smart Contract**:
|
||||
|
||||
- Switch to the **Deploy & Run Transactions** tab.
|
||||
- In the **"Environment"** dropdown menu, select **"Injected Provider - MetaMask"**.
|
||||
- MetaMask may prompt you to connect to Remix. Confirm the connection.
|
||||
- Ensure that **Status Network Testnet** is selected in MetaMask.
|
||||
- Under **"Contract"**, make sure `SimpleStorage` is selected.
|
||||
- Click **"Deploy"**.
|
||||
- MetaMask will pop up, asking you to confirm the transaction. Gas fees will be paid in ETH.
|
||||
- Review the transaction details and click **"Confirm"**.
|
||||
- Wait for the transaction to be mined.
|
||||
|
||||
4. **Verify Deployment**:
|
||||
|
||||
- Once deployed, copy your contract's address from Remix
|
||||
- View it on [Status Network Explorer](https://sepoliascan.status.network)
|
||||
|
||||
**CONGRATULATIONS!** You just deployed your first smart contract on Status Network.
|
||||
|
||||
## Interact with Your Deployed Smart Contract
|
||||
|
||||
1. **Access Deployed Contract**:
|
||||
|
||||
- In Remix, under the **"Deployed Contracts"** section, you'll see your deployed `SimpleStorage` contract.
|
||||
|
||||
2. **Store a Number**:
|
||||
|
||||
- Expand the deployed contract to view its functions.
|
||||
- In the **"store"** function input field, enter a number (e.g., `42`).
|
||||
- Click **"transact"**.
|
||||
- MetaMask will prompt you to confirm the transaction. Gas fees will be paid in ETH.
|
||||
- Wait for the transaction to be confirmed.
|
||||
|
||||
3. **Retrieve the Number**:
|
||||
|
||||
- Click on the **"retrieve"** function.
|
||||
- The stored number will display below the button.
|
||||
- This is a view function, so no gas fees are required.
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **Get Support**:
|
||||
- Join our [Telegram Community](https://t.me/statusl2) for assistance
|
||||
- Check our [Network Details](/general-info/network-details) for more information
|
||||
- Learn about [bridging tokens](/general-info/bridge/bridging-testnet) to Status Network
|
||||
|
||||
## Summary
|
||||
|
||||
You've successfully:
|
||||
- Set up your environment to interact with Status Network Testnet
|
||||
- Obtained testnet ETH through bridging or faucet
|
||||
- Deployed a smart contract using Remix IDE and MetaMask
|
||||
- Interacted with your deployed contract by storing and retrieving a number
|
||||
|
||||
For more advanced development, check out our guides for deploying with:
|
||||
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: Official Links
|
||||
description: Complete directory of official Status Network resources, including main website, tools, development resources, and community links.
|
||||
keywords: [Status Network links, official resources, network tools, development resources, community links, blockchain explorer, bridge, faucet]
|
||||
---
|
||||
|
||||
# Official Links
|
||||
|
||||
This page contains all the official links for the Status Network ecosystem.
|
||||
|
||||
## Main Resources
|
||||
- **Website**: [status.network](https://status.network)
|
||||
- **Documentation**: [docs.status.network](https://docs.status.network)
|
||||
- **GitHub**: [github.com/status-im](https://github.com/status-im)
|
||||
|
||||
## Network Tools
|
||||
- **Bridge**: [bridge.status.network](https://bridge.status.network)
|
||||
- **Block Explorer**: [sepoliascan.status.network](https://sepoliascan.status.network)
|
||||
- **RPC Endpoint**: `https://public.sepolia.rpc.status.network`
|
||||
- **Faucet**: [faucet.status.network](https://faucet.status.network)
|
||||
|
||||
## Development Resources
|
||||
- **Token List Repository**: [github.com/status-im/status-network-token-list](https://github.com/status-im/status-network-token-list)
|
||||
- **Contract Verification**: [sepoliascan.status.network/verify-contract](https://sepoliascan.status.network/contract-verification)
|
||||
|
||||
## Community & Support
|
||||
- **Telegram Community**: [t.me/statusl2](https://t.me/statusl2)
|
||||
- **X/twitter**: [x.com/statusL2](https://x.com/statusL2)
|
||||
|
||||
For detailed information about adding the network to your wallet, see our [Add Network guide](/general-info/add-status-network).
|
||||
@@ -0,0 +1,63 @@
|
||||
# Status Network - Website Privacy Policy
|
||||
|
||||
*Last updated: 12 February 2025*
|
||||
|
||||
This Privacy Policy is intended to inform users of our approach to privacy in respect of this website (“**Website**”). In this regard, if you are visiting our Website, this Privacy Policy applies to you.
|
||||
|
||||
## Who we are
|
||||
|
||||
For the purposes of this Privacy Policy and the collection and processing of personal data as a controller, the relevant entity is the Status Research & Development GmbH, a Swiss company with its registered office at Baarerstrasse 10, Zug, Switzerland.
|
||||
|
||||
Whenever we refer to “Status”, “we”, “us” or any other similar references, we are referring to Status Research & Development GmbH.
|
||||
|
||||
## We limit the collection and processing of personal data from your use of the Website
|
||||
|
||||
We aim to limit the collection and processing of personal data from users of the Website. We only collect and process certain personal data for specific purposes and where we have the legal basis to do so under applicable data protection law. We will not collect or process any personal data that we don’t need and where we do store any personal data, we will only store it for the least amount of time needed for the indicated purpose.
|
||||
|
||||
In this regard, we collect and process the following personal data from your use of the Website:
|
||||
|
||||
* **IP address**: As part of such use of the Website and from our use of Fathom Analytics we briefly process your IP address but we have no way of identifying you. We however have a legitimate interest in processing such IP addresses to ensure the technical functionality and enhance the security measures of the Website. This IP address is not stored by us over time.
|
||||
|
||||
* **Fathom Analytics**: We note that we make use of Fathom Analytics, which you can read more about here: https://usefathom.com/. In short, Fathom Analytics is an alternative to Google Analytics, that doesn’t compromise visitor privacy for data. Fathom Analytics collects trends and insights, not personal details about specific website visitors. Fathom Analytics offers simple traffic insights such as top pages, top referrers, bounce rate, and average time people spend on a site.
|
||||
|
||||
## Third party processing of personal data
|
||||
|
||||
In addition to our limited and collection of personal data, third parties may collect or process personal data as a result of the Website making use of certain features or to provide certain content. To the extent you interact with such third party content or features, their respective privacy policies will apply.
|
||||
|
||||
## Security measures we take in respect of the Website
|
||||
|
||||
As a general approach, we take data security seriously and we have implemented a variety of security measures on the Website to maintain the safety of your personal data when you submit such information to us.
|
||||
|
||||
## Exporting data outside the European Union and Switzerland
|
||||
|
||||
We are obliged to protect the privacy of personal data that you may have submitted in the unlikely event that we export your personal data to places outside the European Union or Switzerland. This means that personal data will only be processed in countries or by parties that provide an adequate level of protection as deemed by Switzerland or the European Commission. Otherwise, we will use other forms of protections, such as specific forms of contractual clauses to ensure such personal data is provided the same protection as required in Switzerland or Europe. In any event, the transmission of personal data outside the European Union and Switzerland will always occur in conformity with applicable data protection law.
|
||||
|
||||
## Your choices and rights
|
||||
|
||||
As explained in this Privacy Policy, we limit our collection and processing of your personal data wherever possible. Nonetheless, you still have certain choices and rights in respect of the personal data which we do collect and process. As laid out in relevant applicable data protection law, you have the right to:
|
||||
|
||||
* Ask us to correct or update your personal data (where reasonably possible);
|
||||
* Ask us to remove your personal data from our systems;
|
||||
* Ask us for a copy of your personal data, which may also be transferred to another data controller at your request;
|
||||
* Withdraw your consent to process your personal data (only if consent was asked for a processing activity), which only affects processing activities that are based on your consent and doesn’t affect the validity of such processing activities before you have withdrawn your consent;
|
||||
* Object to the processing of your personal data; and
|
||||
* File a complaint with the Federal Data Protection and Information Commissioner (FDPIC), if you believe that your personal data has been processed unlawfully.
|
||||
|
||||
## Third party links
|
||||
|
||||
On this Website, you may come across links to third party websites. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these third party websites.
|
||||
|
||||
## This Privacy Policy might change
|
||||
|
||||
We may modify or replace any part of this Privacy Policy at any time and without notice. Please check the Website periodically for any changes. The new Privacy Policy will be effective immediately upon its posting on our Website.
|
||||
|
||||
## Contact information
|
||||
|
||||
To the extent that you have any questions about the Privacy Policy, please contact us at legal@status.im
|
||||
|
||||
---
|
||||
|
||||
*This document is licensed under CC-BY-SA.*
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
# Status Network - Website Terms of Use
|
||||
|
||||
*Last updated: 29 January 2025*
|
||||
|
||||
These website terms of use ("Website Terms of Use") are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website.
|
||||
|
||||
It is your responsibility to read the Website Terms of Use carefully before your use of the Website and your use of the Website means you have agreed to be bound and comply with these Website Terms of Use.
|
||||
|
||||
If you do not agree with these Website Terms of Use, you must not access or use the Website.
|
||||
|
||||
## Who we are
|
||||
|
||||
For the purposes of these Website Terms of Use, the relevant entity is the Status Research & Development GmbH, a Swiss company with its registered office at Baarerstrasse 10, Zug, Switzerland, and includes its "representatives", which means Status' affiliates, directors, officers, employees, agents and any other representatives of Status.
|
||||
|
||||
For the purposes of these terms, "representatives" also includes Status core contributors without prejudice to the other legal categories mentioned. Our contact information can be found at the end of the Website Terms of Use.
|
||||
|
||||
Whenever we refer to "Status", "we", "us" or any other similar references, we are referring to Status Research & Development GmbH.
|
||||
|
||||
## Disclaimers
|
||||
|
||||
The Website is provided by us on an 'as is' basis and you use the Website at your own sole discretion and risk.
|
||||
|
||||
We disclaim all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property or other violation of rights. We do not warrant or make any representations concerning the completeness, accuracy, legality, utility, reliability, suitability or availability of the use of the Website, the content on this Website or otherwise relating to the Website, such content or on any sites linked to this site. These disclaimers will apply to the maximum extent permitted by applicable law.
|
||||
|
||||
We make no claims that the Website or any of its content is accessible, legally compliant or appropriate in your jurisdiction. Your access or use of the Website is at your own sole discretion and you are solely responsible for complying with any applicable local laws.
|
||||
|
||||
The content herein or as accessible through the Website is intended to be made available for informational purposes only and should not be considered as creating any expectations or forming the basis of any contract, commitment or binding obligation with us. No information herein shall be considered to contain or be relied upon as a promise, representation, warranty or guarantee, whether express or implied and whether as to the past, present or the future in relation to the projects and matters described herein.
|
||||
|
||||
The information contained herein does not constitute financial, legal, tax, or other advice and should not be treated as such.
|
||||
|
||||
## Forward looking statements
|
||||
|
||||
The Website may also contain forward-looking statements that are based on current expectations, estimates, forecasts, assumptions and projections about the technology, industry and markets in general.
|
||||
|
||||
The forward looking statements, which may include statements about the roadmap, project descriptions, technical details, functionalities, features, the development and use of tokens by projects, and any other statements related to such matters or as accessible through this website are subject to a high degree of risk and uncertainty. The forward looking statements are subject to change based on, among other things, market conditions, technical developments, and regulatory environment. The actual development and results, including the order and the timeline, might vary from what's presented. The information contained herein is a summary and does not purport to be accurate, reliable or complete and we bear no responsibility for the accuracy, reliability or completeness of information contained herein. Because of the high degree of risk and uncertainty described above, you should not place undue reliance on any matters described in this website or as accessible through this website.
|
||||
|
||||
To the extent tokens are referenced on this Website, we note that they have not been registered under any securities laws and must not be offered or sold in any jurisdiction where such offer or sale would be prohibited. The information contained on this Website does not constitute a prospectus, nor an offer to buy, a solicitation or an invitation to buy, or a recommendation for any token or any security.
|
||||
|
||||
While we aim to update the Website regularly, all information, including the timeline and the specifics of each stage, is subject to change and may be amended or supplemented at any time, without notice and at our sole discretion.
|
||||
|
||||
## Intellectual property rights
|
||||
|
||||
Unless indicated otherwise, the Website, its materials and functionality (including but not limited to information, text, images, the design, selection and arrangement thereof) are owned by Status, its licensors or other providers of such materials and are protected by copyright, trademark or any other intellectual property or proprietary rights laws.
|
||||
|
||||
## Third party website links
|
||||
|
||||
To the extent the Website provides any links to a third party website, then their terms and conditions, including privacy policies, govern your use of those third party websites. By linking such third party websites, we do not represent or imply that we endorse or support such third party websites or content therein, or that we believe such third party websites and content therein to be accurate, useful or non-harmful. We have no control over such third party websites and will not be liable for your use of or activities on any third party websites accessed through the Website. If you access such third party websites through the Website, it is at your own risk and you are solely responsible for your activities on such third party websites.
|
||||
|
||||
## Limitation of liability
|
||||
|
||||
We will not be held liable to you under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these Website Terms of Use, the Website, the content on the Website, or your use of the Website, even if we have been advised of the possibility of such damages. In any event, our aggregate liability for such claims is limited to EUR 100 (one hundred Euros). This limitation of liability will apply to the maximum extent permitted by applicable law.
|
||||
|
||||
## Indemnity
|
||||
|
||||
You shall indemnify us and hold us harmless from and against any and all claims, damages and expenses, including attorneys' fees, arising from or related to your use of the Website, the content on the Website, including without limitation your violation of these Website Terms of Use.
|
||||
|
||||
## Modifications
|
||||
|
||||
We may modify or replace any part of this Website Terms of Use at any time and without notice. You are responsible for checking the Website periodically for any changes. The new Website Terms of Use will be effective immediately upon its posting on the Website.
|
||||
|
||||
## Governing law
|
||||
|
||||
Swiss law governs these Website Terms of Use and any disputes between you and us, whether in court or arbitration, without regard to conflict of laws provisions.
|
||||
|
||||
## Disputes
|
||||
|
||||
In these terms, "dispute" has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have in relation to these Website Terms of Use, the Website, the content on the Website, or your use of the Website.
|
||||
|
||||
We prefer arbitration over litigation as we believe it meets our principle of resolving disputes in the most effective and cost effective manner. You are bound by the following arbitration clause, which waives your right to litigation and to be heard by a judge. Please note that court review of an arbitration award is limited. You also waive all your rights to a jury trial (if any) in any and all jurisdictions.
|
||||
|
||||
If a (potential) dispute arises, you must first use your reasonable efforts to resolve it amicably with us. If these efforts do not result in a resolution of such dispute, you shall then send us a written notice of dispute setting out (i) the nature of the dispute, and the claim you are making; and (ii) the remedy you are seeking.
|
||||
|
||||
If we and you are unable to further resolve this dispute within sixty (60) calendar days of us receiving this notice of dispute, then any such dispute will be referred to and finally resolved by you and us through an arbitration administered by the Swiss Chambers' Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference. The arbitral decision may be enforced in any court. The arbitration will be held in Zug, Switzerland, and may be conducted via video conference virtual/online methods if possible. The tribunal will consist of one arbitrator, and all proceedings as well as communications between the parties will be kept confidential. The language of the arbitration will be in English. Payment of all relevant fees in respect of the arbitration, including filing, administration and arbitrator fees will be in accordance with the Swiss Rules of International Arbitration.
|
||||
|
||||
Regardless of any applicable statute of limitations, you must bring any claims within one year after the claim arose or the time when you should have reasonably known about the claim. You also waive the right to participate in a class action lawsuit or a classwide arbitration against us.
|
||||
|
||||
## About these Website Terms of Use
|
||||
|
||||
These Website Terms of Use cover the entire agreement between you and us regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.
|
||||
|
||||
The captions and headings identifying sections and subsections of these Website Terms of Use are for reference only and do not define, modify, expand, limit, or affect the interpretation of any provisions of these Website Terms of Use.
|
||||
|
||||
If any part of these Website Terms of Use is held invalid or unenforceable, that part will be severable from these Website Terms of Use, and the remaining portions will remain in full force and effect. If we fail to enforce any of these Website Terms of Use, that does not mean that we have waived our right to enforce them.
|
||||
|
||||
If you have any specific questions about these Website Terms of Use, please contact us at legal@status.im.
|
||||
|
||||
---
|
||||
|
||||
*This document is licensed under CC-BY-SA.*
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Economic Model
|
||||
|
||||
Unlike traditional L2s that generate revenue from gas fees, Status Network operates on a radically different paradigm: users and applications do not pay transaction fees. This necessitates alternative revenue sources to maintain and sustain the network. As gas fees trend toward zero and rollups move toward decentralization, the business model of L2s must shift from execution-based revenue (sequencer fees) to monetizing asset trading volume and yield-bearing total value locked (TVL) on the network.
|
||||
|
||||
## Revenue Streams
|
||||
|
||||
To achieve sustainability, Status Network derives revenue from the following sources:
|
||||
|
||||
- **Native Yield Commission**: Assets bridged to Status Network (ETH and DAI initially) are rehypothecated into yield-bearing equivalents (stETH and sDAI). A portion of the yield generated (30%) is allocated to the network's operational costs.
|
||||
|
||||
- **Native DEX Swap Fees**: Status Network features a native DEX where trading fees contribute to network operation. Native DEX liquidity providers can earn extra incentives from the native yield on top of the usual LP fees.
|
||||
|
||||
- **Premium Gas Fees**: Users exceeding their free transaction quota must pay a premium fee, which is split between Status Network and RLN (the spam prevention mechanism), incentivizing fair usage and discouraging abuse.
|
||||
|
||||
- **Future Native Apps**: The network will later introduce additional revenue streams, such as a lending market, NFT marketplace, and token launchpad, each contributing a percentage of generated fees back into the L2 operation.
|
||||
|
||||
This model ensures that Status Network remains economically sustainable while offering free transactions. By leveraging TVL and its associated native yield as well as transaction volume, Status Network aligns incentives between users, liquidity providers, and developers, creating a self-sustaining ecosystem without reliance on inflationary token emissions.
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Karmic Tokenomics
|
||||
|
||||
In some Eastern traditions, Karma represents the principle that one's past actions shape their future state. Similarly, on Status Network, every positive action and contribution accumulates Karma, granting greater influence over the network's funding and incentives. Karma ($KARMA) is a non-transferable governance token that rewards staking, bridging, providing liquidity, and building. The more a user or an app contributes to the L2 in liquidity or activity, the more voting power they earn over funding allocations, liquidity incentives, and network roadmap and parameters.
|
||||
|
||||
## How Karma is Earned
|
||||
|
||||
Karma is minted through six primary mechanisms and cannot be aquired, ensuring that no entity—including the Status team—has any advantage in getting access to it. Everyone earns Karma under the same rules, based solely on their contributions to the network, ensuring it remains a pure representation of meaningful engagement within the network:
|
||||
|
||||
1. **Staking SNT** – Anyone staking SNT receives Karma rewards proportionally. The longer one stakes or locks their SNT, the higher the Karma earning rate.
|
||||
|
||||
2. **Bridging Yield-Bearing Assets** – Bridging ETH and DAI (initially, with more assets to be added later) to Status Network earns Karma.
|
||||
|
||||
3. **Providing Liquidity** – On the native DEX, anyone can provide liquidity to curated pools to earn fees, native yield rewards, and Karma
|
||||
|
||||
4. **Building and Using Applications** – Users and developers earn Karma through transaction volume and app traction. The more successful an app is, the higher Karma is allocated to its developers and users.
|
||||
|
||||
5. **Paying Premium Gas Fees** – Users and apps exceeding their gasless throughput limit pay a premium gas fee that serves as a penalty but also earns them some Karma in return. Increasing their Karma might actually allow them to unlock higher gas-free transaction limits.
|
||||
|
||||
6. **Direct Donations** – Anyone contributing directly to the public funding pool receives Karma.
|
||||
|
||||
The initialization parameters of Karma minting allocations will be announced soon. In the future, Karma holders will be able to modify those parameters through a vote if needed. The ultimate objective is to maximize alignment among stakeholders for a more sustainable growth of the network.
|
||||
|
||||
## Utility of Karma
|
||||
|
||||
- **Gasless Transactions**: As soon as an account has a positive Karma balance, it gains access to a certain throughput of free transactions. A tiered system allows users and apps with higher Karma to enjoy more free transactions per day. A dynamic rate-limiting mechanism prevents spam and ensures fair usage of the network.
|
||||
|
||||
- **Governance Token**: Karma holders vote on the allocation of the apps funding pool. Higher Karma scores have more weight in funding distribution - they can decide to prioritize their favourite applications or protocols.
|
||||
|
||||
- **Native DEX Liquidity Incentives**: Karma holders vote on the incentive gauges for all curated liquidity pools on the native DEX.
|
||||
|
||||
- **Network Policy Decisions**: Karma holders vote on the L2 economic and operational parameters, inlcuding native yield and fees distribution, Karma minting rate and allocation, etc.
|
||||
|
||||
- **Loyalty and Reputation System**: Since Karma is soulbound, high Karma scores signal power users and key contributors within the ecosystem. The users progressively accumulate influence and may gain access to extra incentives and perks (e.g. rewards from apps building on the network and seeking to attract high-quality users).
|
||||
|
||||
- **Liquid Grants for Votes**: In the future, apps, protocols, and liquidity providers will be able to offer liquid grants to Karma holders as voting incentives.
|
||||
|
||||
|
||||
## Flywheel Effect
|
||||
|
||||
1. Users bridge yield-bearing assets, earning Karma and increasing funding for apps and liquidity providers.
|
||||
|
||||
2. Higher app funding attracts new apps to deploy on the network.
|
||||
|
||||
3. Funded apps onboard more users, increasing transaction volume on the native DEX.
|
||||
|
||||
4. Higher native yield and fees attract more TVL as users bridge additional yield-bearing assets.
|
||||
|
||||
As TVL and adoption grow, so do funding opportunities, reinforcing network sustainability.
|
||||
@@ -0,0 +1,21 @@
|
||||
# Public Funding
|
||||
|
||||
## Apps Funding Pool and Public Funding Mechanism
|
||||
|
||||
One of the most critical components of Status Network is the apps funding pool, designed to provide sustainable financial support for applications built on the network. Unlike traditional blockchain ecosystems where developers rely on grants or short-term incentives, Status Network ensures continuous funding through a self-sustaining mechanism driven by network activity and TVL.
|
||||
|
||||
### Why Public Funding Matters
|
||||
|
||||
Public funding is essential to ensure that builders have access to capital without dependence on extractive external funding mechanisms. The Status organisation has a long-standing history of investing in open-source projects and decentralised infrastructure, reinforcing its commitment to public goods. The apps funding pool extends this ethos by providing a decentralized, community-driven allocation mechanism where developers can receive financial support directly from the network itself.
|
||||
|
||||
### How the Apps Funding Pool Works
|
||||
|
||||
- **Funded by Native Yield and Fees**: A significant part of the yield generated from bridged assets (ETH and DAI initially) and from the native DEX swap fees flows directly into the funding pool.
|
||||
|
||||
- **Governed by Karma Holders**: Allocation of funds is determined by Karma token holders, ensuring a community-led decision-making process: if the community loves your app, you'll get funding.
|
||||
|
||||
- **Transparent and Fair Distribution**: Initially, funding will be capped at a limited number of recipients to maintain quality control, but as the pool grows, more projects will be supported.
|
||||
|
||||
- **Aligning Builders with Network Growth**: Developers who actively contribute to network usage and adoption will receive more voting power in the form of Karma, allowing them to vote for themselves and reinforcing the incentive to create valuable applications.
|
||||
|
||||
This mechanism ensures a continuous, non-extractive source of capital for builders, allowing them to focus on creating successful applications.
|
||||
@@ -0,0 +1,31 @@
|
||||
# SNT Staking
|
||||
|
||||
## Status Network Token (SNT)
|
||||
|
||||
Launched in June 2017, the Status Network Token (SNT) serves as the native utility token of the Status ecosystem, a decentralized platform combining a messenger, web3 wallet, and gateway to decentralized applications on the Ethereum blockchain. SNT was designed to promote a decentralized and user-governed ecosystem, enabling holders to participate in governance, access features, and engage in various activities within the network. Over the years, SNT has facilitated user interactions within the Status app, allowing for voting on proposals, creating Ethereum Name Service (ENS) names, and accessing exclusive features.
|
||||
|
||||
With the upcoming deployment of the SNT staking contract on Status Network testnet, SNT holders will soon have the opportunity to stake their tokens, earning rewards and contributing to the network's governance and incentivization.
|
||||
|
||||
## Staking Contract
|
||||
|
||||
The staking contract will introduce Multiplier Points, which reward long-term commitment. SNT holders will have two staking options:
|
||||
|
||||
1. **Standard Staking**
|
||||
|
||||
Users can stake SNT without a lock-up period.
|
||||
They receive Multiplier Points gradually over time.
|
||||
If a user stakes for 4 years without unstaking, they achieve a maximum 4x Multiplier.
|
||||
|
||||
2. **Locked Staking**
|
||||
|
||||
Users can lock their SNT for a predetermined period (up to 4 years).
|
||||
They immediately receive a bonus Multiplier Point as well as a bonus Multiplier for each year they lock in advance.
|
||||
For example, locking for 4 years grants an instant 5x Multiplier (1x base + 4x for locking).
|
||||
Over the four-year period, they continue accumulating additional Multiplier Points, similar to standard staking, until they reach a maximum 9x total Multiplier
|
||||
|
||||
### Benefits of Staking SNT
|
||||
|
||||
- **Earning Karma**: Stakers accumulate Karma, which grants governance power and access to gasless transactions.
|
||||
- **Higher Free Transaction Quotas**: Users with more Karma enjoy greater gasless transaction limits.
|
||||
- **Boosted Governance Influence**: As they accumulate Karma, SNT stakers can play a critical role in public funding allocation, liquidity incentivization and network policy decisions.
|
||||
- **Higher Reputation**: By staking their SNT, holders can signal alignment with the ecosystem and showcase a reputation score in the form of Karma. Apps in the ecosystem have a strong incentive to attract users with high reputation.
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: Status Network Block Explorer
|
||||
description: Learn how to use the Status Network block explorer to track transactions, verify smart contracts, and monitor network activity. Complete guide to explorer features and contract verification.
|
||||
keywords: [Status Network explorer, blockchain explorer, smart contract verification, transaction tracking, block explorer, network monitoring]
|
||||
---
|
||||
|
||||
# Status Network Testnet Explorer
|
||||
|
||||
The Status Network block explorer is available at [sepoliascan.status.network](https://sepoliascan.status.network).
|
||||
|
||||
### Features
|
||||
- View transaction details and status
|
||||
- Track token transfers and balances
|
||||
- Verify smart contract source code
|
||||
- Monitor gas prices and network activity
|
||||
- View and interact with verified smart contracts
|
||||
- Track token holdings for any address
|
||||
|
||||
## Sepolia Explorer (Layer 1)
|
||||
|
||||
For tracking transactions on Sepolia (Layer 1), use [Sepolia Etherscan](https://sepolia.etherscan.io).
|
||||
|
||||
This is particularly useful for:
|
||||
- Monitoring bridge transactions from L1 to L2
|
||||
- Tracking token deposits and withdrawals
|
||||
- Verifying L1 contract interactions
|
||||
|
||||
## Contract Verification
|
||||
|
||||
To verify your smart contract on Status Network Explorer:
|
||||
|
||||
1. Navigate to [Contract Verification](https://sepoliascan.status.network/contract-verification)
|
||||
2. Enter your contract address
|
||||
3. Upload your source code and provide compilation details
|
||||
4. Submit for verification
|
||||
|
||||
Once verified, your contract's source code will be publicly visible and users can interact with it directly through the explorer.
|
||||
|
||||
## API Access
|
||||
|
||||
The Status Network Explorer provides API endpoints for developers. Documentation for the API will be available soon.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: Status Network Bridge
|
||||
description: Complete guide to using the Status Network bridge for transferring tokens between Sepolia and Status Network testnet. Learn about supported tokens, bridging process, and monitoring transactions.
|
||||
keywords: [Status Network bridge, token bridge, cross-chain transfer, L1 L2 bridge, token bridging, Sepolia bridge]
|
||||
---
|
||||
|
||||
# Status Network Testnet Bridge
|
||||
|
||||
The Status Network Testnet Bridge allows users to transfer tokens between Sepolia (Layer 1) and Status Network testnet (Layer 2). The bridge interface is available at [bridge.status.network](https://bridge.status.network).
|
||||
|
||||
## Overview
|
||||
|
||||
The bridge serves as a crucial infrastructure component that enables:
|
||||
- Token transfers from Sepolia to Status Network testnet
|
||||
- Token withdrawals from Status Network testnet to Sepolia
|
||||
- Message passing between L1 and L2
|
||||
|
||||
## Bridge Contracts
|
||||
|
||||
### Layer 1 (Sepolia)
|
||||
- **Token Bridge**: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||
|
||||
### Layer 2 (Status Network)
|
||||
- **Token Bridge**: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||
|
||||
## Features
|
||||
|
||||
- **Token Bridging**: Transfer ERC-20 tokens between networks
|
||||
- **ETH Bridging**: Bridge ETH between Sepolia and Status Network
|
||||
- **Transaction Tracking**: Monitor the status of your bridge transactions
|
||||
- **Gas Estimation**: See estimated gas costs before bridging
|
||||
|
||||
## Supported Tokens
|
||||
|
||||
For the most up-to-date list of supported tokens and their contract addresses, please refer to our [Token List Repository](https://github.com/status-im/status-network-token-list).
|
||||
|
||||
## Using the Bridge
|
||||
|
||||
For detailed instructions on how to use the bridge, including step-by-step guides and important security considerations, please refer to our [Bridging Guide](../general-info/bridge/bridging-testnet.md).
|
||||
|
||||
## Monitoring Bridge Transactions
|
||||
|
||||
You can monitor your bridge transactions using:
|
||||
- [Status Network Explorer](https://sepoliascan.status.network) for L2 transactions
|
||||
- [Sepolia Etherscan](https://sepolia.etherscan.io) for L1 transactions
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter any issues while using the bridge:
|
||||
- Check our [Bridging Guide](../general-info/bridge/bridging-testnet.md) for common solutions
|
||||
- Join our [Telegram Community](https://t.me/statusl2) for assistance
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: RPC Endpoints
|
||||
description: Official RPC endpoints for Status Network, including configuration guides for MetaMask and Web3 libraries. Learn about available methods, rate limits, and best practices.
|
||||
keywords: [Status Network RPC, JSON-RPC, blockchain API, web3 configuration, MetaMask setup, blockchain development]
|
||||
---
|
||||
|
||||
# RPC Endpoints
|
||||
|
||||
The Status Network provides public RPC (Remote Procedure Call) endpoints that allow you to interact with the network.
|
||||
|
||||
## Public RPC URL
|
||||
|
||||
```
|
||||
https://public.sepolia.rpc.status.network
|
||||
```
|
||||
|
||||
## Using the RPC
|
||||
|
||||
### Adding to MetaMask
|
||||
For instructions on adding Status Network to your wallet using this RPC, see our [Add Network guide](../general-info/add-status-network.md).
|
||||
|
||||
### Web3 Library Configuration
|
||||
|
||||
```javascript
|
||||
// Web3.js
|
||||
const web3 = new Web3('https://public.sepolia.rpc.status.network');
|
||||
|
||||
// Ethers.js v5
|
||||
const provider = new ethers.providers.JsonRpcProvider('https://public.sepolia.rpc.status.network');
|
||||
```
|
||||
|
||||
## Available Methods
|
||||
|
||||
The RPC endpoint supports standard Ethereum JSON-RPC methods, including:
|
||||
|
||||
- `eth_blockNumber`: Get the latest block number
|
||||
- `eth_getBalance`: Get account balance
|
||||
- `eth_sendRawTransaction`: Send signed transactions
|
||||
- `eth_call`: Execute a call without creating a transaction
|
||||
- `eth_getLogs`: Get event logs
|
||||
- `eth_getTransactionByHash`: Get transaction details
|
||||
- `eth_getBlockByNumber`: Get block information
|
||||
|
||||
For a complete list of supported RPC methods and detailed specifications, refer to the [Linea API Reference](https://docs.linea.build/api/reference), as Status Network is based on Linea technology.
|
||||
|
||||
## Rate Limits
|
||||
|
||||
The public RPC endpoint has rate limiting to ensure fair usage:
|
||||
- 10 requests per second per IP
|
||||
- 100,000 requests per day per IP
|
||||
|
||||
For higher limits, get in touch with us on Telegram.
|
||||
|
||||
## Support
|
||||
|
||||
If you experience issues with the RPC endpoint:
|
||||
- Join our [Telegram Community](https://t.me/statusl2) for support
|
||||
- Consider implementing a fallback RPC strategy in your application
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: Testnet Faucets
|
||||
description: Get testnet ETH for Status Network development. Complete guide to obtaining test tokens through Status Network faucet and Sepolia faucets for bridging.
|
||||
keywords: [Status Network faucet, testnet ETH, test tokens, Sepolia faucet, blockchain testing, development tokens]
|
||||
---
|
||||
|
||||
# Testnet Faucets
|
||||
|
||||
To get started on Status Network testnet, you'll need both Sepolia ETH and Status Network testnet ETH.
|
||||
|
||||
## Status Network Testnet Faucet
|
||||
|
||||
The Status Network testnet faucet is available at [faucet.status.network](https://faucet.status.network).
|
||||
|
||||
### Details
|
||||
- **Faucet Contract**: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||
- **Amount**: 0.1 ETH per request
|
||||
- **Cooldown**: One request per address per day
|
||||
|
||||
### How to Get Testnet ETH
|
||||
|
||||
1. Visit [faucet.status.network](https://faucet.status.network)
|
||||
2. Connect your wallet
|
||||
3. Click "Request Funds"
|
||||
4. Confirm the transaction in your wallet
|
||||
5. Wait for the ETH to appear in your wallet (usually takes a few seconds)
|
||||
|
||||
## Sepolia ETH (Required for Bridging)
|
||||
|
||||
To bridge assets to Status Network testnet, you'll first need Sepolia ETH. You can get it from:
|
||||
|
||||
2. [Alchemy Sepolia Faucet](https://www.alchemy.com/faucets/ethereum-sepolia)
|
||||
3. [Metamask Sepolia Faucet](https://docs.metamask.io/developer-tools/faucet/)
|
||||
|
||||
Once you have Sepolia ETH, you can bridge it to Status Network testnet using the [Status Network Bridge](https://bridge.status.network).
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter any issues with the faucet:
|
||||
- Join our [Telegram Community](https://t.me/statusl2) for support
|
||||
@@ -0,0 +1,214 @@
|
||||
---
|
||||
title: Using Foundry with Status Network
|
||||
description: Comprehensive guide to deploying and testing smart contracts on Status Network using Foundry. Learn about project setup, deployment scripts, testing, and contract interaction using Cast.
|
||||
keywords: [Foundry tutorial, smart contract deployment, Status Network development, blockchain testing, Solidity development, web3 development, Foundry testing]
|
||||
---
|
||||
|
||||
# Using Foundry to Deploy Smart Contracts
|
||||
|
||||
This tutorial will guide you through the process of deploying a smart contract on Status Network testnet using Foundry.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following:
|
||||
|
||||
- **Foundry**: Install from the [official Foundry book](https://book.getfoundry.sh/getting-started/installation)
|
||||
- **Ethereum Wallet**: A private key for Status Network testnet
|
||||
- **Testnet ETH**: You'll need Status Network testnet ETH
|
||||
- Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets)
|
||||
- **Basic Knowledge**: Familiarity with Solidity and command line
|
||||
|
||||
## What You'll Accomplish
|
||||
|
||||
- Initialize a Foundry project
|
||||
- Write a basic Ethereum smart contract
|
||||
- Configure Foundry for Status Network testnet deployment
|
||||
- Deploy your smart contract
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Initialize a Foundry Project
|
||||
|
||||
First, create a new Foundry project:
|
||||
|
||||
```bash
|
||||
# Create a new project
|
||||
forge init hello_status
|
||||
cd hello_status
|
||||
|
||||
# Create .env file for private key
|
||||
touch .env
|
||||
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||
```
|
||||
|
||||
### 2. Writing the Smart Contract
|
||||
|
||||
Replace `src/Counter.sol` with our `HelloWorld.sol`:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
contract HelloWorld {
|
||||
string public greet = "Hello, Status Network!";
|
||||
|
||||
function setGreet(string memory _greet) public {
|
||||
greet = _greet;
|
||||
}
|
||||
|
||||
function getGreet() public view returns (string memory) {
|
||||
return greet;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Configure Foundry for Status Network
|
||||
|
||||
Create or update `foundry.toml`:
|
||||
|
||||
```toml
|
||||
[profile.default]
|
||||
src = "src"
|
||||
out = "out"
|
||||
libs = ["lib"]
|
||||
solc = "0.8.24"
|
||||
|
||||
[rpc_endpoints]
|
||||
status_testnet = "https://public.sepolia.rpc.status.network"
|
||||
```
|
||||
|
||||
### 4. Deploy the Contract
|
||||
|
||||
Create a deployment script `script/Deploy.s.sol`:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
import "forge-std/Script.sol";
|
||||
import "../src/HelloWorld.sol";
|
||||
|
||||
contract DeployScript is Script {
|
||||
function run() external {
|
||||
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||
|
||||
vm.startBroadcast(deployerPrivateKey);
|
||||
|
||||
HelloWorld hello = new HelloWorld();
|
||||
console.log("HelloWorld deployed to:", address(hello));
|
||||
|
||||
vm.stopBroadcast();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Deploy using forge:
|
||||
|
||||
```bash
|
||||
# Load environment variables
|
||||
source .env
|
||||
|
||||
# Deploy to Status Network testnet
|
||||
forge script script/Deploy.s.sol:DeployScript \
|
||||
--rpc-url https://public.sepolia.rpc.status.network \
|
||||
--broadcast \
|
||||
```
|
||||
|
||||
### 5. Interact with the Contract
|
||||
|
||||
Create a script to interact with your contract `script/Interact.s.sol`:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
import "forge-std/Script.sol";
|
||||
import "../src/HelloWorld.sol";
|
||||
|
||||
contract InteractScript is Script {
|
||||
function run() external {
|
||||
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||
address contractAddress = address(0x...); // Replace with your contract address
|
||||
|
||||
vm.startBroadcast(deployerPrivateKey);
|
||||
|
||||
HelloWorld hello = HelloWorld(contractAddress);
|
||||
|
||||
// Read current greeting
|
||||
string memory currentGreeting = hello.getGreet();
|
||||
console.log("Current greeting:", currentGreeting);
|
||||
|
||||
// Update greeting
|
||||
hello.setGreet("Hello from Foundry!");
|
||||
|
||||
vm.stopBroadcast();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Run the interaction script:
|
||||
|
||||
```bash
|
||||
forge script script/Interact.s.sol:InteractScript \
|
||||
--rpc-url https://public.sepolia.rpc.status.network \
|
||||
--broadcast
|
||||
```
|
||||
|
||||
### 6. Cast Commands for Quick Interactions
|
||||
|
||||
You can also use `cast` to interact with your contract:
|
||||
|
||||
```bash
|
||||
# Read the greeting
|
||||
cast call <CONTRACT_ADDRESS> "getGreet()" \
|
||||
--rpc-url https://public.sepolia.rpc.status.network
|
||||
|
||||
# Set a new greeting
|
||||
cast send <CONTRACT_ADDRESS> "setGreet(string)" "New greeting!" \
|
||||
--private-key $PRIVATE_KEY \
|
||||
--rpc-url https://public.sepolia.rpc.status.network
|
||||
```
|
||||
|
||||
### 7. Testing
|
||||
|
||||
Create a test file `test/HelloWorld.t.sol`:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
import "../src/HelloWorld.sol";
|
||||
|
||||
contract HelloWorldTest is Test {
|
||||
HelloWorld hello;
|
||||
|
||||
function setUp() public {
|
||||
hello = new HelloWorld();
|
||||
}
|
||||
|
||||
function testGreeting() public {
|
||||
assertEq(hello.getGreet(), "Hello, Status Network!");
|
||||
|
||||
hello.setGreet("New greeting");
|
||||
assertEq(hello.getGreet(), "New greeting");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Run the tests:
|
||||
|
||||
```bash
|
||||
forge test
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter any issues:
|
||||
- Join our [Telegram Community](https://t.me/statusl2)
|
||||
- View our [Network Details](/general-info/network-details)
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Foundry Book](https://book.getfoundry.sh/)
|
||||
- [Status Network Explorer](https://sepoliascan.status.network)
|
||||
@@ -0,0 +1,167 @@
|
||||
---
|
||||
title: Using Hardhat with Status Network
|
||||
description: Step-by-step tutorial for deploying smart contracts on Status Network using Hardhat and TypeScript. Learn about project setup, configuration, and contract deployment.
|
||||
keywords: [Hardhat tutorial, smart contract deployment, Status Network development, TypeScript, blockchain development, web3 development]
|
||||
---
|
||||
|
||||
# Using Hardhat to Deploy Smart Contracts
|
||||
|
||||
This tutorial will guide you through the process of deploying a smart contract on Status Network testnet using Hardhat, Hardhat Ignition, and TypeScript.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following:
|
||||
|
||||
- **Node.js and npm**: Download and install from the [official Node.js website](https://nodejs.org/)
|
||||
- **Ethereum Wallet**: MetaMask or another wallet with a private key for Status Network testnet
|
||||
- **Testnet ETH**: You'll need Status Network testnet ETH
|
||||
- Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets)
|
||||
- **Basic Knowledge**: Familiarity with Solidity, Hardhat, and command line
|
||||
|
||||
## What You'll Accomplish
|
||||
|
||||
- Initialize a TypeScript-based Hardhat project
|
||||
- Write a basic Ethereum smart contract
|
||||
- Configure Hardhat for Status Network testnet deployment
|
||||
- Deploy your smart contract using Hardhat Ignition
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Initialize a Hardhat TypeScript Project
|
||||
|
||||
First, create and set up your project:
|
||||
|
||||
```bash
|
||||
mkdir my-hardhat-project && cd my-hardhat-project
|
||||
npm init -y
|
||||
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox dotenv
|
||||
npx hardhat init
|
||||
```
|
||||
|
||||
When prompted, select "Create a TypeScript project" to set up a TypeScript-based Hardhat project.
|
||||
|
||||
Set up your environment variables:
|
||||
|
||||
```bash
|
||||
# Create a .env file
|
||||
touch .env
|
||||
|
||||
# Add your private key (never commit this file!)
|
||||
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||
```
|
||||
|
||||
### 2. Writing the Smart Contract
|
||||
|
||||
Create `contracts/HelloWorld.sol`:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
contract HelloWorld {
|
||||
string public greet = "Hello, Status Network!";
|
||||
|
||||
function setGreet(string memory _greet) public {
|
||||
greet = _greet;
|
||||
}
|
||||
|
||||
function getGreet() public view returns (string memory) {
|
||||
return greet;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Configuring Hardhat for Status Network
|
||||
|
||||
Update `hardhat.config.ts`:
|
||||
|
||||
```typescript
|
||||
import { HardhatUserConfig } from "hardhat/config";
|
||||
import "@nomicfoundation/hardhat-toolbox";
|
||||
import * as dotenv from "dotenv";
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
|
||||
|
||||
const config: HardhatUserConfig = {
|
||||
solidity: "0.8.24",
|
||||
networks: {
|
||||
statusTestnet: {
|
||||
url: "https://public.sepolia.rpc.status.network",
|
||||
chainId: 1660990954,
|
||||
accounts: [PRIVATE_KEY],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
```
|
||||
|
||||
### 4. Create Ignition Deployment Module
|
||||
|
||||
Create `ignition/modules/HelloWorld.ts`:
|
||||
|
||||
```typescript
|
||||
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
|
||||
|
||||
export default buildModule("HelloWorld", (m) => {
|
||||
const helloWorld = m.contract("HelloWorld");
|
||||
|
||||
return { helloWorld };
|
||||
});
|
||||
```
|
||||
|
||||
### 5. Deploy the Contract
|
||||
|
||||
```bash
|
||||
npx hardhat compile
|
||||
npx hardhat ignition deploy ignition/modules/HelloWorld.ts --network statusTestnet
|
||||
```
|
||||
|
||||
The deployment will create a new directory `ignition/deployments` containing your deployment artifacts and history.
|
||||
|
||||
### 7. Interact with Your Contract
|
||||
|
||||
Create `scripts/interact.ts`:
|
||||
|
||||
```typescript
|
||||
import { ethers } from "hardhat";
|
||||
import { HelloWorld } from "../typechain-types";
|
||||
|
||||
async function main() {
|
||||
const contractAddress = "0x0d8a93870494Fa21ec39602f31Aa67C9Fed5604f";
|
||||
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
||||
const contract = HelloWorld.attach(contractAddress) as HelloWorld;
|
||||
|
||||
// Read current greeting
|
||||
const greeting = await contract.getGreet();
|
||||
console.log("Current greeting:", greeting);
|
||||
|
||||
// Update greeting
|
||||
const tx = await contract.setGreet("Hello from Status Network!");
|
||||
await tx.wait();
|
||||
console.log("Greeting updated!");
|
||||
|
||||
// Read updated greeting
|
||||
const newGreeting = await contract.getGreet();
|
||||
console.log("New greeting:", newGreeting);
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
```
|
||||
|
||||
Run the interaction script:
|
||||
|
||||
```bash
|
||||
npx hardhat run scripts/interact.ts --network statusTestnet
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter any issues:
|
||||
- Join our [Telegram Community](https://t.me/statusl2)
|
||||
- View our [Network Details](/general-info/network-details)
|
||||
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: Using Remix with Status Network
|
||||
description: Learn how to deploy smart contracts on Status Network using Remix IDE. Beginner-friendly guide with step-by-step instructions for contract deployment and interaction.
|
||||
keywords: [Remix IDE, smart contract deployment, Status Network development, blockchain tutorial, web3 development, solidity]
|
||||
---
|
||||
|
||||
# Using Remix to Deploy Smart Contracts
|
||||
|
||||
This tutorial will guide you through deploying a smart contract on Status Network testnet using the Remix IDE. Remix is a browser-based IDE that's perfect for quick development and testing.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have:
|
||||
|
||||
- **Web Browser**: A modern web browser like Chrome or Firefox
|
||||
- **MetaMask**: Install the [MetaMask](https://metamask.io) browser extension
|
||||
- **Testnet ETH**: You'll need Status Network testnet ETH
|
||||
- Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets)
|
||||
- **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/general-info/add-status-network)
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Open Remix IDE
|
||||
|
||||
Visit [remix.ethereum.org](https://remix.ethereum.org) in your browser.
|
||||
|
||||
### 2. Create a New File
|
||||
|
||||
1. Click the "File Explorer" icon (first icon on the left sidebar)
|
||||
2. Click the "+" button to create a new file
|
||||
3. Name it `HelloWorld.sol`
|
||||
|
||||
### 3. Write the Smart Contract
|
||||
|
||||
Copy and paste the following code into `HelloWorld.sol`:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
contract HelloWorld {
|
||||
string public greet = "Hello, Status Network!";
|
||||
|
||||
function setGreet(string memory _greet) public {
|
||||
greet = _greet;
|
||||
}
|
||||
|
||||
function getGreet() public view returns (string memory) {
|
||||
return greet;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4. Compile the Contract
|
||||
|
||||
1. Click the "Solidity Compiler" icon (second icon on the left sidebar)
|
||||
2. Select compiler version "0.8.24"
|
||||
3. Click "Compile HelloWorld.sol"
|
||||
4. Ensure compilation succeeds (you'll see a green checkmark)
|
||||
|
||||
### 5. Deploy the Contract
|
||||
|
||||
1. Click the "Deploy & Run Transactions" icon (fourth icon on the left sidebar)
|
||||
2. In the "Environment" dropdown, select "Injected Provider - MetaMask"
|
||||
3. MetaMask will prompt you to connect - ensure Status Network testnet is selected
|
||||
4. Click "Deploy"
|
||||
5. Confirm the transaction in MetaMask
|
||||
6. Wait for the transaction to be confirmed
|
||||
|
||||
### 6. Interact with Your Contract
|
||||
|
||||
Once deployed, you'll see your contract under "Deployed Contracts":
|
||||
|
||||
1. Expand the contract interface
|
||||
2. You can:
|
||||
- Click "greet" to read the current greeting
|
||||
- Enter a new greeting in the "setGreet" field and click the button to update it
|
||||
- Click "getGreet" to read the greeting again
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
1. **Transaction Failed**
|
||||
- Check that you're connected to Status Network testnet
|
||||
|
||||
2. **Contract Not Found**
|
||||
- Wait a few minutes for the explorer to index your contract
|
||||
- Double-check the contract address
|
||||
|
||||
3. **Compilation Errors**
|
||||
- Verify the compiler version matches the pragma statement
|
||||
- Check for any syntax errors highlighted in Remix
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter any issues:
|
||||
- Join our [Telegram Community](https://t.me/statusl2)
|
||||
- View our [Network Details](/general-info/network-details)
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Remix Documentation](https://remix-ide.readthedocs.io/)
|
||||
- [Status Network Explorer](https://sepoliascan.status.network)
|
||||
@@ -0,0 +1,184 @@
|
||||
import type * as Preset from '@docusaurus/preset-classic';
|
||||
import type { Config } from '@docusaurus/types';
|
||||
|
||||
const config: Config = {
|
||||
title: 'Status Network Documentation',
|
||||
tagline: 'The Social Playground',
|
||||
url: 'https://docs.status.network',
|
||||
baseUrl: '/',
|
||||
favicon: 'img/favicon.ico',
|
||||
organizationName: 'status-network',
|
||||
projectName: 'docs',
|
||||
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en', 'zh', 'ko', 'ja'],
|
||||
localeConfigs: {
|
||||
en: {
|
||||
label: 'English',
|
||||
htmlLang: 'en-US',
|
||||
},
|
||||
zh: {
|
||||
label: '中文',
|
||||
htmlLang: 'zh-CN',
|
||||
},
|
||||
ko: {
|
||||
label: '한국어',
|
||||
htmlLang: 'ko-KR',
|
||||
},
|
||||
ja: {
|
||||
label: '日本語',
|
||||
htmlLang: 'ja-JP',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
{
|
||||
docs: {
|
||||
sidebarPath: './sidebars.ts',
|
||||
editUrl: 'https://github.com/status-im/docs.status.network/tree/develop',
|
||||
routeBasePath: '/',
|
||||
showLastUpdateTime: true,
|
||||
},
|
||||
blog: false,
|
||||
pages: false,
|
||||
theme: {
|
||||
customCss: './src/css/custom.css',
|
||||
},
|
||||
sitemap: {
|
||||
changefreq: 'weekly',
|
||||
priority: 0.5,
|
||||
ignorePatterns: ['/tags/**'],
|
||||
filename: 'sitemap.xml',
|
||||
},
|
||||
} satisfies Preset.Options,
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig: {
|
||||
image: 'img/sn-social-card.png',
|
||||
navbar: {
|
||||
title: 'Status Network Docs',
|
||||
logo: {
|
||||
alt: 'Status Network Logo',
|
||||
src: 'img/sn_logo.svg',
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'localeDropdown',
|
||||
position: 'right',
|
||||
className: 'language-dropdown',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
metadata: [
|
||||
// General SEO
|
||||
{
|
||||
name: 'description',
|
||||
content: 'Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions.',
|
||||
},
|
||||
{
|
||||
name: 'keywords',
|
||||
content: 'status network, blockchain, web3, documentation, gasless transactions, social network, cryptocurrency',
|
||||
},
|
||||
{
|
||||
name: 'author',
|
||||
content: 'Status Network',
|
||||
},
|
||||
|
||||
// OpenGraph tags
|
||||
{
|
||||
property: 'og:title',
|
||||
content: 'Status Network Documentation',
|
||||
},
|
||||
{
|
||||
property: 'og:description',
|
||||
content: 'Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions.',
|
||||
},
|
||||
{
|
||||
property: 'og:image',
|
||||
content: 'https://docs.status.network/img/sn-social-card.png',
|
||||
},
|
||||
{
|
||||
property: 'og:url',
|
||||
content: 'https://docs.status.network',
|
||||
},
|
||||
{
|
||||
property: 'og:type',
|
||||
content: 'website',
|
||||
},
|
||||
{
|
||||
property: 'og:site_name',
|
||||
content: 'Status Network Documentation',
|
||||
},
|
||||
|
||||
// Twitter Card tags
|
||||
{
|
||||
name: 'twitter:card',
|
||||
content: 'summary_large_image',
|
||||
},
|
||||
{
|
||||
name: 'twitter:site',
|
||||
content: '@statusL2',
|
||||
},
|
||||
{
|
||||
name: 'twitter:title',
|
||||
content: 'Status Network Documentation',
|
||||
},
|
||||
{
|
||||
name: 'twitter:description',
|
||||
content: 'Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions.',
|
||||
},
|
||||
{
|
||||
name: 'twitter:image',
|
||||
content: 'https://docs.status.network/img/sn-social-card.png',
|
||||
},
|
||||
],
|
||||
|
||||
colorMode: {
|
||||
defaultMode: 'dark',
|
||||
respectPrefersColorScheme: true,
|
||||
},
|
||||
|
||||
footer: {
|
||||
links: [
|
||||
{
|
||||
title: 'Legal',
|
||||
items: [
|
||||
{
|
||||
label: 'Terms of use',
|
||||
to: '/terms-of-use',
|
||||
},
|
||||
{
|
||||
label: 'Privacy policy',
|
||||
to: '/privacy-policy',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
algolia: {
|
||||
appId: 'M7J93TRPJ9',
|
||||
apiKey: '17befa84094fd9acddd40cbb64012976',
|
||||
indexName: 'status',
|
||||
contextualSearch: true,
|
||||
},
|
||||
},
|
||||
|
||||
plugins: [
|
||||
[
|
||||
'@acid-info/docusaurus-fathom',
|
||||
{
|
||||
siteId: 'SMSOL',
|
||||
scriptUrl: 'https://fathom.bi.status.im/tracker.js',
|
||||
hostnames: ['docs.status.network'],
|
||||
},
|
||||
]
|
||||
]
|
||||
} satisfies Config;
|
||||
|
||||
export default config;
|
||||
Generated
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1729973466,
|
||||
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs }:
|
||||
let
|
||||
supportedSystems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
forEachSystem = nixpkgs.lib.genAttrs supportedSystems;
|
||||
pkgsFor = forEachSystem (system: import nixpkgs { inherit system; });
|
||||
in
|
||||
rec {
|
||||
formatter = forEachSystem (system: pkgsFor.${system}.nixpkgs-fmt);
|
||||
|
||||
devShells = forEachSystem (system: {
|
||||
default = pkgsFor.${system}.mkShellNoCC {
|
||||
packages = with pkgsFor.${system}.buildPackages; [
|
||||
yarn # 1.22.22
|
||||
git # 2.44.1
|
||||
openssh # 9.7p1
|
||||
nodejs_20 # v20.15.1
|
||||
ghp-import # 2.1.0
|
||||
];
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,440 @@
|
||||
{
|
||||
"theme.ErrorPageContent.title": {
|
||||
"message": "エラーが発生しました",
|
||||
"description": "The title of the fallback page when the page crashed"
|
||||
},
|
||||
"theme.BackToTopButton.buttonAriaLabel": {
|
||||
"message": "先頭へ戻る",
|
||||
"description": "The ARIA label for the back to top button"
|
||||
},
|
||||
"theme.blog.archive.title": {
|
||||
"message": "アーカイブ",
|
||||
"description": "The page & hero title of the blog archive page"
|
||||
},
|
||||
"theme.blog.archive.description": {
|
||||
"message": "アーカイブ",
|
||||
"description": "The page & hero description of the blog archive page"
|
||||
},
|
||||
"theme.blog.paginator.navAriaLabel": {
|
||||
"message": "ブログ記事一覧のナビゲーション",
|
||||
"description": "The ARIA label for the blog pagination"
|
||||
},
|
||||
"theme.blog.paginator.newerEntries": {
|
||||
"message": "新しい記事",
|
||||
"description": "The label used to navigate to the newer blog posts page (previous page)"
|
||||
},
|
||||
"theme.blog.paginator.olderEntries": {
|
||||
"message": "過去の記事",
|
||||
"description": "The label used to navigate to the older blog posts page (next page)"
|
||||
},
|
||||
"theme.blog.post.paginator.navAriaLabel": {
|
||||
"message": "ブログ記事のナビゲーション",
|
||||
"description": "The ARIA label for the blog posts pagination"
|
||||
},
|
||||
"theme.blog.post.paginator.newerPost": {
|
||||
"message": "新しい記事",
|
||||
"description": "The blog post button label to navigate to the newer/previous post"
|
||||
},
|
||||
"theme.blog.post.paginator.olderPost": {
|
||||
"message": "過去の記事",
|
||||
"description": "The blog post button label to navigate to the older/next post"
|
||||
},
|
||||
"theme.tags.tagsPageLink": {
|
||||
"message": "全てのタグを見る",
|
||||
"description": "The label of the link targeting the tag list page"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel": {
|
||||
"message": "ダークモードを切り替える(現在は{mode})",
|
||||
"description": "The ARIA label for the navbar color mode toggle"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.dark": {
|
||||
"message": "ダークモード",
|
||||
"description": "The name for the dark color mode"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.light": {
|
||||
"message": "ライトモード",
|
||||
"description": "The name for the light color mode"
|
||||
},
|
||||
"theme.docs.breadcrumbs.navAriaLabel": {
|
||||
"message": "パンくずリストのナビゲーション",
|
||||
"description": "The ARIA label for the breadcrumbs"
|
||||
},
|
||||
"theme.docs.DocCard.categoryDescription.plurals": {
|
||||
"message": "{count}項目",
|
||||
"description": "The default description for a category card in the generated index about how many items this category includes"
|
||||
},
|
||||
"theme.docs.paginator.navAriaLabel": {
|
||||
"message": "ドキュメントページ",
|
||||
"description": "The ARIA label for the docs pagination"
|
||||
},
|
||||
"theme.docs.paginator.previous": {
|
||||
"message": "前へ",
|
||||
"description": "The label used to navigate to the previous doc"
|
||||
},
|
||||
"theme.docs.paginator.next": {
|
||||
"message": "次へ",
|
||||
"description": "The label used to navigate to the next doc"
|
||||
},
|
||||
"theme.docs.tagDocListPageTitle.nDocsTagged": {
|
||||
"message": "{count}記事",
|
||||
"description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||
},
|
||||
"theme.docs.tagDocListPageTitle": {
|
||||
"message": "「{tagName}」タグのついた{nDocsTagged}",
|
||||
"description": "The title of the page for a docs tag"
|
||||
},
|
||||
"theme.docs.versionBadge.label": {
|
||||
"message": "バージョン: {versionLabel}"
|
||||
},
|
||||
"theme.docs.versions.unreleasedVersionLabel": {
|
||||
"message": "これはリリース前のバージョン{versionLabel}の{siteTitle}のドキュメントです。",
|
||||
"description": "The label used to tell the user that he's browsing an unreleased doc version"
|
||||
},
|
||||
"theme.docs.versions.unmaintainedVersionLabel": {
|
||||
"message": "これはバージョン{versionLabel}の{siteTitle}のドキュメントで現在はメンテナンスされていません",
|
||||
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionSuggestionLabel": {
|
||||
"message": "最新のドキュメントは{latestVersionLink} ({versionLabel}) を見てください",
|
||||
"description": "The label used to tell the user to check the latest version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionLinkLabel": {
|
||||
"message": "最新バージョン",
|
||||
"description": "The label used for the latest version suggestion link label"
|
||||
},
|
||||
"theme.common.editThisPage": {
|
||||
"message": "このページを編集",
|
||||
"description": "The link label to edit the current page"
|
||||
},
|
||||
"theme.common.headingLinkTitle": {
|
||||
"message": "{heading} への直接リンク",
|
||||
"description": "Title for link to heading"
|
||||
},
|
||||
"theme.lastUpdated.atDate": {
|
||||
"message": "{date}に",
|
||||
"description": "The words used to describe on which date a page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.byUser": {
|
||||
"message": "{user}が",
|
||||
"description": "The words used to describe by who the page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.lastUpdatedAtBy": {
|
||||
"message": "{atDate}{byUser}最終更新",
|
||||
"description": "The sentence used to display when a page has been last updated, and by who"
|
||||
},
|
||||
"theme.navbar.mobileVersionsDropdown.label": {
|
||||
"message": "他のバージョン",
|
||||
"description": "The label for the navbar versions dropdown on mobile view"
|
||||
},
|
||||
"theme.NotFound.title": {
|
||||
"message": "ページが見つかりません",
|
||||
"description": "The title of the 404 page"
|
||||
},
|
||||
"theme.tags.tagsListLabel": {
|
||||
"message": "タグ:",
|
||||
"description": "The label alongside a tag list"
|
||||
},
|
||||
"theme.admonition.caution": {
|
||||
"message": "注意",
|
||||
"description": "The default label used for the Caution admonition (:::caution)"
|
||||
},
|
||||
"theme.admonition.danger": {
|
||||
"message": "危険",
|
||||
"description": "The default label used for the Danger admonition (:::danger)"
|
||||
},
|
||||
"theme.admonition.info": {
|
||||
"message": "備考",
|
||||
"description": "The default label used for the Info admonition (:::info)"
|
||||
},
|
||||
"theme.admonition.note": {
|
||||
"message": "注記",
|
||||
"description": "The default label used for the Note admonition (:::note)"
|
||||
},
|
||||
"theme.admonition.tip": {
|
||||
"message": "ヒント",
|
||||
"description": "The default label used for the Tip admonition (:::tip)"
|
||||
},
|
||||
"theme.admonition.warning": {
|
||||
"message": "警告",
|
||||
"description": "The default label used for the Warning admonition (:::warning)"
|
||||
},
|
||||
"theme.AnnouncementBar.closeButtonAriaLabel": {
|
||||
"message": "閉じる",
|
||||
"description": "The ARIA label for close button of announcement bar"
|
||||
},
|
||||
"theme.blog.sidebar.navAriaLabel": {
|
||||
"message": "最近のブログ記事のナビゲーション",
|
||||
"description": "The ARIA label for recent posts in the blog sidebar"
|
||||
},
|
||||
"theme.CodeBlock.copied": {
|
||||
"message": "コピーしました",
|
||||
"description": "The copied button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.copyButtonAriaLabel": {
|
||||
"message": "クリップボードにコードをコピー",
|
||||
"description": "The ARIA label for copy code blocks button"
|
||||
},
|
||||
"theme.CodeBlock.copy": {
|
||||
"message": "コピー",
|
||||
"description": "The copy button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.wordWrapToggle": {
|
||||
"message": "折り返し",
|
||||
"description": "The title attribute for toggle word wrapping button of code block lines"
|
||||
},
|
||||
"theme.DocSidebarItem.expandCategoryAriaLabel": {
|
||||
"message": "'{label}'の目次を開く",
|
||||
"description": "The ARIA label to expand the sidebar category"
|
||||
},
|
||||
"theme.DocSidebarItem.collapseCategoryAriaLabel": {
|
||||
"message": "'{label}'の目次を隠す",
|
||||
"description": "The ARIA label to collapse the sidebar category"
|
||||
},
|
||||
"theme.NavBar.navAriaLabel": {
|
||||
"message": "ナビゲーション",
|
||||
"description": "The ARIA label for the main navigation"
|
||||
},
|
||||
"theme.navbar.mobileLanguageDropdown.label": {
|
||||
"message": "他の言語",
|
||||
"description": "The label for the mobile language switcher dropdown"
|
||||
},
|
||||
"theme.NotFound.p1": {
|
||||
"message": "お探しのページが見つかりませんでした",
|
||||
"description": "The first paragraph of the 404 page"
|
||||
},
|
||||
"theme.NotFound.p2": {
|
||||
"message": "このページにリンクしているサイトの所有者にリンクが壊れていることを伝えてください",
|
||||
"description": "The 2nd paragraph of the 404 page"
|
||||
},
|
||||
"theme.TOCCollapsible.toggleButtonLabel": {
|
||||
"message": "このページの見出し",
|
||||
"description": "The label used by the button on the collapsible TOC component"
|
||||
},
|
||||
"theme.blog.post.readMore": {
|
||||
"message": "もっと見る",
|
||||
"description": "The label used in blog post item excerpts to link to full blog posts"
|
||||
},
|
||||
"theme.blog.post.readMoreLabel": {
|
||||
"message": "{title}についてもっと見る",
|
||||
"description": "The ARIA label for the link to full blog posts from excerpts"
|
||||
},
|
||||
"theme.blog.post.readingTime.plurals": {
|
||||
"message": "約{readingTime}分",
|
||||
"description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||
},
|
||||
"theme.docs.breadcrumbs.home": {
|
||||
"message": "ホームページ",
|
||||
"description": "The ARIA label for the home page in the breadcrumbs"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonTitle": {
|
||||
"message": "サイドバーを隠す",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonAriaLabel": {
|
||||
"message": "サイドバーを隠す",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.navAriaLabel": {
|
||||
"message": "ドキュメントのサイドバー",
|
||||
"description": "The ARIA label for the sidebar navigation"
|
||||
},
|
||||
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
|
||||
"message": "ナビゲーションバーを閉じる",
|
||||
"description": "The ARIA label for close button of mobile sidebar"
|
||||
},
|
||||
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
|
||||
"message": "← メインメニューに戻る",
|
||||
"description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
|
||||
},
|
||||
"theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
|
||||
"message": "ナビゲーションバーを開く",
|
||||
"description": "The ARIA label for hamburger menu button of mobile navigation"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonTitle": {
|
||||
"message": "サイドバーを開く",
|
||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonAriaLabel": {
|
||||
"message": "サイドバーを開く",
|
||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||
},
|
||||
"theme.SearchBar.seeAll": {
|
||||
"message": "検索結果{count}件をすべて見る"
|
||||
},
|
||||
"theme.SearchPage.documentsFound.plurals": {
|
||||
"message": "{count}件のドキュメントが見つかりました",
|
||||
"description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||
},
|
||||
"theme.SearchPage.existingResultsTitle": {
|
||||
"message": "『{query}』の検索結果",
|
||||
"description": "The search page title for non-empty query"
|
||||
},
|
||||
"theme.SearchPage.emptyResultsTitle": {
|
||||
"message": "ドキュメントを検索",
|
||||
"description": "The search page title for empty query"
|
||||
},
|
||||
"theme.SearchPage.inputPlaceholder": {
|
||||
"message": "検索するキーワードを入力してください",
|
||||
"description": "The placeholder for search page input"
|
||||
},
|
||||
"theme.SearchPage.inputLabel": {
|
||||
"message": "検索",
|
||||
"description": "The ARIA label for search page input"
|
||||
},
|
||||
"theme.SearchPage.algoliaLabel": {
|
||||
"message": "Algoliaで検索",
|
||||
"description": "The ARIA label for Algolia mention"
|
||||
},
|
||||
"theme.SearchPage.noResultsText": {
|
||||
"message": "検索結果が見つかりませんでした",
|
||||
"description": "The paragraph for empty search result"
|
||||
},
|
||||
"theme.SearchPage.fetchingNewResults": {
|
||||
"message": "新しい検索結果を取得しています...",
|
||||
"description": "The paragraph for fetching new search results"
|
||||
},
|
||||
"theme.SearchBar.label": {
|
||||
"message": "検索",
|
||||
"description": "The ARIA label and placeholder for search button"
|
||||
},
|
||||
"theme.SearchModal.searchBox.resetButtonTitle": {
|
||||
"message": "クリア",
|
||||
"description": "The label and ARIA label for search box reset button"
|
||||
},
|
||||
"theme.SearchModal.searchBox.cancelButtonText": {
|
||||
"message": "キャンセル",
|
||||
"description": "The label and ARIA label for search box cancel button"
|
||||
},
|
||||
"theme.SearchModal.startScreen.recentSearchesTitle": {
|
||||
"message": "最近の検索",
|
||||
"description": "The title for recent searches"
|
||||
},
|
||||
"theme.SearchModal.startScreen.noRecentSearchesText": {
|
||||
"message": "最近の検索履歴はありません",
|
||||
"description": "The text when no recent searches"
|
||||
},
|
||||
"theme.SearchModal.startScreen.saveRecentSearchButtonTitle": {
|
||||
"message": "この検索をお気に入りに追加",
|
||||
"description": "The label for save recent search button"
|
||||
},
|
||||
"theme.SearchModal.startScreen.removeRecentSearchButtonTitle": {
|
||||
"message": "この検索を履歴から削除",
|
||||
"description": "The label for remove recent search button"
|
||||
},
|
||||
"theme.SearchModal.startScreen.favoriteSearchesTitle": {
|
||||
"message": "お気に入り",
|
||||
"description": "The title for favorite searches"
|
||||
},
|
||||
"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": {
|
||||
"message": "この検索をお気に入りから削除",
|
||||
"description": "The label for remove favorite search button"
|
||||
},
|
||||
"theme.SearchModal.errorScreen.titleText": {
|
||||
"message": "検索結果の取得に失敗しました",
|
||||
"description": "The title for error screen of search modal"
|
||||
},
|
||||
"theme.SearchModal.errorScreen.helpText": {
|
||||
"message": "ネットワーク接続を確認してください",
|
||||
"description": "The help text for error screen of search modal"
|
||||
},
|
||||
"theme.SearchModal.footer.selectText": {
|
||||
"message": "選ぶ",
|
||||
"description": "The explanatory text of the action for the enter key"
|
||||
},
|
||||
"theme.SearchModal.footer.selectKeyAriaLabel": {
|
||||
"message": "エンターキー",
|
||||
"description": "The ARIA label for the Enter key button that makes the selection"
|
||||
},
|
||||
"theme.SearchModal.footer.navigateText": {
|
||||
"message": "移動",
|
||||
"description": "The explanatory text of the action for the Arrow up and Arrow down key"
|
||||
},
|
||||
"theme.SearchModal.footer.navigateUpKeyAriaLabel": {
|
||||
"message": "上矢印キー",
|
||||
"description": "The ARIA label for the Arrow up key button that makes the navigation"
|
||||
},
|
||||
"theme.SearchModal.footer.navigateDownKeyAriaLabel": {
|
||||
"message": "下矢印キー",
|
||||
"description": "The ARIA label for the Arrow down key button that makes the navigation"
|
||||
},
|
||||
"theme.SearchModal.footer.closeText": {
|
||||
"message": "閉じる",
|
||||
"description": "The explanatory text of the action for Escape key"
|
||||
},
|
||||
"theme.SearchModal.footer.closeKeyAriaLabel": {
|
||||
"message": "エスケープキー",
|
||||
"description": "The ARIA label for the Escape key button that close the modal"
|
||||
},
|
||||
"theme.SearchModal.footer.searchByText": {
|
||||
"message": "検索",
|
||||
"description": "The text explain that the search is making by Algolia"
|
||||
},
|
||||
"theme.SearchModal.noResultsScreen.noResultsText": {
|
||||
"message": "見つかりませんでした",
|
||||
"description": "The text explains that there are no results for the following search"
|
||||
},
|
||||
"theme.SearchModal.noResultsScreen.suggestedQueryText": {
|
||||
"message": "次の検索を試す:",
|
||||
"description": "The text for the suggested query when no results are found for the following search"
|
||||
},
|
||||
"theme.SearchModal.noResultsScreen.reportMissingResultsText": {
|
||||
"message": "よりよい検索結果がありますか?",
|
||||
"description": "The text for the question where the user thinks there are missing results"
|
||||
},
|
||||
"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": {
|
||||
"message": "報告する",
|
||||
"description": "The text for the link to report missing results"
|
||||
},
|
||||
"theme.SearchModal.placeholder": {
|
||||
"message": "ドキュメントを検索",
|
||||
"description": "The placeholder of the input of the DocSearch pop-up modal"
|
||||
},
|
||||
"theme.blog.post.plurals": {
|
||||
"message": "{count}件",
|
||||
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||
},
|
||||
"theme.blog.tagTitle": {
|
||||
"message": "「{tagName}」タグの記事が{nPosts}件あります",
|
||||
"description": "The title of the page for a blog tag"
|
||||
},
|
||||
"theme.blog.author.pageTitle": {
|
||||
"message": "{authorName} - {nPosts}",
|
||||
"description": "The title of the page for a blog author"
|
||||
},
|
||||
"theme.blog.authorsList.pageTitle": {
|
||||
"message": "Authors",
|
||||
"description": "The title of the authors page"
|
||||
},
|
||||
"theme.blog.authorsList.viewAll": {
|
||||
"message": "View All Authors",
|
||||
"description": "The label of the link targeting the blog authors page"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.title": {
|
||||
"message": "非公開のページ",
|
||||
"description": "The unlisted content banner title"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.message": {
|
||||
"message": "このページは非公開です。 検索対象外となり、このページのリンクに直接アクセスできるユーザーのみに公開されます。",
|
||||
"description": "The unlisted content banner message"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.title": {
|
||||
"message": "Draft page",
|
||||
"description": "The draft content banner title"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.message": {
|
||||
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
|
||||
"description": "The draft content banner message"
|
||||
},
|
||||
"theme.ErrorPageContent.tryAgain": {
|
||||
"message": "もう一度試してください",
|
||||
"description": "The label of the button to try again rendering when the React error boundary captures an error"
|
||||
},
|
||||
"theme.common.skipToMainContent": {
|
||||
"message": "メインコンテンツまでスキップ",
|
||||
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
|
||||
},
|
||||
"theme.tags.tagsPageTitle": {
|
||||
"message": "タグ",
|
||||
"description": "The title of the tag list page"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"version.label": {
|
||||
"message": "Next",
|
||||
"description": "The label for version current"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
||||
"message": "はじめに",
|
||||
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
||||
"message": "トークノミクス",
|
||||
"description": "The label for category TOKENOMICS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.GENERAL INFO": {
|
||||
"message": "一般情報",
|
||||
"description": "The label for category GENERAL INFO in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🏡 Contract Addresses": {
|
||||
"message": "🏡 コントラクトアドレス",
|
||||
"description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🌉 Bridge": {
|
||||
"message": "🌉 ブリッジ",
|
||||
"description": "The label for category 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOOLS": {
|
||||
"message": "ツール",
|
||||
"description": "The label for category TOOLS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TUTORIALS": {
|
||||
"message": "チュートリアル",
|
||||
"description": "The label for category TUTORIALS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": {
|
||||
"message": "🚀 スマートコントラクトのデプロイ",
|
||||
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"message": "その他のドキュメント",
|
||||
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🏠 Home": {
|
||||
"message": "🏠 ホーム",
|
||||
"description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
||||
"message": "⚡ クイックスタート",
|
||||
"description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
||||
"message": "💎 SNT Token",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Karma Token": {
|
||||
"message": "💠 Karma Token",
|
||||
"description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 ネットワーク詳細",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ Status ネットワークの追加",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 トークン",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 テストネットコントラクト",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 テストネットブリッジ",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 ブリッジ",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 テストネットフォーセット",
|
||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 ブロックエクスプローラー",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 Hardhatの使用",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ Foundryの使用",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ Remixの使用",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 公式リンク",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌴 Home": {
|
||||
"message": "🌴 Home",
|
||||
"description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🤝 Economic Model": {
|
||||
"message": "🤝 経済モデル",
|
||||
"description": "The label for the doc item 🤝 Economic Model in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Public Funding": {
|
||||
"message": "💰 公募資金",
|
||||
"description": "The label for the doc item 💰 Public Funding in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🐉 Karmic Tokenomics": {
|
||||
"message": "🐉 カルミックトークノミクス",
|
||||
"description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💎 SNT Staking": {
|
||||
"message": "💎 SNTステーキング",
|
||||
"description": "The label for the doc item 💎 SNT Staking in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🪙 Tokens": {
|
||||
"message": "🪙 トークン",
|
||||
"description": "The label for the doc item 🪙 Tokens in sidebar tutorialSidebar"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
# Status Networkの追加
|
||||
|
||||
このガイドでは、ウォレットに**Status Network**を追加する方法を説明します。
|
||||
|
||||
## テストネット
|
||||
|
||||
MetaMaskにカスタムネットワークとして**Status Networkテストネット**を追加するには:
|
||||
|
||||
1. **MetaMaskを開く**:
|
||||
|
||||
- ブラウザでMetaMask拡張機能のアイコンをクリックして開きます。
|
||||
|
||||
2. **ネットワーク設定にアクセス**:
|
||||
|
||||
- MetaMaskウィンドウ上部のネットワーク選択ドロップダウンをクリックします。
|
||||
|
||||
3. **新しいネットワークを追加**:
|
||||
|
||||
- **「ネットワークを追加」**をクリックします。
|
||||
- 新しいウィンドウで**「ネットワークを手動で追加」**をクリックします。
|
||||
|
||||
4. **ネットワークの詳細を入力**:
|
||||
|
||||
- 以下の情報を入力します:
|
||||
|
||||
| 名前 | 値 |
|
||||
|------------------|------------------------------------------|
|
||||
| **ネットワーク名** | Status Network Testnet |
|
||||
| **RPC URL** | https://public.sepolia.rpc.status.network |
|
||||
| **チェーンID** | 1660990954 |
|
||||
| **通貨シンボル** | `ETH` |
|
||||
| **ブロックエクスプローラーURL** | https://sepoliascan.status.network |
|
||||
|
||||
5. **ネットワークを保存**:
|
||||
|
||||
- **「保存」**をクリックしてStatus NetworkテストネットをMetaMaskウォレットに追加します。
|
||||
|
||||
これで、ネットワークドロップダウンメニューからStatus Networkテストネットを選択して接続できるようになりました。
|
||||
|
||||
---
|
||||
|
||||
## モバイルウォレット
|
||||
|
||||
### MetaMaskモバイルにStatus Networkを追加する
|
||||
|
||||
1. **MetaMaskモバイルアプリを開く**:
|
||||
|
||||
- モバイルデバイスでMetaMaskアプリを起動します。
|
||||
|
||||
2. **設定にアクセス**:
|
||||
|
||||
- 左上のハンバーガーメニュー(三本の横線)をタップします。
|
||||
- **「設定」**を選択します。
|
||||
|
||||
3. **新しいネットワークを追加**:
|
||||
|
||||
- **「ネットワーク」**をタップします。
|
||||
- **「ネットワークを追加」**をタップします。
|
||||
|
||||
4. **ネットワークの詳細を入力**:
|
||||
|
||||
- 上記のテストネットと同じネットワーク詳細を入力します。
|
||||
|
||||
5. **ネットワークを保存**:
|
||||
|
||||
- **「追加」**をタップして新しいネットワークを保存します。
|
||||
|
||||
---
|
||||
|
||||
## 追加情報
|
||||
|
||||
- **公式リンク**:
|
||||
|
||||
- [Status Networkウェブサイト](https://status.network/)
|
||||
- [Status Networkドキュメント](https://docs.status.network/)
|
||||
- [Status Networkテストネットエクスプローラー](https://sepoliascan.status.network)
|
||||
|
||||
- **サポートが必要な場合**:
|
||||
|
||||
- 問題が発生した場合は、サポート用の[Telegram](https://t.me/statusl2)にご参加ください。
|
||||
|
||||
---
|
||||
|
||||
このガイドに従うことで、MetaMaskウォレットにStatus Networkを正常に追加できました!
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
# Status Network テストネットへのブリッジング
|
||||
|
||||
Status Network ブリッジを使用すると、SepoliaとStatus Networkテストネット間でトークンを転送することができます。ブリッジは[bridge.status.network](https://bridge.status.network)にデプロイされています。
|
||||
|
||||
## 前提条件
|
||||
|
||||
- MetaMaskまたは他のWeb3ウォレットがインストールされていること
|
||||
- Sepoliaネットワーク上にテストネットETHを保有していること
|
||||
- Sepoliaネットワーク上でブリッジしたいトークンを保有していること
|
||||
|
||||
## ブリッジの手順
|
||||
|
||||
1. [bridge.status.network](https://bridge.status.network)にアクセス
|
||||
|
||||
2. 右上の「ウォレットを接続」ボタンをクリックしてウォレットを接続
|
||||
|
||||
3. ドロップダウンメニューからブリッジしたいトークンを選択
|
||||
|
||||
4. ブリッジしたい金額を入力
|
||||
|
||||
5. 「ブリッジ」をクリックし、ウォレットで取引を承認
|
||||
|
||||
6. ブリッジングプロセスが完了するまで待機
|
||||
- ブリッジングには通常5-10分程度かかります
|
||||
- ブリッジインターフェース上で取引状況を確認できます
|
||||
|
||||
## 重要な注意事項
|
||||
|
||||
- 取引を開始する前に、正しいウェブサイト(bridge.status.network)にアクセスしていることを必ず確認してください
|
||||
- 大きな金額を転送する前に、少額でテストすることをお勧めします
|
||||
- ガス代を支払うのに十分なETHをウォレットに保有していることを確認してください
|
||||
- 問題が発生した場合は、サポート用の[Telegram](https://t.me/statusl2)にご参加ください
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
# テストネットのコントラクト
|
||||
|
||||
このページでは、Status Networkテストネットインフラストラクチャの重要なコントラクトアドレスを全て掲載しています。
|
||||
|
||||
## レイヤー1コントラクト(Sepolia)
|
||||
|
||||
これらのコントラクトはSepoliaテストネットにデプロイされています。[Sepolia Etherscan](https://sepolia.etherscan.io)で確認できます。
|
||||
|
||||
### ブリッジコントラクト
|
||||
- **L1トークンブリッジプロキシ**
|
||||
- アドレス: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||
- 目的: L1上のトークンブリッジング操作を管理
|
||||
|
||||
### コアインフラストラクチャ
|
||||
- **L1ポストマン**
|
||||
- アドレス: [`0xB15725119b917d348FfEB365B43bCDeEbfb65C5d`](https://sepolia.etherscan.io/address/0xB15725119b917d348FfEB365B43bCDeEbfb65C5d)
|
||||
- 目的: L1とL2間のメッセージ受け渡しを処理
|
||||
|
||||
- **L1データ送信**
|
||||
- アドレス: [`0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d`](https://sepolia.etherscan.io/address/0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d)
|
||||
- 目的: L2からL1へのデータ送信を管理
|
||||
|
||||
- **L1ファイナライゼーション**
|
||||
- アドレス: [`0xb91CB39b3b9F015b0aC88616A463B35568052AEF`](https://sepolia.etherscan.io/address/0xb91CB39b3b9F015b0aC88616A463B35568052AEF)
|
||||
- 目的: L1上のL2ブロックのファイナライゼーションを処理
|
||||
|
||||
## レイヤー2コントラクト(Status Networkテストネット)
|
||||
|
||||
これらのコントラクトはStatus Networkテストネットにデプロイされています。[Status Network Explorer](https://sepoliascan.status.network)で確認できます。
|
||||
|
||||
### ブリッジコントラクト
|
||||
- **L2トークンブリッジプロキシ**
|
||||
- アドレス: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||
- 目的: L2上のトークンブリッジング操作を管理
|
||||
|
||||
### インフラストラクチャコントラクト
|
||||
- **L2フォーセット**
|
||||
- アドレス: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||
- 目的: ユーザーにテストネットトークンを配布
|
||||
|
||||
- **L2アンカリング**
|
||||
- アドレス: [`0x24B5eD2763129D6cBDEfE32e08558D2095132560`](https://sepoliascan.status.network/address/0x24B5eD2763129D6cBDEfE32e08558D2095132560)
|
||||
- 目的: L1とL2間の状態アンカリングを管理
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
# トークン
|
||||
|
||||
Status Network上でサポートされているトークンとそのコントラクトアドレスの最新リストについては、公式の[Status Networkトークンリストリポジトリ](https://github.com/status-im/status-network-token-list)をご参照ください。
|
||||
|
||||
このリポジトリには以下が含まれています:
|
||||
- L1(Sepolia)とL2(Status Network)両方のトークンアドレス
|
||||
- トークンのメタデータ(小数点以下の桁数、シンボルなど)
|
||||
- ブリッジコントラクトのマッピング
|
||||
- Status Networkにデプロイされているアプリケーショントークン
|
||||
|
||||
トークンリストは、トークンブリッジング操作の正確性とセキュリティを確保するため、定期的に維持・更新されています。
|
||||
@@ -0,0 +1,20 @@
|
||||
# ネットワークの詳細
|
||||
|
||||
## Status テストネット
|
||||
|
||||
| 名前 | 値 |
|
||||
|---------------------|------------------------------------------|
|
||||
| **ネットワーク名** | Status Network Testnet |
|
||||
| **RPC エンドポイント** | https://public.sepolia.rpc.status.network |
|
||||
| **チェーンID** | 1660990954 |
|
||||
| **通貨シンボル** | ETH |
|
||||
| **ブロックエクスプローラー** | https://sepoliascan.status.network |
|
||||
| **ブリッジ** | https://bridge.status.network |
|
||||
|
||||
これらはStatus Networkテストネットの公式ネットワーク詳細です。これらの詳細は以下の用途に使用できます:
|
||||
- ウォレットへのネットワークの追加
|
||||
- 開発環境の設定
|
||||
- ネットワークへのdAppsの接続
|
||||
- スマートコントラクトの検証
|
||||
|
||||
ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](./add-status-network.md)をご参照ください。
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: index
|
||||
title: Status Networkへようこそ
|
||||
description: Status Networkは、シームレスで手数料無料の分散型アプリケーションを実現するガスレスなレイヤー2ブロックチェーンネットワークです。簡単なウォレット設定、フォーセット、デプロイメントツールで開発を始めましょう。
|
||||
keywords: [Status Network, レイヤー2, ガスレスブロックチェーン, イーサリアムスケーリング, L2, バリディウム, web3開発, dapp開発, ブロックチェーン開発]
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Status Network: ガスレスなレイヤー2ネットワーク
|
||||
|
||||
Status Networkは、ソーシャルアプリとゲームに最適化された初のネイティブガスレスイーサリアムL2で、ネイティブ収益とDEX手数料を通じて開発者向けの持続可能な公的資金を提供します。Linea zkEVMスタック上に構築され、革新的な資金調達モデルを通じて経済的持続可能性を確保しながら、ガスフリーの高性能トランザクションを提供します。
|
||||
|
||||
## 主な特徴
|
||||
|
||||
- **ガスレストランザクション**
|
||||
|
||||
開発者はシームレスな体験を作成でき、ユーザーはガス料金を気にすることなく取引できます。
|
||||
|
||||
- **ネイティブ収益と手数料**
|
||||
|
||||
L2の運営と開発者をサポートするため、Status NetworkはDEXから始まるネイティブアプリからの収益と手数料の組み合わせによって資金を調達します。
|
||||
|
||||
- **持続可能な公的資金**
|
||||
|
||||
トークン保有者によって管理されるアプリ資金プールは、ネイティブ収益と手数料からオンチェーンビルダーに継続的に資本を配分します。
|
||||
|
||||
- **高性能な実行**
|
||||
|
||||
Status NetworkはLineaのzkEVMロールアップスタック上に構築され、高速で安全なトランザクションを保証します。
|
||||
|
||||
- **RLNによるスパム保護**
|
||||
|
||||
Rate-Limiting Nullifiers (RLN)は、ユーザーとアプリケーションごとの無料トランザクションの公平な割り当てを維持しながら、スパムとDDoS攻撃を防止します。
|
||||
|
||||
- **IFTとの深い統合**
|
||||
|
||||
Status NetworkはStatus Wallet、Keycard、Waku、Codexなど、[IFT](https://free.technology)の一部と自然に統合されています。
|
||||
|
||||
## 今すぐ開発を始めましょう
|
||||
|
||||
説明部分をスキップして直接開発を始めたいですか?以下が始め方です:
|
||||
|
||||
1. [Status NetworkをウォレットへAdd](/general-info/add-status-network)
|
||||
2. [テストネットETHを入手](/tools/testnet-faucets)
|
||||
3. [アセットをブリッジ](/general-info/bridge/bridging-testnet)
|
||||
4. [最初のコントラクトをデプロイ](/tutorials/deploying-contracts/using-remix)
|
||||
|
||||
## サポート&リソース
|
||||
|
||||
コミュニティに参加し、必要なリソースにアクセスしましょう:
|
||||
- [Telegramビルダーズコミュニティ](https://t.me/statusl2)に参加
|
||||
- [ネットワーク詳細](/general-info/network-details)を確認
|
||||
- [コントラクトアドレス](/general-info/contract-addresses/testnet-contracts)を閲覧
|
||||
|
||||
素晴らしいものを作る準備はできていますか?今すぐフリーネットワークでの旅を始めましょう!
|
||||
@@ -0,0 +1,118 @@
|
||||
# クイックスタート
|
||||
|
||||
このセクションでは、10分以内に**Status Networkテストネット**にサンプルコントラクトをデプロイする方法を説明します。
|
||||
|
||||
簡単のため、Remix IDEを使用してStatus Networkにスマートコントラクトをデプロイする方法を見ていきましょう。
|
||||
|
||||
## 準備
|
||||
|
||||
始める前に:
|
||||
|
||||
1. **Status NetworkテストネットをMetaMaskに追加**:
|
||||
|
||||
MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/general-info/add-status-network)の手順に従ってください。
|
||||
|
||||
2. **テストETHを入手**:
|
||||
|
||||
SepoliaのETHとStatus NetworkのETHの両方が必要です:
|
||||
- まず[Sepoliaフォーセット](https://faucet.status.network)からSepolia ETHを入手
|
||||
- 次に[Statusブリッジ](https://bridge.status.network)を使用してETHをStatus Networkにブリッジ
|
||||
- または、[テストネットフォーセット](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)から直接Status Network ETHを入手
|
||||
|
||||
これで準備完了です!
|
||||
|
||||
## Remixとサンプルコード
|
||||
|
||||
**Remix**は、セットアップ不要のスマートコントラクト開発ツールです。簡単に始められ、シンプルなデプロイプロセス、デバッグ、スマートコントラクトとの対話などが可能です。
|
||||
|
||||
このチュートリアルでは、シンプルな`SimpleStorage.sol`コントラクトをデプロイします:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract SimpleStorage {
|
||||
uint256 number;
|
||||
|
||||
function store(uint256 num) public {
|
||||
number = num;
|
||||
}
|
||||
|
||||
function retrieve() public view returns (uint256) {
|
||||
return number;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **注意:** このコントラクトは数値を保存し、その数値を読み取ることができます。
|
||||
|
||||
## デプロイの手順
|
||||
|
||||
1. **サンプルコードをコピー**:
|
||||
|
||||
- サンプルコードをコピーし、Remixで`SimpleStorage.sol`という新しいファイルに貼り付けます。
|
||||
|
||||
2. **スマートコントラクトをコンパイル**:
|
||||
|
||||
- 左サイドバーの**Solidityコンパイラー**タブに移動。
|
||||
- コンパイラーバージョンが0.8.0以上であることを確認。
|
||||
- **「SimpleStorage.solをコンパイル」**をクリック。
|
||||
- コントラクトコードを変更するたびに自動コンパイルするには**「自動コンパイル」**を有効にできます。
|
||||
|
||||
3. **スマートコントラクトをデプロイ**:
|
||||
|
||||
- **デプロイ&実行トランザクション**タブに切り替え。
|
||||
- **「環境」**ドロップダウンメニューで**「Injected Provider - MetaMask」**を選択。
|
||||
- MetaMaskがRemixへの接続を求めることがあります。接続を確認してください。
|
||||
- MetaMaskで**Status Networkテストネット**が選択されていることを確認。
|
||||
- **「コントラクト」**で`SimpleStorage`が選択されていることを確認。
|
||||
- **「デプロイ」**をクリック。
|
||||
- MetaMaskがポップアップし、トランザクションの確認を求めます。ガス代はETHで支払われます。
|
||||
- トランザクションの詳細を確認し、**「確認」**をクリック。
|
||||
- トランザクションがマイニングされるのを待ちます。
|
||||
|
||||
4. **デプロイを確認**:
|
||||
|
||||
- デプロイ後、Remixからコントラクトのアドレスをコピー
|
||||
- [Status Networkエクスプローラー](https://sepoliascan.status.network)で確認
|
||||
|
||||
**おめでとうございます!** Status Networkに最初のスマートコントラクトをデプロイしました。
|
||||
|
||||
## デプロイしたスマートコントラクトと対話する
|
||||
|
||||
1. **デプロイしたコントラクトにアクセス**:
|
||||
|
||||
- Remixの**「デプロイされたコントラクト」**セクションで、デプロイした`SimpleStorage`コントラクトが表示されます。
|
||||
|
||||
2. **数値を保存**:
|
||||
|
||||
- デプロイされたコントラクトを展開して関数を表示。
|
||||
- **「store」**関数の入力フィールドに数値(例:`42`)を入力。
|
||||
- **「transact」**をクリック。
|
||||
- MetaMaskがトランザクションの確認を求めます。ガス代はETHで支払われます。
|
||||
- トランザクションが確認されるのを待ちます。
|
||||
|
||||
3. **数値を取得**:
|
||||
|
||||
- **「retrieve」**関数をクリック。
|
||||
- ボタンの下に保存された数値が表示されます。
|
||||
- これはview関数なので、ガス代は不要です。
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- **サポートを受ける**:
|
||||
- サポートが必要な場合は[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||
- 詳細については[ネットワークの詳細](/general-info/network-details)をチェック
|
||||
- Status Networkへの[トークンのブリッジ](/general-info/bridge/bridging-testnet)について学ぶ
|
||||
|
||||
## まとめ
|
||||
|
||||
以下のことを達成しました:
|
||||
- Status Networkテストネットと対話するための環境設定
|
||||
- ブリッジまたはフォーセットを通じてテストネットETHを入手
|
||||
- Remix IDEとMetaMaskを使用してスマートコントラクトをデプロイ
|
||||
- 数値の保存と取得によってデプロイしたコントラクトと対話
|
||||
|
||||
より高度な開発については、以下を使用したデプロイのガイドをチェックしてください:
|
||||
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||
@@ -0,0 +1,24 @@
|
||||
# 公式リンク
|
||||
|
||||
このページにはStatus Networkエコシステムの全ての公式リンクが掲載されています。
|
||||
|
||||
## 主要リソース
|
||||
- **ウェブサイト**: [status.network](https://status.network)
|
||||
- **ドキュメント**: [docs.status.network](https://docs.status.network)
|
||||
- **GitHub**: [github.com/status-im](https://github.com/status-im)
|
||||
|
||||
## ネットワークツール
|
||||
- **ブリッジ**: [bridge.status.network](https://bridge.status.network)
|
||||
- **ブロックエクスプローラー**: [sepoliascan.status.network](https://sepoliascan.status.network)
|
||||
- **RPCエンドポイント**: `https://public.sepolia.rpc.status.network`
|
||||
- **フォーセット**: [faucet.status.network](https://faucet.status.network)
|
||||
|
||||
## 開発リソース
|
||||
- **トークンリストリポジトリ**: [github.com/status-im/status-network-token-list](https://github.com/status-im/status-network-token-list)
|
||||
- **コントラクト検証**: [sepoliascan.status.network/verify-contract](https://sepoliascan.status.network/contract-verification)
|
||||
|
||||
## コミュニティ&サポート
|
||||
- **Telegramコミュニティ**: [t.me/statusl2](https://t.me/statusl2)
|
||||
- **X/twitter**: [x.com/statusL2](https://x.com/statusL2)
|
||||
|
||||
ウォレットへのネットワークの追加方法については、[ネットワーク追加ガイド](/general-info/add-status-network)をご参照ください。
|
||||
@@ -0,0 +1,18 @@
|
||||
# 経済モデル
|
||||
|
||||
従来のL2がガス料金から収益を生み出すのとは異なり、Status Networkは根本的に異なるパラダイムで運営されています:ユーザーとアプリケーションは取引手数料を支払いません。これにより、ネットワークの維持と持続のために代替的な収入源が必要となります。ガス料金がゼロに向かい、ロールアップが分散化に向かう中、L2のビジネスモデルは実行ベースの収益(シーケンサー手数料)からネットワーク上の資産取引量と利回り生成型の総ロック値(TVL)の収益化へとシフトする必要があります。
|
||||
|
||||
## 収益源
|
||||
|
||||
持続可能性を達成するため、Status Networkは以下の収入源から収益を得ています:
|
||||
|
||||
- **ネイティブ収益手数料**: Status Networkにブリッジされた資産(当初はETHとDAI)は、利回り生成型の等価物(stETHとsDAI)に再活用されます。生成された利回りの一部(30%)がネットワークの運営コストに割り当てられます。
|
||||
|
||||
- **ネイティブDEX取引手数料**: Status Networkには、取引手数料がネットワーク運営に貢献するネイティブDEXが搭載されています。ネイティブDEXの流動性提供者は、通常のLP手数料に加えてネイティブ収益から追加のインセンティブを得ることができます。
|
||||
|
||||
- **プレミアムガス料金**: 無料取引枠を超えるユーザーは、プレミアム料金を支払う必要があり、これはStatus NetworkとRLN(スパム防止メカニズム)の間で分配され、公平な利用を促進し、乱用を防止します。
|
||||
|
||||
- **将来のネイティブアプリ**: ネットワークは後に、レンディングマーケット、NFTマーケットプレイス、トークンローンチパッドなどの追加の収益源を導入し、それぞれが生成された手数料の一部をL2の運営に還元します。
|
||||
|
||||
このモデルにより、Status Networkは無料取引を提供しながら、経済的な持続可能性を確保します。TVLとそれに関連するネイティブ収益、および取引量を活用することで、Status Networkはユーザー、流動性提供者、開発者間のインセンティブを調整し、インフレ的なトークン発行に依存しない自己持続的なエコシステムを作り出します。
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# カルミックトークノミクス
|
||||
|
||||
東洋の伝統では、カルマは過去の行動が未来の状態を形作るという原理を表します。同様に、Status Networkでは、すべての前向きな行動と貢献がカルマを蓄積し、ネットワークの資金調達とインセンティブに対するより大きな影響力を与えます。カルマ($KARMA)は、ステーキング、ブリッジング、流動性提供、構築に報酬を与える譲渡不可能なガバナンストークンです。ユーザーやアプリがL2の流動性や活動に貢献すればするほど、資金配分、流動性インセンティブ、ネットワークのロードマップとパラメータに対する投票力を獲得します。
|
||||
|
||||
## カルマの獲得方法
|
||||
|
||||
カルマは6つの主要なメカニズムを通じて発行され、取得することはできません。これにより、Statusチームを含むいかなる組織も、アクセスにおいて優位性を持つことはありません。全員が同じルールの下でカルマを獲得し、それはネットワークへの貢献のみに基づいており、ネットワーク内での意味のある関与の純粋な表現であることを保証します:
|
||||
|
||||
1. **SNTのステーキング** – SNTをステーキングする人は誰でも、比例的にカルマ報酬を受け取ります。SNTをステーキングまたはロックする期間が長いほど、カルマの獲得率が高くなります。
|
||||
|
||||
2. **利回り生成資産のブリッジング** – ETHとDAI(初期段階で、後に他の資産が追加される予定)をStatus Networkにブリッジすることでカルマを獲得できます。
|
||||
|
||||
3. **流動性の提供** – ネイティブDEXでは、誰でもキュレートされたプールに流動性を提供して、手数料、ネイティブ収益報酬、およびカルマを獲得できます。
|
||||
|
||||
4. **アプリケーションの構築と使用** – ユーザーと開発者は、取引量とアプリの牽引力を通じてカルマを獲得します。アプリの成功度が高いほど、その開発者とユーザーに割り当てられるカルマが多くなります。
|
||||
|
||||
5. **プレミアムガス料金の支払い** – ガスレススループット制限を超えるユーザーとアプリは、ペナルティとしてプレミアムガス料金を支払う必要がありますが、その見返りとしてカルマも獲得します。カルマを増やすことで、実際にはより高いガスフリー取引制限を解除できる可能性があります。
|
||||
|
||||
6. **直接寄付** – 公的資金プールに直接貢献する人は誰でもカルマを受け取ります。
|
||||
|
||||
カルマ発行配分の初期化パラメータは近日中に発表される予定です。将来的に、カルマ保有者は必要に応じてこれらのパラメータを投票によって修正することができます。最終的な目標は、ネットワークのより持続可能な成長のために、ステークホルダー間の連携を最大化することです。
|
||||
|
||||
## カルマの用途
|
||||
|
||||
- **ガスレス取引**: アカウントがプラスのカルマ残高を持つと同時に、一定量の無料取引へのアクセスが可能になります。階層システムにより、より高いカルマを持つユーザーとアプリは1日あたりより多くの無料取引を享受できます。動的なレート制限メカニズムがスパムを防止し、ネットワークの公平な使用を確保します。
|
||||
|
||||
- **ガバナンストークン**: カルマ保有者はアプリ資金プールの配分について投票します。より高いカルマスコアは資金配分においてより大きな重みを持ち、お気に入りのアプリケーションやプロトコルを優先することができます。
|
||||
|
||||
- **ネイティブDEX流動性インセンティブ**: カルマ保有者は、ネイティブDEX上のすべてのキュレートされた流動性プールのインセンティブゲージについて投票します。
|
||||
|
||||
- **ネットワークポリシーの決定**: カルマ保有者は、ネイティブ収益と手数料の分配、カルマの発行率と配分などを含むL2の経済的および運営パラメータについて投票します。
|
||||
|
||||
- **ロイヤルティと評価システム**: カルマはソウルバウンドであるため、高いカルマスコアはエコシステム内のパワーユーザーと主要な貢献者を示します。ユーザーは徐々に影響力を蓄積し、追加のインセンティブと特典(例:ネットワーク上に構築されるアプリからの報酬や、質の高いユーザーを引き付けようとするアプリからの報酬)にアクセスできるようになる可能性があります。
|
||||
|
||||
- **投票のための流動的な助成金**: 将来的に、アプリ、プロトコル、流動性提供者は、投票インセンティブとしてカルマ保有者に流動的な助成金を提供することができるようになります。
|
||||
|
||||
## フライホイール効果
|
||||
|
||||
1. ユーザーは利回り生成資産をブリッジし、カルマを獲得し、アプリと流動性提供者への資金を増やします。
|
||||
|
||||
2. より高いアプリ資金がより多くの新しいアプリをネットワークにデプロイするよう引き付けます。
|
||||
|
||||
3. 資金を受けたアプリがより多くのユーザーを獲得し、ネイティブDEXの取引量を増加させます。
|
||||
|
||||
4. より高いネイティブ収益と手数料が、ユーザーが追加の利回り生成資産をブリッジすることでより多くのTVLを引き付けます。
|
||||
|
||||
TVLと採用が成長するにつれて、資金調達の機会も増加し、ネットワークの持続可能性を強化します。
|
||||
@@ -0,0 +1,21 @@
|
||||
# パブリックファンディング
|
||||
|
||||
## アプリ資金プールと公的資金調達メカニズム
|
||||
|
||||
Status Networkの最も重要なコンポーネントの1つは、ネットワーク上に構築されたアプリケーションに持続可能な財政支援を提供するように設計されたアプリ資金プールです。開発者が助成金や短期的なインセンティブに依存する従来のブロックチェーンエコシステムとは異なり、Status Networkはネットワークの活動とTVLによって駆動される自己持続的なメカニズムを通じて継続的な資金提供を確保します。
|
||||
|
||||
### なぜパブリックファンディングが重要か
|
||||
|
||||
パブリックファンディングは、ビルダーが搾取的な外部資金調達メカニズムに依存することなく資本にアクセスできることを確保するために不可欠です。Status組織は、オープンソースプロジェクトと分散型インフラストラクチャへの投資において長い歴史を持ち、パブリックグッズへのコミットメントを強化しています。アプリ資金プールは、開発者がネットワーク自体から直接財政支援を受けることができる分散型のコミュニティ主導の配分メカニズムを提供することで、この精神を拡張します。
|
||||
|
||||
### アプリ資金プールの仕組み
|
||||
|
||||
- **ネイティブ収益と手数料による資金提供**: ブリッジされた資産(当初はETHとDAI)から生成される収益とネイティブDEXスワップ手数料の大部分が、直接資金プールに流れ込みます。
|
||||
|
||||
- **カルマ保有者による管理**: 資金の配分はカルマトークン保有者によって決定され、コミュニティ主導の意思決定プロセスを確保します:コミュニティがあなたのアプリを気に入れば、資金を得ることができます。
|
||||
|
||||
- **透明で公平な配分**: 初期段階では、品質管理を維持するために資金受領者の数は制限されますが、プールが成長するにつれて、より多くのプロジェクトがサポートされるようになります。
|
||||
|
||||
- **ビルダーとネットワークの成長の連携**: ネットワークの利用と採用に積極的に貢献する開発者は、カルマの形でより多くの投票力を受け取り、自分たちに投票することができ、価値のあるアプリケーションを作成するインセンティブを強化します。
|
||||
|
||||
このメカニズムにより、ビルダーは継続的で非搾取的な資本源を確保でき、成功するアプリケーションの作成に集中することができます。
|
||||
@@ -0,0 +1,31 @@
|
||||
# SNTステーキング
|
||||
|
||||
## Status Network Token (SNT)
|
||||
|
||||
2017年6月に立ち上げられたStatus Network Token (SNT)は、メッセンジャー、web3ウォレット、イーサリアムブロックチェーン上の分散型アプリケーションへのゲートウェイを組み合わせた分散型プラットフォームであるStatusエコシステムのネイティブユーティリティトークンとして機能しています。SNTは、分散型でユーザー主導のエコシステムを促進するように設計され、保有者がガバナンスに参加し、機能にアクセスし、ネットワーク内のさまざまな活動に参加することを可能にします。長年にわたり、SNTはStatusアプリ内でのユーザーインタラクションを促進し、提案への投票、Ethereum Name Service(ENS)名の作成、独占機能へのアクセスを可能にしてきました。
|
||||
|
||||
Status NetworkテストネットでのSNTステーキング契約の展開が近づく中、SNT保有者はまもなくトークンをステーキングし、報酬を獲得し、ネットワークのガバナンスとインセンティブ付与に貢献する機会を得ることができます。
|
||||
|
||||
## ステーキング契約
|
||||
|
||||
ステーキング契約は、長期的なコミットメントに報酬を与えるマルチプライヤーポイントを導入します。SNT保有者には2つのステーキングオプションがあります:
|
||||
|
||||
1. **標準ステーキング**
|
||||
|
||||
ユーザーはロックアップ期間なしでSNTをステーキングできます。
|
||||
時間とともに徐々にマルチプライヤーポイントを受け取ります。
|
||||
ユーザーが4年間アンステーキングせずにステーキングを続けると、最大4倍のマルチプライヤーを達成します。
|
||||
|
||||
2. **ロックドステーキング**
|
||||
|
||||
ユーザーは事前に決められた期間(最大4年)SNTをロックできます。
|
||||
ボーナスマルチプライヤーポイントと、事前にロックする年数ごとのボーナスマルチプライヤーを即座に受け取ります。
|
||||
例えば、4年間ロックすると、即座に5倍のマルチプライヤー(基本1倍+ロックによる4倍)が付与されます。
|
||||
4年間の期間中、標準ステーキングと同様に追加のマルチプライヤーポイントを蓄積し続け、最終的に最大9倍の総マルチプライヤーに達します。
|
||||
|
||||
### SNTステーキングの利点
|
||||
|
||||
- **カルマの獲得**: ステーカーはカルマを蓄積し、これによりガバナンス力とガスレス取引へのアクセスが付与されます。
|
||||
- **より高い無料取引枠**: より多くのカルマを持つユーザーは、より大きなガスレス取引制限を享受できます。
|
||||
- **強化されたガバナンスの影響力**: カルマを蓄積することで、SNTステーカーは公的資金の配分、流動性インセンティブ付与、ネットワークポリシーの決定において重要な役割を果たすことができます。
|
||||
- **より高い評価**: SNTをステーキングすることで、保有者はエコシステムとの連携を示し、カルマの形で評価スコアを示すことができます。エコシステム内のアプリは、高い評価を持つユーザーを引き付ける強いインセンティブを持っています。
|
||||
@@ -0,0 +1,35 @@
|
||||
# Status Networkテストネットエクスプローラー
|
||||
|
||||
Status Networkブロックエクスプローラーは[sepoliascan.status.network](https://sepoliascan.status.network)で利用できます。
|
||||
|
||||
### 機能
|
||||
- トランザクションの詳細とステータスの確認
|
||||
- トークンの転送と残高の追跡
|
||||
- スマートコントラクトのソースコード検証
|
||||
- ガス価格とネットワークアクティビティの監視
|
||||
- 検証済みスマートコントラクトの表示と対話
|
||||
- 任意のアドレスのトークン保有状況の追跡
|
||||
|
||||
## Sepoliaエクスプローラー(レイヤー1)
|
||||
|
||||
Sepolia(レイヤー1)上のトランザクションを追跡するには、[Sepolia Etherscan](https://sepolia.etherscan.io)を使用します。
|
||||
|
||||
これは特に以下の用途に便利です:
|
||||
- L1からL2へのブリッジトランザクションの監視
|
||||
- トークンの入出金の追跡
|
||||
- L1コントラクトの対話の確認
|
||||
|
||||
## コントラクト検証
|
||||
|
||||
Status Networkエクスプローラーでスマートコントラクトを検証するには:
|
||||
|
||||
1. [コントラクト検証](https://sepoliascan.status.network/contract-verification)に移動
|
||||
2. コントラクトアドレスを入力
|
||||
3. ソースコードをアップロードしコンパイル詳細を提供
|
||||
4. 検証のために送信
|
||||
|
||||
検証が完了すると、コントラクトのソースコードが公開され、ユーザーはエクスプローラーを通じて直接対話できるようになります。
|
||||
|
||||
## API アクセス
|
||||
|
||||
Status Networkエクスプローラーは開発者向けにAPIエンドポイントを提供しています。APIのドキュメントは近日公開予定です。
|
||||
@@ -0,0 +1,45 @@
|
||||
# Status Networkテストネットブリッジ
|
||||
|
||||
Status Networkテストネットブリッジを使用すると、Sepolia(レイヤー1)とStatus Networkテストネット(レイヤー2)間でトークンを転送できます。ブリッジインターフェースは[bridge.status.network](https://bridge.status.network)で利用できます。
|
||||
|
||||
## 概要
|
||||
|
||||
ブリッジは以下を可能にする重要なインフラストラクチャコンポーネントとして機能します:
|
||||
- SepoliaからStatus Networkテストネットへのトークン転送
|
||||
- Status NetworkテストネットからSepoliaへのトークン引き出し
|
||||
- L1とL2間のメッセージ受け渡し
|
||||
|
||||
## ブリッジコントラクト
|
||||
|
||||
### レイヤー1(Sepolia)
|
||||
- **トークンブリッジ**: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||
|
||||
### レイヤー2(Status Network)
|
||||
- **トークンブリッジ**: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||
|
||||
## 機能
|
||||
|
||||
- **トークンブリッジング**: ネットワーク間でERC-20トークンを転送
|
||||
- **ETHブリッジング**: SepoliaとStatus Network間でETHをブリッジ
|
||||
- **トランザクション追跡**: ブリッジトランザクションのステータスを監視
|
||||
- **ガス見積もり**: ブリッジ前に推定ガスコストを確認
|
||||
|
||||
## サポートされているトークン
|
||||
|
||||
サポートされているトークンとそのコントラクトアドレスの最新リストについては、[トークンリストリポジトリ](https://github.com/status-im/status-network-token-list)をご参照ください。
|
||||
|
||||
## ブリッジの使用
|
||||
|
||||
ブリッジの使用方法の詳細な手順や重要なセキュリティ上の考慮事項については、[ブリッジングガイド](../general-info/bridge/bridging-testnet.md)をご参照ください。
|
||||
|
||||
## ブリッジトランザクションの監視
|
||||
|
||||
以下を使用してブリッジトランザクションを監視できます:
|
||||
- L2トランザクションには[Status Networkエクスプローラー](https://sepoliascan.status.network)
|
||||
- L1トランザクションには[Sepolia Etherscan](https://sepolia.etherscan.io)
|
||||
|
||||
## サポート
|
||||
|
||||
ブリッジ使用中に問題が発生した場合:
|
||||
- 一般的な解決策については[ブリッジングガイド](../general-info/bridge/bridging-testnet.md)をチェック
|
||||
- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||
@@ -0,0 +1,52 @@
|
||||
# RPCエンドポイント
|
||||
|
||||
Status Networkは、ネットワークとの対話を可能にする公開RPC(Remote Procedure Call)エンドポイントを提供しています。
|
||||
|
||||
## 公開RPC URL
|
||||
|
||||
```
|
||||
https://public.sepolia.rpc.status.network
|
||||
```
|
||||
|
||||
## RPCの使用
|
||||
|
||||
### MetaMaskへの追加
|
||||
このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](../general-info/add-status-network.md)をご参照ください。
|
||||
|
||||
### Web3ライブラリの設定
|
||||
|
||||
```javascript
|
||||
// Web3.js
|
||||
const web3 = new Web3('https://public.sepolia.rpc.status.network');
|
||||
|
||||
// Ethers.js v5
|
||||
const provider = new ethers.providers.JsonRpcProvider('https://public.sepolia.rpc.status.network');
|
||||
```
|
||||
|
||||
## 利用可能なメソッド
|
||||
|
||||
RPCエンドポイントは、以下を含む標準的なEthereum JSON-RPCメソッドをサポートしています:
|
||||
|
||||
- `eth_blockNumber`: 最新のブロック番号を取得
|
||||
- `eth_getBalance`: アカウント残高を取得
|
||||
- `eth_sendRawTransaction`: 署名済みトランザクションを送信
|
||||
- `eth_call`: トランザクションを作成せずにコールを実行
|
||||
- `eth_getLogs`: イベントログを取得
|
||||
- `eth_getTransactionByHash`: トランザクションの詳細を取得
|
||||
- `eth_getBlockByNumber`: ブロック情報を取得
|
||||
|
||||
サポートされているRPCメソッドの完全なリストと詳細な仕様については、Status NetworkがLinea技術をベースにしているため、[Linea APIリファレンス](https://docs.linea.build/api/reference)を参照してください。
|
||||
|
||||
## レート制限
|
||||
|
||||
公開RPCエンドポイントには、公平な使用を確保するためのレート制限があります:
|
||||
- IPあたり1秒間に10リクエスト
|
||||
- IPあたり1日100,000リクエスト
|
||||
|
||||
より高い制限が必要な場合は、Telegramでお問い合わせください。
|
||||
|
||||
## サポート
|
||||
|
||||
RPCエンドポイントに問題が発生した場合:
|
||||
- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||
- アプリケーションにフォールバックRPC戦略の実装を検討
|
||||
@@ -0,0 +1,34 @@
|
||||
# テストネットフォーセット
|
||||
|
||||
Status Networkテストネットを始めるには、SepoliaのETHとStatus Networkテストネットの両方のETHが必要です。
|
||||
|
||||
## Status Networkテストネットフォーセット
|
||||
|
||||
Status Networkテストネットフォーセットは[faucet.status.network](https://faucet.status.network)で利用できます。
|
||||
|
||||
### 詳細
|
||||
- **フォーセットコントラクト**: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||
- **配布量**: リクエストあたり0.1 ETH
|
||||
- **クールダウン**: アドレスあたり1日1回のリクエスト
|
||||
|
||||
### テストネットETHの入手方法
|
||||
|
||||
1. [faucet.status.network](https://faucet.status.network)にアクセス
|
||||
2. ウォレットを接続
|
||||
3. 「資金をリクエスト」をクリック
|
||||
4. ウォレットでトランザクションを確認
|
||||
5. ETHがウォレットに表示されるのを待つ(通常数秒かかります)
|
||||
|
||||
## Sepolia ETH(ブリッジに必要)
|
||||
|
||||
Status Networkテストネットにアセットをブリッジするには、まずSepolia ETHが必要です。以下から入手できます:
|
||||
|
||||
2. [Alchemy Sepoliaフォーセット](https://www.alchemy.com/faucets/ethereum-sepolia)
|
||||
3. [Metamask Sepoliaフォーセット](https://docs.metamask.io/developer-tools/faucet/)
|
||||
|
||||
Sepolia ETHを入手したら、[Status Networkブリッジ](https://bridge.status.network)を使用してStatus Networkテストネットにブリッジできます。
|
||||
|
||||
## サポート
|
||||
|
||||
フォーセットに問題が発生した場合:
|
||||
- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
# Foundryを使用したスマートコントラクトのデプロイ
|
||||
|
||||
このチュートリアルでは、Foundryを使用してStatus Networkテストネットにスマートコントラクトをデプロイする手順を説明します。
|
||||
|
||||
## 前提条件
|
||||
|
||||
開始する前に、以下が必要です:
|
||||
|
||||
- **Foundry**: [公式Foundryブック](https://book.getfoundry.sh/getting-started/installation)からインストール
|
||||
- **Ethereumウォレット**: Status Networkテストネット用のプライベートキー
|
||||
- **テストネットETH**: Status NetworkテストネットのETHが必要です
|
||||
- Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます
|
||||
- **基本知識**: Solidityとコマンドラインの基礎知識
|
||||
|
||||
## 達成目標
|
||||
|
||||
- Foundryプロジェクトの初期化
|
||||
- 基本的なEthereumスマートコントラクトの作成
|
||||
- Status Networkテストネットデプロイ用のFoundryの設定
|
||||
- スマートコントラクトのデプロイ
|
||||
|
||||
## 手順
|
||||
|
||||
### 1. Foundryプロジェクトの初期化
|
||||
|
||||
まず、新しいFoundryプロジェクトを作成します:
|
||||
|
||||
```bash
|
||||
# 新規プロジェクトの作成
|
||||
forge init hello_status
|
||||
cd hello_status
|
||||
|
||||
# プライベートキー用の.envファイルを作成
|
||||
touch .env
|
||||
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||
```
|
||||
|
||||
### 2. スマートコントラクトの作成
|
||||
|
||||
`src/Counter.sol`を`HelloWorld.sol`に置き換えます:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
contract HelloWorld {
|
||||
string public greet = "Hello, Status Network!";
|
||||
|
||||
function setGreet(string memory _greet) public {
|
||||
greet = _greet;
|
||||
}
|
||||
|
||||
function getGreet() public view returns (string memory) {
|
||||
return greet;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Status Network用のFoundryの設定
|
||||
|
||||
`foundry.toml`を作成または更新します:
|
||||
|
||||
```toml
|
||||
[profile.default]
|
||||
src = "src"
|
||||
out = "out"
|
||||
libs = ["lib"]
|
||||
solc = "0.8.24"
|
||||
|
||||
[rpc_endpoints]
|
||||
status_testnet = "https://public.sepolia.rpc.status.network"
|
||||
```
|
||||
|
||||
### 4. コントラクトのデプロイ
|
||||
|
||||
デプロイメントスクリプト`script/Deploy.s.sol`を作成します:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
import "forge-std/Script.sol";
|
||||
import "../src/HelloWorld.sol";
|
||||
|
||||
contract DeployScript is Script {
|
||||
function run() external {
|
||||
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||
|
||||
vm.startBroadcast(deployerPrivateKey);
|
||||
|
||||
HelloWorld hello = new HelloWorld();
|
||||
console.log("HelloWorld deployed to:", address(hello));
|
||||
|
||||
vm.stopBroadcast();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
forgeを使用してデプロイします:
|
||||
|
||||
```bash
|
||||
# 環境変数の読み込み
|
||||
source .env
|
||||
|
||||
# Status Networkテストネットにデプロイ
|
||||
forge script script/Deploy.s.sol:DeployScript \
|
||||
--rpc-url https://public.sepolia.rpc.status.network \
|
||||
--broadcast \
|
||||
```
|
||||
|
||||
### 5. コントラクトとの対話
|
||||
|
||||
コントラクトと対話するスクリプト`script/Interact.s.sol`を作成します:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
import "forge-std/Script.sol";
|
||||
import "../src/HelloWorld.sol";
|
||||
|
||||
contract InteractScript is Script {
|
||||
function run() external {
|
||||
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||
address contractAddress = address(0x...); // コントラクトアドレスに置き換えてください
|
||||
|
||||
vm.startBroadcast(deployerPrivateKey);
|
||||
|
||||
HelloWorld hello = HelloWorld(contractAddress);
|
||||
|
||||
// 現在の挨拶を読み取り
|
||||
string memory currentGreeting = hello.getGreet();
|
||||
console.log("Current greeting:", currentGreeting);
|
||||
|
||||
// 挨拶を更新
|
||||
hello.setGreet("Hello from Foundry!");
|
||||
|
||||
vm.stopBroadcast();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
対話スクリプトを実行します:
|
||||
|
||||
```bash
|
||||
forge script script/Interact.s.sol:InteractScript \
|
||||
--rpc-url https://public.sepolia.rpc.status.network \
|
||||
--broadcast
|
||||
```
|
||||
|
||||
### 6. 簡単な対話のためのCastコマンド
|
||||
|
||||
`cast`を使用してコントラクトと対話することもできます:
|
||||
|
||||
```bash
|
||||
# 挨拶を読み取り
|
||||
cast call <CONTRACT_ADDRESS> "getGreet()" \
|
||||
--rpc-url https://public.sepolia.rpc.status.network
|
||||
|
||||
# 新しい挨拶を設定
|
||||
cast send <CONTRACT_ADDRESS> "setGreet(string)" "New greeting!" \
|
||||
--private-key $PRIVATE_KEY \
|
||||
--rpc-url https://public.sepolia.rpc.status.network
|
||||
```
|
||||
|
||||
### 7. テスト
|
||||
|
||||
テストファイル`test/HelloWorld.t.sol`を作成します:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
import "../src/HelloWorld.sol";
|
||||
|
||||
contract HelloWorldTest is Test {
|
||||
HelloWorld hello;
|
||||
|
||||
function setUp() public {
|
||||
hello = new HelloWorld();
|
||||
}
|
||||
|
||||
function testGreeting() public {
|
||||
assertEq(hello.getGreet(), "Hello, Status Network!");
|
||||
|
||||
hello.setGreet("New greeting");
|
||||
assertEq(hello.getGreet(), "New greeting");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
テストを実行します:
|
||||
|
||||
```bash
|
||||
forge test
|
||||
```
|
||||
|
||||
## サポート
|
||||
|
||||
問題が発生した場合:
|
||||
- [Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||
- [ネットワーク詳細](/general-info/network-details)を参照
|
||||
|
||||
## 追加リソース
|
||||
|
||||
- [Foundryブック](https://book.getfoundry.sh/)
|
||||
- [Status Networkエクスプローラー](https://sepoliascan.status.network)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user