diff --git a/.gitmodules b/.gitmodules
index 9a030b891a..eebeeb7859 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -11,3 +11,6 @@
[submodule "external/adrs"]
path = external/adrs
url = https://github.com/oasisprotocol/adrs
+[submodule "external/cli"]
+ path = external/cli
+ url = https://github.com/oasisprotocol/cli
diff --git a/README.md b/README.md
index 195569cbad..6121ae8b03 100644
--- a/README.md
+++ b/README.md
@@ -117,7 +117,7 @@ Markdown files hosted by this repository should:
`../howto-use-wallet.md`.
`../../../operators/set-up-your-node.md`
-Markdown files hosted by other Oasis repositories should:
+Symlinked Markdown files hosted by other Oasis repositories should:
- reference markdown files in the same repository by a relative path e.g.
`../howto-write-contract.md`.
diff --git a/docs/general/manage-tokens/README.mdx b/docs/general/manage-tokens/README.mdx
index 593fab4b9d..41c67f1df6 100644
--- a/docs/general/manage-tokens/README.mdx
+++ b/docs/general/manage-tokens/README.mdx
@@ -25,7 +25,7 @@ For your own security and peace of mind, please only use wallets that are listed
findSidebarItem('/general/manage-tokens/terminology'),
findSidebarItem('/general/manage-tokens/staking-and-delegating'),
findSidebarItem('/general/manage-tokens/oasis-wallets/'),
- findSidebarItem('/general/manage-tokens/advanced/oasis-cli-tools/'),
+ findSidebarItem('/general/manage-tokens/cli/'),
findSidebarItem('/general/manage-tokens/holding-rose-tokens/custody-providers'),
findSidebarItem('/general/manage-tokens/holding-rose-tokens/bitpie-wallet'),
findSidebarItem('/general/manage-tokens/holding-rose-tokens/ledger-wallet'),
diff --git a/docs/general/manage-tokens/advanced/README.mdx b/docs/general/manage-tokens/advanced/README.mdx
deleted file mode 100644
index e0763a3759..0000000000
--- a/docs/general/manage-tokens/advanced/README.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
-import DocCardList from '@theme/DocCardList';
-
-# Advanced
-
-This section provides documentation on more advanced options on managing your ROSE tokens.
-
-:::caution
-
-If you are not familiar with the command line, we recommend using one of the available [Oasis Wallets](../oasis-wallets/README.mdx).
-
-:::
-
-
diff --git a/docs/general/manage-tokens/advanced/file-based-signer.md b/docs/general/manage-tokens/advanced/file-based-signer.md
deleted file mode 100644
index 28346a2f03..0000000000
--- a/docs/general/manage-tokens/advanced/file-based-signer.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Oasis File-Based Signer
-
-:::danger
-
-We strongly suggest that you do not use any entity/staking account that is generated with the file-based signer on the Mainnet.
-
-In case you need to use the file-based signer, make sure you only use it on an [offline/air-gapped machine](https://en.wikipedia.org/wiki/Air_gap_\(networking\)). Gaining access to your entity's/staking account's private key can compromise your tokens.
-
-:::
-
-To hold your ROSE tokens via a private key stored in a file, use the Oasis file-based signer.
-
-## Manage Your Tokens
-
-### Using Oasis Wallets
-
-This is a simpler option since it allows you to import your private key stored in a file into a web browser app or a web browser extension.
-
-Follow the instructions in the [Oasis Wallets](../oasis-wallets/README.mdx) doc.
-
-:::danger
-
-Importing your private key into an online web browser app or a web browser extension will significantly increase its exposure and chances for it to be compromised.
-
-We recommend ONLY doing this with wallets with small amounts of ROSE tokens or wallets only used with the Testnet.
-
-:::
-
-### Using Oasis CLI Tools
-
-This is the most powerful option that allows performing any token-related management task.
-
-Follow the instructions in the [Oasis CLI Tools](oasis-cli-tools/README.md) doc.
-
-:::caution
-
-To ensure your private key's safety, we recommend only exposing/using your private key on an [offline/air-gapped machine](https://en.wikipedia.org/wiki/Air_gap_\(networking\)).
-
-Exposing your entity's/staking account's private key on an online machine can compromise your tokens.
-
-:::
diff --git a/docs/general/manage-tokens/advanced/oasis-cli-tools/common-staking-info.md b/docs/general/manage-tokens/advanced/oasis-cli-tools/common-staking-info.md
deleted file mode 100644
index c2d6c8d768..0000000000
--- a/docs/general/manage-tokens/advanced/oasis-cli-tools/common-staking-info.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# Common Staking Info
-
-:::info
-
-This example assumes you have read and followed the
-[Prerequisites](prerequisites.md) and [Setup](setup.md) sections.
-
-:::
-
-To query an Oasis node for the common staking information, run:
-
-```bash
-oasis-node stake info -a $ADDR
-```
-
-At time of writing this document, the command will output the following:
-
-```text
-Token's ticker symbol: ROSE
-Token's value base-10 exponent: 9
-Total supply: 10000000000.0 ROSE
-Common pool: 1319242295.211384785 ROSE
-Last block fees: 0.0 ROSE
-Governance deposits: 0.0 ROSE
-Staking threshold (entity): 100.0 ROSE
-Staking threshold (node-validator): 100.0 ROSE
-Staking threshold (node-compute): 100.0 ROSE
-Staking threshold (node-keymanager): 100.0 ROSE
-Staking threshold (runtime-compute): 50000.0 ROSE
-Staking threshold (runtime-keymanager): 50000.0 ROSE
-```
-
-We can see that the token's name is ROSE and that 1 token corresponds to 10^9
-(i.e. one billion) base units.
-
-Next, we can observe that the **total supply** is 10 billion tokens and that
-about 1.3 billion tokens are in the **common pool**.
-
-The **staking thresholds** for the entity and all node kinds (validator,
-compute, key manager) are 100 tokens.
-
-This means that if you want to register, e.g. an entity with a validator node,
-you need to escrow (i.e. stake) at least 200 tokens.
-
-Staking threshold for registering a **new runtime** (ParaTime) of any kind
-(compute, key manager) is 50,000 tokens.
-
-In addition, each runtime may require an **additional staking threshold** for
-running a compute node. You need to query the registry in verbose mode to
-obtain it:
-
-```bash
-$ ./oasis-node registry runtime list -v -a $ADDR
-```
-
-For example, Emerald ParaTime running on the Mainnet has the following
-additional staking requirements:
-
-```json
-{
- "v": 3,
- "id": "000000000000000000000000000000000000000000000000e2eaa99fc008f87f",
- ...
- "staking": {
- "thresholds": {
- "node-compute": "5000000000000000"
- },
- "min_in_message_fee": "0"
- },
- ...
-}
-```
-
-To register a node that is both a validator and a compute node for Emerald
-ParaTime, the entity for which the node is registered would need to satisfy the following:
-
-* Entity registration staking threshold (currently 100 tokens),
-* Validator node staking threshold (currently 100 tokens),
-* Compute node staking threshold (currently 100 tokens),
-* Emerald-specific staking threshold (currently 5,000,000 tokens),
-
-All together, there would need to be at least 5,000,300 tokens staked in your
-entity's escrow account.
diff --git a/docs/general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime.mdx b/docs/general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime.mdx
deleted file mode 100644
index 0cba240d0d..0000000000
--- a/docs/general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime.mdx
+++ /dev/null
@@ -1,309 +0,0 @@
-import DocCard from '@theme/DocCard';
-import {findSidebarItem} from '@site/src/sidebarUtils';
-
-# Deposit/Withdraw Tokens to/from ParaTime
-
-To perform ParaTime deposits or withdrawals using a command line interface, you will need `oasis` executable which is part of the [Oasis CLI](https://github.com/oasisprotocol/oasis-sdk/tree/main/cli). `oasis` is supplemental to `oasis-node` and supports ParaTime-related operations such as deposits, withdrawals, transfers and manipulation of the smart contracts, in contrast to `oasis-node` which only supports consensus layer features.
-
-We will assume that your already have an Oasis wallet with some ROSE and that you want to Deposit or Withdraw ROSE to or from Emerald ParaTime running on the Mainnet network.
-
-:::info
-
-At time of writing, no precompiled `oasis` binaries are available. You will need to clone the [`oasis-sdk` git repository](https://github.com/oasisprotocol/oasis-sdk/) and compile the tool yourself. The process is straight forward - just follow the [Readme](https://github.com/oasisprotocol/oasis-sdk/blob/main/cli/README.md).
-
-:::
-
-:::info
-
-This chapter describes the command line interface for depositing and withdrawing ROSE which is tailored toward advanced users such as node operators. If you are interested in the end-user wallets with a graphical user interface, consult the [How to Transfer ROSE into a ParaTime](../../how-to-transfer-rose-into-paratime.mdx) chapter.
-
-:::
-
-## Import your wallet
-
-To sign any transaction you will need to import an Oasis wallet. Prepare your base64-encoded private key or the BIP39 mnemonic of your Oasis account and run:
-
-```
-oasis wallet import
-```
-
-Follow the interactive instructions that will guide you through the import procedure. If this is the first time you are running `oasis`, the imported wallet will become your default wallet and transactions will be signed with the key stored in this wallet, if not otherwise specified with the `--wallet` parameter.
-
-## Configure Allowance
-
-In order to deposit ROSE to a ParaTime, you will first need to grant the ParaTime access to your Oasis account on the consensus layer. The following command allows Emerald to access up to 100 ROSE stored on your Oasis account which you will deposit afterwards:
-
-```
-$ oasis accounts allow paratime:emerald 100
-Unlock your wallet.
-? Passphrase:
-You are about to sign the following transaction:
-Method: staking.Allow
-Body:
- Beneficiary: oasis1qqdpkrh0v9jn80kymcvgk57v38x38qwdxvvtnjfm
- Amount change: +10.0 ROSE
-Nonce: 5
-Fee:
- Amount: 0.0 ROSE
- Gas limit: 0
- (gas price: 0.0 ROSE per gas unit)
-
-Network: mainnet
-Paratime: none (consensus layer)
-? Sign this transaction? Yes
-Broadcasting transaction...
-Transaction executed successfully.
-Transaction hash: a28a67b7af6bdce84760d5d61b982c0e89aa6874dda0aad01b61ef85feea8601
-```
-
-The allowance above **adds** the amount of ROSE Emerald ParaTime will be allowed to access. For example, if your run the command above 3 times, Emerald will obtain the permission to access 300 ROSE. Later, each deposit will subtract ROSE from the allowed amount.
-
-:::info
-
-By default the Oasis CLI will execute transactions on Emerald ParaTime deployed on the Mainnet. You can always use another ParaTime and the network by using the `--paratime` and `--network` parameters respectively.
-
-:::
-
-## Deposit
-
-After setting up the allowance policy, we can execute the deposit transaction. The following command will deposit 100 ROSE from your consensus account to your ParaTime account.
-
-```
-$ oasis accounts deposit 100 --gas-price 0
-Unlock your wallet.
-? Passphrase:
-You are about to sign the following transaction:
-{
- "v": 1,
- "call": {
- "method": "consensus.Deposit",
- "body": "oWZhbW91bnSCSA3gtrOnZAAAQA=="
- },
- "ai": {
- "si": [
- {
- "address_spec": {
- "signature": {
- "ed25519": "OxEJPYSJW55VEDZyzJ6drxzZ6MeSwz/JuTwCAlWJ0ks="
- }
- },
- "nonce": 8
- }
- ],
- "fee": {
- "amount": {
- "Amount": "0",
- "Denomination": ""
- },
- "gas": 11284,
- "consensus_messages": 1
- }
- }
-}
-
-Network: mainnet
-Paratime: emerald
-? Sign this transaction? Yes
-Broadcasting transaction...
-Transaction executed successfully.
-Round: 564
-Transaction hash: 2bccec1776df6c2028f7ece6ae9b53b8c12875f3f10b39b962d9ac82238bc60b
-Waiting for deposit result...
-Deposit succeeded.
-```
-
-Currently, deposit transactions are free of charge, so we can avoid spending ROSE for the gas fee by adding the `--gas-price 0` parameter. Also, keep in mind that **deposit and withdrawal fees are always paid by your ParaTime account.** If it doesn't contain any ROSE, you are not able to cover the fees.
-
-To deposit ROSE to a different ParaTime account, simply add the bech32-encoded `oasis1` address to the deposit command:
-
-```
-$ oasis accounts deposit 100 oasis1qpxhsf7xnm007csw2acaa7mta2krzpwex5c90qu6 --gas-price 0
-Unlock your wallet.
-? Passphrase:
-You are about to sign the following transaction:
-{
- "v": 1,
- "call": {
- "method": "consensus.Deposit",
- "body": "omJ0b1UATXgnxp7e/2IOV3He+2vqrDEF2TVmYW1vdW50gkkFa8deLWMQAABA"
- },
- "ai": {
- "si": [
- {
- "address_spec": {
- "signature": {
- "ed25519": "NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE="
- }
- },
- "nonce": 9
- }
- ],
- "fee": {
- "amount": {
- "Amount": "0",
- "Denomination": ""
- },
- "gas": 11310,
- "consensus_messages": 1
- }
- }
-}
-
-Network: mainnet
-Paratime: emerald
-? Sign this transaction? Yes
-Broadcasting transaction...
-Transaction executed successfully.
-Round: 710
-Transaction hash: aab2262def5a4d6e28b769b6372e07d271e6a9f0857502f2b8a6a0c777ef2b05
-Waiting for deposit result...
-Deposit succeeded.
-```
-
-Also, Ethereum hex-encoded addresses are supported which are common in Emerald ParaTime:
-
-```
-$ oasis accounts deposit 100 0x90adE3B7065fa715c7a150313877dF1d33e777D5 --gas-price 0
-Unlock your wallet.
-? Passphrase:
-You are about to sign the following transaction:
-{
- "v": 1,
- "call": {
- "method": "consensus.Deposit",
- "body": "omJ0b1UAeBTz2VT0G2RZ655LyPvGdn7OWqlmYW1vdW50gkgN4Lazp2QAAEA="
- },
- "ai": {
- "si": [
- {
- "address_spec": {
- "signature": {
- "ed25519": "NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE="
- }
- },
- "nonce": 10
- }
- ],
- "fee": {
- "amount": {
- "Amount": "1130900000000000",
- "Denomination": ""
- },
- "gas": 11309,
- "consensus_messages": 1
- }
- }
-}
-
-Network: mainnet
-Paratime: emerald
-? Sign this transaction? Yes
-Broadcasting transaction...
-Transaction executed successfully.
-Round: 712
-Transaction hash: bd587656e92515efb326614fda554b3ce1b7ec69768880bf21895424e06bddb9
-Waiting for deposit result...
-Deposit succeeded.
-```
-
-## Withdraw
-
-To withdraw 100 ROSE from your ParaTime account to the same account on the consensus layer, run:
-
-```
-$ oasis accounts withdraw 100
-Unlock your wallet.
-? Passphrase:
-You are about to sign the following transaction:
-{
- "v": 1,
- "call": {
- "method": "consensus.Withdraw",
- "body": "oWZhbW91bnSCSIrHIwSJ6AAAQA=="
- },
- "ai": {
- "si": [
- {
- "address_spec": {
- "signature": {
- "ed25519": "NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE="
- }
- },
- "nonce": 12
- }
- ],
- "fee": {
- "amount": {
- "Amount": "112850000000000",
- "Denomination": ""
- },
- "gas": 11285,
- "consensus_messages": 1
- }
- }
-}
-
-Network: mainnet
-Paratime: emerald
-? Sign this transaction? Yes
-Broadcasting transaction...
-Transaction executed successfully.
-Round: 727
-Transaction hash: c357b0661208a93301a07edc912cec9111ba1a60a08a1d85f221c906b41ad121
-Waiting for withdraw result...
-Withdraw succeeded.
-```
-
-Withdraw transactions are not free of charge and the fee will be deducted **from your ParaTime balance**.
-
-You can specify a custom Oasis address which you want to withdraw your ROSE to by appending it to the withdraw command:
-
-```
-$ oasis accounts withdraw 100 oasis1qpxhsf7xnm007csw2acaa7mta2krzpwex5c90qu6
-Unlock your wallet.
-? Passphrase:
-You are about to sign the following transaction:
-{
- "v": 1,
- "call": {
- "method": "consensus.Withdraw",
- "body": "omJ0b1UATXgnxp7e/2IOV3He+2vqrDEF2TVmYW1vdW50gkiKxyMEiegAAEA="
- },
- "ai": {
- "si": [
- {
- "address_spec": {
- "signature": {
- "ed25519": "NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE="
- }
- },
- "nonce": 14
- }
- ],
- "fee": {
- "amount": {
- "Amount": "113100000000000",
- "Denomination": ""
- },
- "gas": 11310,
- "consensus_messages": 1
- }
- }
-}
-
-Network: mainnet
-Paratime: emerald
-? Sign this transaction? Yes
-Broadcasting transaction...
-Transaction executed successfully.
-Round: 762
-Transaction hash: 85b9c65d2df54a4bb698f4ced7c89fe91462ff78a68136280e030ee38780e687
-Waiting for withdraw result...
-Withdraw succeeded.
-```
-
-## See also
-
-
diff --git a/docs/general/manage-tokens/advanced/oasis-cli-tools/get-account-info.md b/docs/general/manage-tokens/advanced/oasis-cli-tools/get-account-info.md
deleted file mode 100644
index 2a72523622..0000000000
--- a/docs/general/manage-tokens/advanced/oasis-cli-tools/get-account-info.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# Get Account Info
-
-:::info
-
-This example assumes you have read and followed the instructions in the [Prerequisites](prerequisites.md) and [Setup](setup.md) sections.
-
-:::
-
-To get more information about a particular staking account, e.g. `oasis1qrvsa8ukfw3p6kw2vcs0fk9t59mceqq7fyttwqgx`, run:
-
-```bash
-oasis-node stake account info \
- -a $ADDR \
- --stake.account.address oasis1qrvsa8ukfw3p6kw2vcs0fk9t59mceqq7fyttwqgx
-```
-
-This will output all staking information about this particular account, e.g.:
-
-```
-General Account:
- Balance: ROSE 376.594833237
- Nonce: 0
-Escrow Account:
- Active:
- Balance: ROSE 10528.684187046
- Total Shares: 10000000000000
- Debonding:
- Balance: ROSE 0.0
- Total Shares: 0
- Commission Schedule:
- Rates: (none)
- Rate Bounds: (none)
- Stake Accumulator:
- Claims:
- - Name: registry.RegisterEntity
- Staking Thresholds:
- - Global: entity
- - Name: registry.RegisterNode.9Epy5pYPGa91IJlJ8Ivb5iby+2ii8APXdfQoMZDEIDc=
- Staking Thresholds:
- - Global: node-validator
-```
-
-## General Account
-
-We can observe that:
-
-* General account's **balance**, the amount of tokens that are available to the account owner, is \~377 tokens.
-* General account's **nonce**, the incremental number that must be unique for each account's transaction, is 0. That means there haven't been any transactions made with this account as the source. Therefore, the next transaction should have nonce equal to 0.
-
-## Escrow Account
-
-We can observe that:
-
-* The amount of tokens that are **actively bounded** to the escrow account is \~10529 tokens.
-* The total number of **shares** for the tokens actively bounded to the escrow account is 10 trillion.
-* The amount of tokens that are currently **debonding** is 0.
-* The total number of **shares** for the tokens that are currently debonding is 0.
-
-### Commission Schedule
-
-An entity can also charge commission for tokens that are delegated to it. It would defined the commission schedule **rate steps** and the commission schedule **rate bound steps**. For more details, see the [Amend Commission Schedule](../../../../node/run-your-node/validator-node/amend-commission-schedule.md) documentation.
-
-### Stake Accumulator
-
-Each escrow account also has a corresponding stake accumulator. It stores **stake claims** for an escrow account and ensures all claims are satisfied at any given point. Adding a new claim is only possible if all of the existing claims plus the new claim can be satisfied.
-
-We can observe that the stake accumulator currently has two claims:
-
-* The `registry.RegisterEntity` claim is for registering an entity.
-
- It needs to satisfy the global threshold for registering an entity (`entity`) which is defined by the staking consensus parameters.
-
- To see the value of the `entity` global staking threshold, run the `oasis-node stake info` command as described in [Common Staking Info](common-staking-info.md) doc.
-
-* The `registry.RegisterNode.9Epy5pYPGa91IJlJ8Ivb5iby+2ii8APXdfQoMZDEIDc=` claim is for registering the node with ID `9Epy5pYPGa91IJlJ8Ivb5iby+2ii8APXdfQoMZDEIDc=`.
-
- It needs to satisfy the global staking threshold for registering a validator node (`node-validator`) which is defined by the staking consensus parameters.
-
- To see the value of the `node-validator` global staking threshold, run the `oasis-node stake info` command as described in [Common Staking Info](common-staking-info.md) doc.
-
- In addition to the global thresholds, each runtime the node is registering for may define their own thresholds. In case the node is registering for multiple runtimes, it needs to satisfy the sum of thresholds of all the runtimes it is registering for.
-
- For more details, see [Oasis Core Developer Docs on registering a node](../../../../core/consensus/services/registry.md#register-node).
diff --git a/docs/general/manage-tokens/advanced/oasis-cli-tools/setup.md b/docs/general/manage-tokens/advanced/oasis-cli-tools/setup.md
index bf75effa92..cd7fe89e4a 100644
--- a/docs/general/manage-tokens/advanced/oasis-cli-tools/setup.md
+++ b/docs/general/manage-tokens/advanced/oasis-cli-tools/setup.md
@@ -11,10 +11,7 @@ To run a command that requires a connection to an online Oasis node (i.e. the `s
Here are some examples of Oasis Node CLI commands that need a connection to an online Oasis node:
-* `oasis-node stake info`: Shows general staking information.
-* `oasis-node stake list`: Lists all accounts with positive balance.
-* `oasis-node stake account info`: Shows detailed information for an account.
-* `oasis-node consensus submit_tx`: Submits a pre-generated transaction to the network.
+
## Local commands
diff --git a/docs/general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens.md b/docs/general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens.md
index 4fa468b659..6c25614e83 100644
--- a/docs/general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens.md
+++ b/docs/general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens.md
@@ -82,7 +82,8 @@ Escrow Account:
...
```
-We can observe that both, the general account and the escrow account (actively bounded and debonding), have a balance of 0 tokens.
+We can observe that both, the general account and the escrow account (actively
+bounded and debonding), have a balance of 0 tokens.
## Generate a Transfer Transaction
diff --git a/docs/general/manage-tokens/cli b/docs/general/manage-tokens/cli
new file mode 120000
index 0000000000..2bb2935175
--- /dev/null
+++ b/docs/general/manage-tokens/cli
@@ -0,0 +1 @@
+../../../external/cli/docs
\ No newline at end of file
diff --git a/docs/general/manage-tokens/holding-rose-tokens/ledger-wallet.md b/docs/general/manage-tokens/holding-rose-tokens/ledger-wallet.md
index b5b95cb37b..8ff8146416 100644
--- a/docs/general/manage-tokens/holding-rose-tokens/ledger-wallet.md
+++ b/docs/general/manage-tokens/holding-rose-tokens/ledger-wallet.md
@@ -158,4 +158,4 @@ Ledger is supported by the Oasis CLI. Follow the instructions in the
[Nano S Plus]: https://support.ledger.com/hc/en-us/articles/4445777839901-Update-Ledger-Nano-S-Plus-firmware
[BIP 39]: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
[Oasis Wallets]: ../oasis-wallets/README.mdx
-[Oasis CLI Tools]: ../advanced/oasis-cli-tools/README.md
+[Oasis CLI Tools]: ../cli/README.md
diff --git a/docs/general/manage-tokens/how-to-transfer-rose-into-paratime.mdx b/docs/general/manage-tokens/how-to-transfer-rose-into-paratime.mdx
index 653c289e3e..d837cfe4d5 100644
--- a/docs/general/manage-tokens/how-to-transfer-rose-into-paratime.mdx
+++ b/docs/general/manage-tokens/how-to-transfer-rose-into-paratime.mdx
@@ -198,7 +198,7 @@ learn how to use Oasis CLI instead.
:::
-[Oasis CLI]: advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime.mdx
+[Oasis CLI]: cli/account.mdx
### Verifying ParaTime deposits and withdrawals
@@ -233,5 +233,5 @@ addresses, Token Transfers, Contract Calls, etc.), you have to use the
findSidebarItem('/dapp/emerald/writing-dapps-on-emerald'),
findSidebarItem('/dapp/sapphire/quickstart'),
findSidebarItem('/dapp/cipher/'),
- findSidebarItem('/general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime')
+ findSidebarItem('/general/manage-tokens/cli/account')
]} />
diff --git a/docs/node/run-your-node/paratime-node.mdx b/docs/node/run-your-node/paratime-node.mdx
index ec2df0eb95..12266f0c6b 100644
--- a/docs/node/run-your-node/paratime-node.mdx
+++ b/docs/node/run-your-node/paratime-node.mdx
@@ -179,7 +179,7 @@ No manual node registration is necessary.
:::info
-ParaTime rewards for running the compute node will be sent to your entity address **inside the ParaTime**. To access the rewards on the consensus layer, you will need to withdraw them first. Read the [Deposit/Withdraw Tokens to/from ParaTime](../../general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime.mdx) chapter to learn more.
+ParaTime rewards for running the compute node will be sent to your entity address **inside the ParaTime**. To access the rewards on the consensus layer, you will need to withdraw them first. Read the [Deposit/Withdraw Tokens to/from ParaTime](../../general/manage-tokens/cli/account.mdx) chapter to learn more.
:::
diff --git a/docs/node/run-your-node/prerequisites/stake-requirements.md b/docs/node/run-your-node/prerequisites/stake-requirements.md
index 62accc3c43..21475b6d56 100644
--- a/docs/node/run-your-node/prerequisites/stake-requirements.md
+++ b/docs/node/run-your-node/prerequisites/stake-requirements.md
@@ -22,14 +22,13 @@ such as [Oasis Scan].
For more information about obtaining information on your entity's account, see
the [Account Get Info] doc.
-Staking thresholds may change in the future. Read [Common staking info] chapter,
-to learn how to check the current network thresholds directly from the
-`oasis-node`.
+Staking thresholds may change in the future. Read the
+[native token information] to see the current values of the network.
[staking thresholds]: ../../genesis-doc.md#staking-thresholds
[Oasis Scan]: https://www.oasisscan.com/validators
[Account Get Info]: ../../../general/manage-tokens/advanced/oasis-cli-tools/get-account-info.md
-[Common staking info]: ../../../general/manage-tokens/advanced/oasis-cli-tools/common-staking-info.md
+[native token information]: ../../../general/manage-tokens/cli/network.md#show-native-token
:::info
diff --git a/external/cli b/external/cli
new file mode 160000
index 0000000000..7ab4f5f3e1
--- /dev/null
+++ b/external/cli
@@ -0,0 +1 @@
+Subproject commit 7ab4f5f3e1c1e33606d802d7a0dd9a891594d560
diff --git a/redirects.js b/redirects.js
index 99a8efa1d3..81d57a4f5a 100644
--- a/redirects.js
+++ b/redirects.js
@@ -3,6 +3,11 @@
/** @type {import('@docusaurus/plugin-client-redirects').PluginOptions} */
const redirectsOptions = {
redirects: [
+ // #200 Restructure docs
+ {
+ to: '/adrs',
+ from: ['/adrs/0000-architectural-decision-records', '/adrs/template'],
+ },
{
to: '/general/manage-tokens/how-to-transfer-rose-into-paratime',
from: [
@@ -10,11 +15,52 @@ const redirectsOptions = {
'/general/manage-tokens/how-to-transfer-rose-into-evm-paratime', // #200 Restructure docs
],
},
- // #200 Restructure docs
{
- to: '/adrs',
- from: ['/adrs/0000-architectural-decision-records', '/adrs/template'],
+ to: '/general/manage-tokens/cli',
+ from: [
+ '/general/manage-tokens/advanced', // #399 Replace oasis-node with Oasis CLI
+ '/general/manage-tokens/advanced/oasis-cli-tools/', // #399 Replace oasis-node with Oasis CLI
+ '/general/manage-tokens/advanced/file-based-signer', // #399 Replace oasis-node with Oasis CLI
+ ],
+ },
+ // TODO: Use fragments (anchors) in destination URLs once https://github.com/facebook/docusaurus/issues/6845 is implemented.
+ {
+ to: '/general/manage-tokens/cli/account',
+ from: [
+ '/general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime', // account#deposit // #399 Replace oasis-node with Oasis CLI
+ ],
},
+ {
+ to: '/general/manage-tokens/cli/network',
+ from: [
+ '/general/manage-tokens/advanced/oasis-cli-tools/common-staking-info', // network#show-native-token // #399 Replace oasis-node with Oasis CLI
+ ],
+ },
+ {
+ to: '/general/manage-tokens/cli/setup',
+ from: [
+ '/general/manage-tokens/advanced/oasis-cli-tools/prerequisites', // #399 Replace oasis-node with Oasis CLI
+ '/general/manage-tokens/advanced/oasis-cli-tools/setup', // #399 Replace oasis-node with Oasis CLI
+/*
+ ,
+ '',
+ 'general/manage-tokens/advanced/oasis-cli-tools/list-accounts',
+ 'general/manage-tokens/advanced/oasis-cli-tools/get-account-info',
+ 'general/manage-tokens/advanced/oasis-cli-tools/get-account-nonce',
+ 'general/manage-tokens/advanced/oasis-cli-tools/address',
+ 'general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens',
+ 'general/manage-tokens/advanced/oasis-cli-tools/delegate-tokens',
+ 'general/manage-tokens/advanced/oasis-cli-tools/reclaim-tokens',
+ 'general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime',
+ 'general/manage-tokens/advanced/oasis-cli-tools/gas-costs',*/
+ ],
+ },
+ // {
+ // to: '/general/manage-tokens/cli/wallet',
+ // from: [
+ // ''
+ // ]
+ // },
{
to: '/get-involved/',
from: ['/general/community-resources/community-hub', '/general/community-resources/community-made-resources', '/general/oasis-network/connect-with-us'],
@@ -51,14 +97,14 @@ const redirectsOptions = {
to: '/dapp/cipher/',
from: '/oasis-sdk/contract/getting-started',
},
- {
+ {
to: '/dapp/sapphire/',
from: '/general/developer-resources/sapphire-paratime',
- },
- {
+ },
+ {
to: '/dapp/sapphire/quickstart',
from: ['/general/developer-resources/sapphire-paratime/writing-dapps-on-sapphire', '/dapp/sapphire/writing-dapps-on-sapphire'], // #218 Add sapphire tutorial
- },
+ },
{
to: '/general/oasis-network/faq',
from: '/general/faq/oasis-network-faq',
diff --git a/sidebarGeneral.js b/sidebarGeneral.js
index 65e3f5f598..9780111ce4 100644
--- a/sidebarGeneral.js
+++ b/sidebarGeneral.js
@@ -62,40 +62,31 @@ const sidebars = {
},
'general/manage-tokens/how-to-transfer-rose-into-paratime',
'general/manage-tokens/how-to-transfer-eth-erc20-to-emerald-paratime',
- 'general/manage-tokens/faq',
{
type: 'category',
- label: 'Advanced',
+ label: 'Oasis CLI',
link: {
type: 'doc',
- id: 'general/manage-tokens/advanced/README',
+ id: 'general/manage-tokens/cli/README',
},
items: [
- 'general/manage-tokens/advanced/file-based-signer',
- {
- type: 'category',
- label: 'Oasis CLI Tools',
- link: {
- type: 'doc',
- id: 'general/manage-tokens/advanced/oasis-cli-tools/README',
- },
- items: [
- 'general/manage-tokens/advanced/oasis-cli-tools/prerequisites',
- 'general/manage-tokens/advanced/oasis-cli-tools/setup',
- 'general/manage-tokens/advanced/oasis-cli-tools/common-staking-info',
- 'general/manage-tokens/advanced/oasis-cli-tools/list-accounts',
- 'general/manage-tokens/advanced/oasis-cli-tools/get-account-info',
- 'general/manage-tokens/advanced/oasis-cli-tools/get-account-nonce',
- 'general/manage-tokens/advanced/oasis-cli-tools/address',
- 'general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens',
- 'general/manage-tokens/advanced/oasis-cli-tools/delegate-tokens',
- 'general/manage-tokens/advanced/oasis-cli-tools/reclaim-tokens',
- 'general/manage-tokens/advanced/oasis-cli-tools/deposit-withdraw-tokens-to-from-paratime',
- 'general/manage-tokens/advanced/oasis-cli-tools/gas-costs',
- ]
- },
+ 'general/manage-tokens/cli/setup',
+ 'general/manage-tokens/cli/network',
+ 'general/manage-tokens/cli/paratime',
+ 'general/manage-tokens/cli/wallet',
+ 'general/manage-tokens/cli/account',
+ 'general/manage-tokens/cli/transaction',
+ 'general/manage-tokens/cli/addressbook',
+ 'general/manage-tokens/advanced/oasis-cli-tools/list-accounts',
+ 'general/manage-tokens/advanced/oasis-cli-tools/get-account-nonce',
+ 'general/manage-tokens/advanced/oasis-cli-tools/address',
+ 'general/manage-tokens/advanced/oasis-cli-tools/transfer-tokens',
+ 'general/manage-tokens/advanced/oasis-cli-tools/delegate-tokens',
+ 'general/manage-tokens/advanced/oasis-cli-tools/reclaim-tokens',
+ 'general/manage-tokens/advanced/oasis-cli-tools/gas-costs',
]
},
+ 'general/manage-tokens/faq',
],
},
],
diff --git a/src/editUrl.js b/src/editUrl.js
index 946de20a77..6e74ffeb8f 100644
--- a/src/editUrl.js
+++ b/src/editUrl.js
@@ -4,6 +4,7 @@ const path = require('path');
const gitModules = {
'external/adrs/': 'https://github.com/oasisprotocol/adrs/{mode}/main/',
+ 'external/cli/': 'https://github.com/oasisprotocol/cli/{mode}/master/',
'external/oasis-core/': 'https://github.com/oasisprotocol/oasis-core/{mode}/stable/22.2.x/',
'external/oasis-core-ledger/': 'https://github.com/oasisprotocol/oasis-core-ledger/{mode}/master/',
'external/oasis-sdk/': 'https://github.com/oasisprotocol/oasis-sdk/{mode}/main/',
diff --git a/src/remark/cross-repo-links.js b/src/remark/cross-repo-links.js
index de6a3c6bdc..172bf78208 100644
--- a/src/remark/cross-repo-links.js
+++ b/src/remark/cross-repo-links.js
@@ -1,5 +1,6 @@
const visit = require('unist-util-visit');
+const cliRegex = /https:\/\/github\.com\/oasisprotocol\/cli\/blob\/master\/docs\/(.*)\.mdx?(#.*)?/;
const oasisSdkContractRegex = /https:\/\/github\.com\/oasisprotocol\/oasis-sdk\/blob\/main\/docs\/contract\/(.*)\.mdx?(#.*)?/;
const oasisSdkRuntimeRegex = /https:\/\/github\.com\/oasisprotocol\/oasis-sdk\/blob\/main\/docs\/runtime\/(.*)\.mdx?(#.*)?/;
const oasisCoreRegex = /https:\/\/github\.com\/oasisprotocol\/oasis-core\/blob\/master\/docs\/(.*)\.mdx?(#.*)?/;
@@ -27,6 +28,8 @@ module.exports = function (options) {
node.url = node.url.replace(oasisSdkContractRegex, '/dapp/cipher/$1$2');
} else if (oasisSdkRuntimeRegex.test(node.url)) {
node.url = node.url.replace(oasisSdkRuntimeRegex, '/paratime/$1$2');
+ } else if (cliRegex.test(node.url)) {
+ node.url = node.url.replace(cliRegex, '/general/manage-tokens/cli/$1$2');
} else if (oasisCoreRegex.test(node.url)) {
node.url = node.url.replace(oasisCoreRegex, '/core/$1$2');
} else if (oasisCoreLedgerRegex.test(node.url)) {