diff --git a/docs/dapp/README.mdx b/docs/dapp/README.mdx
index bf8e2f188c..806260193c 100644
--- a/docs/dapp/README.mdx
+++ b/docs/dapp/README.mdx
@@ -35,3 +35,41 @@ Sapphire, demonstrates best practices for writing confidential smart contracts
and working examples for you to explore and extend.
+
+# Consensus Layer RPC endpoints
+
+Most dApp developers will build dApps on the ParaTime layer (the *compute*
+layer) mentioned above. However, if you are building a dApp which needs to
+perform consensus operations such as the consensus-layer token transfers,
+ParaTime deposits and withdrawals, governance transactions and similar, you may
+connect to one of the **consensus layer** endpoints below.
+
+:::danger
+
+The RPC endpoint is a *point of trust*. Beside rate limiting, it can also
+perform censorship or even man-in-the-middle attack. If you have security
+considerations, we strongly recommend that you [run your own client
+node][non-validator-node],
+
+:::
+
+[non-validator-node]: ../node/run-your-node/non-validator-node.md
+
+| Provider | Mainnet URL | Testnet URL |
+|-----------------------------|----------------------|------------------------------|
+| [Oasis Protocol Foundation] | `grpc.oasis.dev:443` | `testnet.grpc.oasis.dev:443` |
+
+[Oasis Protocol Foundation]: https://oasisprotocol.org
+
+:::tip
+
+If you are running your own Oasis client node endpoint and you wish to be added
+to the public list above, open an issue at [github.com/oasisprotocol/docs].
+
+:::
+
+[github.com/oasisprotocol/docs]: https://github.com/oasisprotocol/docs/issues
+
+# See also
+
+
diff --git a/docs/dapp/cipher/README.mdx b/docs/dapp/cipher/README.mdx
index 2ed7041e1e..c7717481c8 100644
--- a/docs/dapp/cipher/README.mdx
+++ b/docs/dapp/cipher/README.mdx
@@ -4,7 +4,7 @@ import {findSidebarItem} from '@site/src/sidebarUtils';
# Cipher ParaTime
-The Cipher ParaTime is a Confidential ParaTime for executing Wasm smart contracts.
+Cipher is a confidential ParaTime for executing Wasm smart contracts.
As the officially supported ParaTime by the Oasis Protocol Foundation, Cipher
allows for:
@@ -22,11 +22,11 @@ If you're looking for EVM-compatible ParaTimes, check out the
[Emerald](../emerald/README.mdx) and the confidential
[Sapphire](../sapphire/README.mdx) paratimes.
-## Smart Contracts Development
+## Smart Contract Development
-The Cipher ParaTime implements the [Oasis Contract SDK] API. To learn how to
-write a confidential smart contract in Rust and deploy it on the Oasis Cipher
-ParaTime, read the related Oasis Contract SDK chapters:
+Cipher implements the [Oasis Contract SDK] API. To learn how to write a
+confidential smart contract in Rust and deploy it on Cipher, read the related
+Oasis Contract SDK chapters:
+## RPC Endpoints
+
+Cipher endpoints share the gRPC protocol with the Oasis Core. You can use one of
+the public endpoints free of charge, rent an endpoint at one of the professional
+service providers or set up your own endpoint.
+
+:::danger
+
+The RPC endpoint is a *point of trust*. Beside rate limiting, it can also
+perform censorship or even a man-in-the-middle attack. If you have security
+considerations, we strongly recommend that you [run Cipher on your own
+ParaTime client node][paratime-client-node],
+
+:::
+
+[paratime-client-node]: ../../node/run-your-node/paratime-client-node.mdx
+
+| Provider | Mainnet RPC URLs | Testnet RPC URLs |
+|-----------------------------|----------------------|------------------------------|
+| [Oasis Protocol Foundation] | `grpc.oasis.dev:443` | `testnet.grpc.oasis.dev:443` |
+
+
+[Oasis Protocol Foundation]: https://oasisprotocol.org
+
+## Block Explorers
+
+No block explorers are available for Cipher yet. Consider debugging the Cipher
+blocks using the [`oasis paratime show`] command in [Oasis CLI].
+
+[`oasis paratime show`]: ../../general/manage-tokens/cli/paratime.md#show
+[Oasis CLI]: ../../general/manage-tokens/cli/README.md
+
+:::tip
+
+If you are running your own Cipher endpoint and you wish to be added to the
+public list above, open an issue at [github.com/oasisprotocol/docs].
+
+:::
+
+[github.com/oasisprotocol/docs]: https://github.com/oasisprotocol/docs
+
## See also
{
- if (!window.ethereum?.request) {
- return alert('Have you installed MetaMask yet? If not, please do so.\n\nComputer: Once it is installed, you will be able to add the ParaTime to your MetaMask.\n\nPhone: Open the website through your MetaMask Browser to add the ParaTime.')
- }
- window.ethereum.request({
- method: 'wallet_addEthereumChain',
- params: [
- {
- chainId: '0xa516',
- chainName: 'Oasis Emerald',
- nativeCurrency: {
- name: 'Emerald Rose',
- symbol: 'ROSE',
- decimals: 18,
- },
- rpcUrls: ['https://emerald.oasis.dev', 'wss://emerald.oasis.dev/ws'],
- blockExplorerUrls: ['https://explorer.emerald.oasis.dev'],
- },
- ],
- })
- }}
->
- Click here to register Emerald Mainnet to your MetaMask or Brave Wallet
-
+The RPC endpoint is a *point of trust*. Beside traffic rate limiting, it can
+also perform censorship or even a man-in-the-middle attack. If you have security
+considerations, we strongly recommend that you [run Emerald on your own
+ParaTime client node][paratime-client-node],
-### Testnet
+:::
+
+[Web3-compatible gateway]: ../../node/web3.md
+[paratime-client-node]: ../../node/run-your-node/paratime-client-node.mdx
+
+| Provider | Mainnet RPC URLs | Testnet RPC URLs |
+|---------------------------|----------------------|------------------------|
+| [Oasis Protocol Foundation] | | |
+
+
+[Oasis Protocol Foundation]: https://oasisprotocol.org
+
+## Block Explorers
+
+| Provider | Mainnet URL | Testnet URL |
+|-----------------------------|------------------------------|---------------------------------------|
+| [Oasis Protocol Foundation] | [`explorer.emerald.oasis.dev`] | [`testnet.explorer.emerald.oasis.dev`] |
+| [Oasis Protocol Foundation] | [`explorer.oasis.io/mainnet/emerald`] | [`explorer.oasis.io/testnet/emerald`] |
+
+[`explorer.emerald.oasis.dev`]: https://explorer.emerald.oasis.dev
+[`testnet.explorer.emerald.oasis.dev`]: https://testnet.explorer.emerald.oasis.dev
+[`explorer.oasis.io/mainnet/emerald`]: https://explorer.oasis.io/mainnet/emerald
+[`explorer.oasis.io/testnet/emerald`]: https://explorer.oasis.io/testnet/emerald
+
+:::tip
+
+If you are running your own Emerald endpoint or a block explorer, and you wish
+to be added to the public list above, open an issue at
+[github.com/oasisprotocol/docs].
-* RPC HTTP endpoint: `https://testnet.emerald.oasis.dev`
-* RPC WebSockets endpoint: `wss://testnet.emerald.oasis.dev/ws`
-* Chain ID:
- * Hex: 0xa515
- * Decimal: 42261
-* Block explorer: [https://testnet.explorer.emerald.oasis.dev](https://testnet.explorer.emerald.oasis.dev)
-
-
+:::
+[github.com/oasisprotocol/docs]: https://github.com/oasisprotocol/docs
## See also
diff --git a/docs/dapp/sapphire/README.mdx b/docs/dapp/sapphire/README.mdx
index 17e69a0a39..ad4c9ca92e 100644
--- a/docs/dapp/sapphire/README.mdx
+++ b/docs/dapp/sapphire/README.mdx
@@ -1,10 +1,11 @@
import DocCardList from '@theme/DocCardList';
import {findSidebarItem} from '@site/src/sidebarUtils';
+import {AddSapphireToMetaMask as S, AddSapphireTestnetToMetaMask as ST} from '@site/src/AddToMetaMask';
# Sapphire ParaTime
-The Sapphire ParaTime is our official confidential EVM Compatible ParaTime
-providing a smart contract development environment with EVM compatibility.
+Sapphire is our official confidential EVM Compatible ParaTime providing a smart
+contract development environment with EVM compatibility.
As the official confidential EVM-compatible ParaTime on the Oasis Network,
Sapphire allows for:
@@ -21,82 +22,75 @@ If you are not bound to EVM and you wish to develop dApps with more
fine-grained confidentiality, check out the
[Cipher ParaTime](../cipher/README.mdx).
-## Web3 Gateway
-
-To get started building on our Sapphire ParaTime, you can use our public Web3
-gateway, fully compatible with Ethereum's Web3 gateway.
+## Chain Information
### Mainnet
-* RPC HTTP endpoint: `https://sapphire.oasis.io`
-* RPC WebSockets endpoint: `wss://sapphire.oasis.io/ws`
-* Chain ID:
- * Hex: 0x5afe
- * Decimal: 23294
-* Block explorer: [https://explorer.sapphire.oasis.io](https://explorer.sapphire.oasis.io)
-
-
+- Network name: `sapphire`
+- Long network name: `Oasis Sapphire`
+- Chain ID:
+ - Hex: `0x5afe`
+ - Decimal: `23294`
### Testnet
-* RPC HTTP endpoint: `https://testnet.sapphire.oasis.dev`
-* RPC WebSockets endpoint: `wss://testnet.sapphire.oasis.dev/ws`
-* Chain ID:
- * Hex: 0x5aff
- * Decimal: 23295
-* Block explorer: [https://testnet.explorer.sapphire.oasis.dev](https://testnet.explorer.sapphire.oasis.dev)
-
-
+- Network name: `sapphire-testnet`
+- Long network name: `Oasis Sapphire Testnet`
+- Chain ID:
+ - Hex: `0x5aff`
+ - Decimal: `23295`
+
+## RPC Endpoints
+
+Sapphire endpoints run the Ethereum's [Web3-compatible gateway]. You can
+connect to one of the public Web3 gateways free of charge, rent an endpoint at
+one of the professional service providers or set up your own endpoint.
+
+:::danger
+
+The RPC endpoint is a *point of trust*. Beside traffic rate limiting, it can
+also perform censorship or even a man-in-the-middle attack. If you have security
+considerations, we strongly recommend that you [run Sapphire on your own
+ParaTime client node][paratime-client-node],
+
+:::
+
+[Web3-compatible gateway]: ../../node/web3.md
+[paratime-client-node]: ../../node/run-your-node/paratime-client-node.mdx
+
+| Provider | Mainnet RPC URLs | Testnet RPC URLs | Supports Confidential Queries |
+|---------------------------|----------------------|------------------------|-------------------------------|
+| [1RPC] | | N/A | Yes |
+| [ChainStack] | [Register here][chainstack-register] | [Register here][chainstack-register] | Yes |
+| [Oasis Protocol Foundation] | | | Yes |
+
+
+[Oasis Protocol Foundation]: https://oasisprotocol.org
+[1RPC]: https://www.1rpc.io/
+[ChainStack]: https://chainstack.com
+[chainstack-register]: https://chainstack.com/build-better-with-oasis-sapphire/
+
+## Block Explorers
+
+| Provider | Mainnet URL | Testnet URL |
+|-----------------------------|------------------------------|---------------------------------------|
+| [Oasis Protocol Foundation] | [`explorer.sapphire.oasis.io`] | [`testnet.explorer.sapphire.oasis.dev`] |
+| [Oasis Protocol Foundation] | [`explorer.oasis.io/mainnet/sapphire`] | [`explorer.oasis.io/testnet/sapphire`] |
+
+[`explorer.sapphire.oasis.io`]: https://explorer.sapphire.oasis.io
+[`testnet.explorer.sapphire.oasis.dev`]: https://testnet.explorer.sapphire.oasis.dev
+[`explorer.oasis.io/mainnet/sapphire`]: https://explorer.oasis.io/mainnet/sapphire
+[`explorer.oasis.io/testnet/sapphire`]: https://explorer.oasis.io/testnet/sapphire
+
+:::tip
+
+If you are running your own Sapphire endpoint or a block explorer, and you wish
+to be added to the public list above, open an issue at
+[github.com/oasisprotocol/docs].
+
+:::
+
+[github.com/oasisprotocol/docs]: https://github.com/oasisprotocol/docs
## See also
diff --git a/docs/get-involved/run-node/paratime-node.mdx b/docs/get-involved/run-node/paratime-node.mdx
index 0f47195103..b7eede5036 100644
--- a/docs/get-involved/run-node/paratime-node.mdx
+++ b/docs/get-involved/run-node/paratime-node.mdx
@@ -49,7 +49,7 @@ the use of EVM smart contracts on the Oasis network.
* **Testnet Launch Date:** July 2022
* **Mainnet Launch Date:** Dec 2022
* **Discord Channel:** [#node-operators][connect-with-us]
-* **Requires SGX:** yes
+* **Requires SGX:** Yes
* **Parameters:**
* [Mainnet](../../node/mainnet/README.md#sapphire-paratime)
* [Testnet](../../node/testnet/README.md#sapphire-paratime)
@@ -102,6 +102,15 @@ committee on Mainnet, your entity needs to:
- Have a validator in the **validator set**.
- Have at least **5,000,000.00 ROSE staked/delegated** to it.
+### Rewards
+
+* The ParaTime will release tokens on-chain to reward nodes for participation.
+* The reward program is 2 years long, and tokens will be released per epoch.
+* The reward will be 3 ROSE tokens per entity per epoch. Each node has an
+ approximately 30% chance of being selected by the primary committee to claim
+ the rewards. Hence, a node entity can earn 24 ROSE tokens per day, 720 ROSE
+ tokens per month.
+
diff --git a/docs/node/mainnet/README.md b/docs/node/mainnet/README.md
index 4d3917a455..4c1b85497d 100644
--- a/docs/node/mainnet/README.md
+++ b/docs/node/mainnet/README.md
@@ -1,5 +1,7 @@
# Mainnet
+## Network Parameters
+
These are the current parameters for the Mainnet:
* [Genesis file](https://github.com/oasisprotocol/mainnet-artifacts/releases/download/2023-11-29/genesis.json):
@@ -7,7 +9,8 @@ These are the current parameters for the Mainnet:
:::info
-Genesis file is signed by [network's current maintainers](https://github.com/oasisprotocol/mainnet-artifacts/blob/master/README.md#pgp-keys-of-current-maintainers). To verify its authenticity, follow the [PGP verification instructions](https://github.com/oasisprotocol/mainnet-artifacts/blob/master/README.md#verifying-genesis-file-signatures).
+Genesis file is signed by [network's current maintainers]. To verify its
+authenticity, follow the [PGP verification instructions].
:::
@@ -27,6 +30,7 @@ Feel free to use other seed nodes besides the one provided here.
* [23.0.9](https://github.com/oasisprotocol/oasis-core/releases/tag/v23.0.9)
* [Oasis Rosetta Gateway](https://github.com/oasisprotocol/oasis-rosetta-gateway) version:
* [2.6.0](https://github.com/oasisprotocol/oasis-rosetta-gateway/releases/tag/v2.6.0)
+ * Public Rosetta endpoint: `https://rosetta.oasis.dev`
:::info
@@ -36,11 +40,16 @@ The Oasis Node is part of the Oasis Core release.
:::danger
-Do not use a newer version of Oasis Core since it likely contains changes that are incompatible with the version of Oasis Core used by other nodes.
+Do not use a newer version of Oasis Core since it likely contains changes that
+are incompatible with the version of Oasis Core used by other nodes.
:::
-If you want to join our Testnet, see the [Testnet](../testnet/README.md) docs for the current Testnet parameters.
+If you want to join our Testnet, see the [Testnet](../testnet/README.md) docs
+for the current Testnet parameters.
+
+[network's current maintainers]: https://github.com/oasisprotocol/mainnet-artifacts/blob/master/README.md#pgp-keys-of-current-maintainers
+[PGP verification instructions]: https://github.com/oasisprotocol/mainnet-artifacts/blob/master/README.md#verifying-genesis-file-signatures
## ParaTimes
@@ -61,7 +70,8 @@ This section contains parameters for various ParaTimes known to be deployed on t
:::tip
-Feel free to use other IAS proxies besides the one provided here or [run your own](../../node/run-your-node/ias-proxy.md).
+Feel free to use other IAS proxies besides the one provided here or
+[run your own](../../node/run-your-node/ias-proxy.md).
:::
@@ -78,7 +88,8 @@ Feel free to use other IAS proxies besides the one provided here or [run your ow
:::info
-Check the [Emerald ParaTime page](/dapp/emerald/#web3-gateway) on how to access the public Web3 gateway.
+Check the [Emerald ParaTime page](/dapp/emerald/#web3-gateway) on how to access
+the public Web3 gateway.
:::
@@ -99,7 +110,8 @@ Check the [Emerald ParaTime page](/dapp/emerald/#web3-gateway) on how to access
:::tip
-Feel free to use other IAS proxies besides the one provided here or [run your own](../../node/run-your-node/ias-proxy.md).
+Feel free to use other IAS proxies besides the one provided here or
+[run your own](../../node/run-your-node/ias-proxy.md).
:::
@@ -117,6 +129,7 @@ Feel free to use other IAS proxies besides the one provided here or [run your ow
:::tip
-Feel free to use other IAS proxies besides the one provided here or [run your own](../../node/run-your-node/ias-proxy.md).
+Feel free to use other IAS proxies besides the one provided here or
+[run your own](../../node/run-your-node/ias-proxy.md).
:::
diff --git a/src/AddToMetaMask.tsx b/src/AddToMetaMask.tsx
new file mode 100644
index 0000000000..feba550246
--- /dev/null
+++ b/src/AddToMetaMask.tsx
@@ -0,0 +1,92 @@
+import React from 'react';
+import PlotlyChart from "@site/src/PlotlyChart";
+
+const AddToMetaMask = (props: {
+ name: string,
+ chainId: string,
+ token: string,
+ rpcs: string[],
+ be: string[],
+}) => {
+ return (
+
+ {props.rpcs.map(item => (
+ {item}
+ ))}
+
+
+ );
+};
+
+export const AddSapphireToMetaMask = (props: {
+ rpcs: string[],
+}) => {
+ return AddToMetaMask({
+ name: 'Oasis Sapphire',
+ chainId: '0x5afe',
+ token: 'ROSE',
+ rpcs: props.rpcs,
+ be: ['https://explorer.sapphire.oasis.io'],
+ });
+};
+
+export const AddSapphireTestnetToMetaMask = (props: {
+ rpcs: string[],
+}) => {
+ return AddToMetaMask({
+ name: 'Oasis Sapphire Testnet',
+ chainId: '0x5aff',
+ token: 'TEST',
+ rpcs: props.rpcs,
+ be: ['https://testnet.explorer.sapphire.oasis.dev'],
+ });
+};
+
+export const AddEmeraldToMetaMask = (props: {
+ rpcs: string[],
+}) => {
+ return AddToMetaMask({
+ name: 'Oasis Emerald',
+ chainId: '0xa516',
+ token: 'ROSE',
+ rpcs: props.rpcs,
+ be: ['https://explorer.emerald.oasis.dev'],
+ });
+};
+
+export const AddEmeraldTestnetToMetaMask = (props: {
+ rpcs: string[],
+}) => {
+ return AddToMetaMask({
+ name: 'Oasis Emerald Testnet',
+ chainId: '0xa515',
+ token: 'TEST',
+ rpcs: props.rpcs,
+ be: ['https://testnet.explorer.emerald.oasis.dev'],
+ });
+};