mirror of
https://github.com/aljazceru/ark.git
synced 2025-12-17 04:04:21 +01:00
Add gh/download links & Update roadmap (#109)
* adds homepage (wip) * fix footer links * update nomenclature link on blog post * small fixes and markdown format * link fix * make all docs links relative * fix vtxo links * fix errors with Safari * improves arm detection * fix bottom color * update roadmap * adds faucet instructions * change ark-cli instructions to accomodate PR 117 * instructions fixes to accomodate onboarding; ui improvements
This commit is contained in:
@@ -24,7 +24,7 @@ Ark is a promising second-layer solution for Bitcoin that improves the scalabili
|
||||
- **Secure**: Ark is a secure solution that is built on top of the Bitcoin blockchain.
|
||||
|
||||
:::tip
|
||||
It's recommended to read the [nomenclature](/learn/nomenclature) first.
|
||||
It's recommended to read the [nomenclature](/docs/learn/nomenclature) first.
|
||||
:::
|
||||
|
||||
## Ark liquidity requirements
|
||||
|
||||
@@ -29,7 +29,7 @@ Should the digital bank cease to exist, **users can still retrieve their digital
|
||||
|
||||
### 🔨 How Does it Work?
|
||||
|
||||
Start by exploring the [Nomenclature](/docs/learn/nomenclature.md) to familiarize yourself with key concepts and terminology. Then, learn how to [Board the Ark](/docs/learn/boarding.md), [Send Payments](/docs/learn/payments.md), and eventually [Leave the Ark](/docs/learn/leaving.md) to withdraw your funds back to the Bitcoin blockchain in case of server unresponsiveness.
|
||||
Start by exploring the [Nomenclature](./learn/nomenclature.md) to familiarize yourself with key concepts and terminology. Then, learn how to [Board the Ark](./learn/boarding.md), [Send Payments](./learn/payments.md), and eventually [Leave the Ark](./learn/leaving.md) to withdraw your funds back to the Bitcoin blockchain in case of server unresponsiveness.
|
||||
|
||||
### 🏃♀️ Running Ark
|
||||
|
||||
@@ -40,8 +40,8 @@ The Ark reference implementation is currently under development. Please check ba
|
||||
|
||||
You can join an existing Ark service provider or run your own.
|
||||
|
||||
- [Join an Ark as User](/user/intro.md)
|
||||
- [Operate an Ark as Liquidity Provider](/provider/intro.md)
|
||||
- [Join an Ark as User](./user/intro.md)
|
||||
- [Operate an Ark as Liquidity Provider](./provider/intro.md)
|
||||
|
||||
### 👩💻 Integrate Ark
|
||||
|
||||
@@ -50,7 +50,7 @@ You can join an existing Ark service provider or run your own.
|
||||
The Ark libraries and developer tools are currently under development. Please check back soon for updates.
|
||||
:::
|
||||
|
||||
You can [integrate Ark](/docs/developers/get-started.md) into your wallet or application to enable your users to send and receive Bitcoin payments off-chain.
|
||||
You can [integrate Ark](./developers/get-started.md) into your wallet or application to enable your users to send and receive Bitcoin payments off-chain.
|
||||
|
||||
### ⌨️ Contributing
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ flowchart LR
|
||||
3. Alice adds an output with **2 spending paths**:
|
||||
- This funds will belong to the ASP after 4 weeks:
|
||||
- `(ASP after 4w)`
|
||||
- A covenant output that forces coins to be spent by a [VTXO](./nomenclature#vtxo) with an output script with **2** spending paths:
|
||||
- A covenant output that forces coins to be spent by a [VTXO](./nomenclature#vtxo-1) with an output script with **2** spending paths:
|
||||
- `(Alice + ASP)`
|
||||
- `(Alice after 24h)`
|
||||
4. Alice notifies ASP about the [Boarding transaction](./nomenclature#with-luggage)
|
||||
@@ -39,7 +39,7 @@ flowchart LR
|
||||
|
||||
- Alice don't need to worry about being online to maintain access to her funds after boarding
|
||||
- If ASP is unresponsive, Alice can claim her funds back in **1 year**
|
||||
- ASP must be aware of the timeout on the [Boarding transaction](./nomenclature#with-luggage) to prevent double spending
|
||||
- ASP must be aware of the timeout on the [Boarding transaction](./nomenclature#without-luggage) to prevent double spending
|
||||
|
||||
#### Timeline of events
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Alice wants to leave the Ark and get her funds back on-chain. It requires an on-
|
||||
|
||||
#### Timeline of events
|
||||
|
||||
1. Alice tells ASP she wants to trade [VTXO](./nomenclature#vtxo) for UTXO
|
||||
1. Alice tells ASP she wants to trade [VTXO](./nomenclature#vtxo-1) for UTXO
|
||||
2. ASP (with Alice) prepares next [Pool transaction](./nomenclature#pool-transaction-aka-ark-transaction):
|
||||
- an additional output is added, locked by `Alice`
|
||||
3. Alice creates a [Forfeit transaction](./nomenclature#forfeit-transaction):
|
||||
@@ -20,7 +20,7 @@ Alice wants to leave the Ark and get her funds back on-chain. It requires an on-
|
||||
- signs it and send it to the ASP
|
||||
4. ASP broadcasts [Pool transaction](./nomenclature#pool-transaction-aka-ark-transaction)
|
||||
5. Alice has now a new UTXO
|
||||
6. For at most 4 weeks, Alice will be able to double spend her [VTXO](./nomenclature#vtxo), but if she does it, the ASP will have time (24 hours) to grab the funds from the [VTXO](./nomenclature#vtxo) to itself using the [Forfeit transaction](./nomenclature#forfeit-transaction)
|
||||
6. For at most 4 weeks, Alice will be able to double spend her [VTXO](./nomenclature#vtxo-1), but if she does it, the ASP will have time (24 hours) to grab the funds from the [VTXO](./nomenclature#vtxo-1) to itself using the [Forfeit transaction](./nomenclature#forfeit-transaction)
|
||||
|
||||
### Non-cooperative exit
|
||||
|
||||
@@ -28,7 +28,7 @@ If ASP is unresponsive, Alice can unilaterally exit revealing the branch of the
|
||||
|
||||
#### Timeline of events
|
||||
|
||||
1. Assuming a [VTXO](./nomenclature#vtxo) tree with radix of 2 and 8 [VTXOs](./nomenclature#vtxo):
|
||||
1. Assuming a [VTXO](./nomenclature#vtxo-1) tree with radix of 2 and 8 [VTXOs](./nomenclature#vtxo-1):
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
@@ -49,7 +49,7 @@ flowchart TB
|
||||
```
|
||||
|
||||
2. Assuming VTXO 1 and 2 belong to Alice and Bob
|
||||
3. Alice reveals the [VTXO](./nomenclature#vtxo) tree to spend the [Shared Output](./nomenclature#shared-output-aka-shared-utxo).
|
||||
3. Alice reveals the [VTXO](./nomenclature#vtxo-1) tree to spend the [Shared Output](./nomenclature#shared-output-aka-shared-utxo).
|
||||
4. Alice doesn't need to reveal the entire tree, just enough to validate it:
|
||||
|
||||
```mermaid
|
||||
@@ -62,5 +62,5 @@ flowchart TB
|
||||
tx4 --> v2(VTXO 2)
|
||||
```
|
||||
|
||||
5. Alice will need to wait 24 hours to be able to spend her [VTXO](./nomenclature#vtxo). This gives enough time to the ASP to prevent any double spend attempts by Alice.
|
||||
6. Bob can also spend his [VTXO](./nomenclature#vtxo) in 24 hours, or do nothing and maintain his [VTXO](./nomenclature#vtxo) on the Ark.
|
||||
5. Alice will need to wait 24 hours to be able to spend her [VTXO](./nomenclature#vtxo-1). This gives enough time to the ASP to prevent any double spend attempts by Alice.
|
||||
6. Bob can also spend his [VTXO](./nomenclature#vtxo-1) in 24 hours, or do nothing and maintain his [VTXO](./nomenclature#vtxo-1) on the Ark.
|
||||
|
||||
@@ -73,7 +73,7 @@ Different ASPs can use different ways for users to board their Ark.
|
||||
|
||||
- Initially proposed by [Steven Roose](https://roose.io/presentations/understanding-ark.pdf)
|
||||
- Alice funds an output that can be **accepted as a VTXO** in a future round
|
||||
- A covenant forces the creation of an output with the same script as [**VTXO**](#VTXO). No need for interactivity after funding it, anyone can spend.
|
||||
- A covenant forces the creation of an output with the same script as [**VTXO**](#vtxo-1). No need for interactivity after funding it, anyone can spend.
|
||||
- **ASP** can unlock after a timeout ie. _4 weeks_
|
||||
- Alice is **required to be online** to maintain access to funds: after the timeout, ASP becomes the only owner funds
|
||||
|
||||
|
||||
@@ -2,38 +2,40 @@
|
||||
|
||||
The roadmap provides an overview of the planned projects and modules for the Ark network. It outlines the current development status and expected functionalities of each module. Please note that the roadmap is subject to change as the project evolves.
|
||||
|
||||
For the latest updates and progress reports, please check the [Roadmap](/roadmap/index.md) page regularly.
|
||||
For the latest updates and progress reports, please check the this page regularly.
|
||||
|
||||
## Projects
|
||||
|
||||
### ☁️ `arkd` - Ark Service Provider Daemon
|
||||
|
||||
- Status: Pre-Alpha
|
||||
|
||||
The `arkd` it's the Ark daemon, the initial implementation of an ASP (Ark Service Provider) as a standalone always-on server.
|
||||
It uses [Ocean](https://github.com/vulpemventures/ocean) as Bitcoin and Liquid wallet backend.
|
||||
The `arkd` is the Ark daemon, the initial implementation of an ASP (Ark Service Provider) as a standalone always-on server.
|
||||
It uses [Ocean](https://github.com/vulpemventures/ocean) as Bitcoin and Liquid wallet backend.
|
||||
It exposes a gRPC interface that Ark wallets can use to interact with the Provider.
|
||||
|
||||
- [x] Setup Ocean Wallet for funding rounds
|
||||
- [ ] Start producing rounds from Ark wallets
|
||||
- [x] Register VTXOs to be spent & new VTXOs to be created
|
||||
- [ ] Build congestion control tree
|
||||
- [x] Build congestion control tree
|
||||
- [x] Root node
|
||||
- [x] VTXOs Script
|
||||
- [ ] Tap Leaf Script Validation
|
||||
- [ ] Unroll Clause Transaction Builder.
|
||||
- [x] Tap Leaf Script Validation
|
||||
- [x] Unroll Clause Transaction Builder.
|
||||
- [ ] Verifiy forfeit transactions
|
||||
- [x] Sign & Broadcast Pool transactions
|
||||
- [ ] Sweep expired VTXOs
|
||||
- [x] Sweep expired VTXOs
|
||||
- [ ] Accept VTXOs from Boarding transactions
|
||||
- [ ] Detect double spends to recover with forfeit transactions
|
||||
|
||||
|
||||
### 🌐 Ark Explorer
|
||||
|
||||
Status: Not started yet
|
||||
|
||||
The Ark Explorer module will consist of a console and an Electrum-like server. It will allow users to retrieve VTXOs, pool transactions, and access transaction data. More details about this module will be provided as development progresses.
|
||||
|
||||
### 👩💻 `ark` - Ark CLI
|
||||
|
||||
- Status: Pre-Alpha
|
||||
|
||||
The `ark` module will be an Ark wallet implemented as a command line interface (CLI). It will also be in the alpha status, indicating that it is still being developed and may have some limitations.
|
||||
@@ -52,26 +54,31 @@ The `ark` module will be an Ark wallet implemented as a command line interface (
|
||||
- [ ] Unilateral exit
|
||||
|
||||
### 🚰 Ark Faucet
|
||||
|
||||
Status: Alpha
|
||||
|
||||
The Ark Faucet allows users to request testnet VTXOs for testing purposes, without having to onboard to the Ark provider.
|
||||
|
||||
### 📱 Ark Mobile App
|
||||
|
||||
Status: Not started yet
|
||||
|
||||
The Ark App module will serve as a reference implementation for an Ark wallet as Mobile App. It will provide a user-friendly interface for managing Ark transactions and other wallet-related functionalities.
|
||||
The Ark App module will serve as a reference implementation for an Ark wallet as Mobile App. It will provide a user-friendly interface for managing Ark transactions and other wallet-related functionalities.
|
||||
|
||||
### 🖥️ Ark Desktop App
|
||||
|
||||
Status: Not started yet
|
||||
|
||||
The Ark Desktop module will be a reference implementation for an Ark wallet as a desktop application. It will provide a user-friendly interface for managing Ark transactions and other wallet-related functionalities.
|
||||
|
||||
### 👨🏻💻 Ark SDK
|
||||
|
||||
Status: Not started yet
|
||||
|
||||
Rust-based SDK with first-class support Java, Swift and JavaScript bindings for implementing Ark wallets and interacting with ASPs. It will provide a set of APIs for managing wallets, transactions, and other Ark-related functionalities.
|
||||
|
||||
### 🗼 Ark Tower
|
||||
|
||||
Status: Not started yet
|
||||
|
||||
Delegate automatic refereshes of VTXOs to trust-minimized Ark Tower nodes. Additional information about this module will be shared as development continues.
|
||||
|
||||
@@ -26,15 +26,15 @@ const config = {
|
||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||
({
|
||||
docs: {
|
||||
routeBasePath: '/',
|
||||
routeBasePath: '/docs',
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
editUrl: 'https://github.com/ark-network/ark/edit/master/website/',
|
||||
exclude: [
|
||||
'**/provider/gateway/**',
|
||||
'**/provider/coordinator/**',
|
||||
'**/provider/coordinator/**',
|
||||
'**/provider/treasury/**',
|
||||
'**/user/ark-cli.md'
|
||||
]
|
||||
'**/user/ark-cli.md',
|
||||
],
|
||||
},
|
||||
blog: {
|
||||
showReadingTime: true,
|
||||
@@ -82,19 +82,19 @@ const config = {
|
||||
items: [
|
||||
{
|
||||
label: 'Nomenclature',
|
||||
to: '/learn/nomenclature',
|
||||
to: '/docs/learn/nomenclature',
|
||||
},
|
||||
{
|
||||
label: 'Board an Ark',
|
||||
to: '/learn/boarding',
|
||||
to: '/docs/learn/boarding',
|
||||
},
|
||||
{
|
||||
label: 'Send Payments',
|
||||
to: '/learn/payments',
|
||||
to: '/docs/learn/payments',
|
||||
},
|
||||
{
|
||||
label: 'Leave an Ark',
|
||||
to: '/learn/leaving',
|
||||
to: '/docs/learn/leaving',
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -103,15 +103,15 @@ const config = {
|
||||
items: [
|
||||
{
|
||||
label: 'Overview',
|
||||
to: '/',
|
||||
to: '/docs',
|
||||
},
|
||||
{
|
||||
label: 'Join an Ark',
|
||||
to: '/user/intro',
|
||||
to: '/docs/user/intro',
|
||||
},
|
||||
{
|
||||
label: 'Create an Ark',
|
||||
to: '/provider/intro',
|
||||
to: '/docs/provider/intro',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
128
website/src/pages/buttons.js
Normal file
128
website/src/pages/buttons.js
Normal file
@@ -0,0 +1,128 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
|
||||
const isArm = async () => {
|
||||
// available on Chrome, Edge and Opera
|
||||
if (typeof navigator.userAgentData?.getHighEntropyValues === 'function') {
|
||||
const { architecture } = await navigator.userAgentData.getHighEntropyValues(
|
||||
['architecture']
|
||||
)
|
||||
return architecture === 'arm'
|
||||
}
|
||||
// for Firefox
|
||||
const w = document.createElement('canvas').getContext('webgl')
|
||||
const d = w.getExtension('WEBGL_debug_renderer_info')
|
||||
const g = (d && w.getParameter(d.UNMASKED_RENDERER_WEBGL)) || ''
|
||||
return Boolean(g.match(/Apple M[123]/)) // TODO: Linux
|
||||
}
|
||||
|
||||
const Button = ({ children, onClick, colored }) => {
|
||||
const backgroundColor = colored
|
||||
? 'var(--ifm-color-primary-lightest)'
|
||||
: 'var(--ifm-color-emphasis-200)'
|
||||
return (
|
||||
<button
|
||||
onClick={onClick}
|
||||
style={{
|
||||
backgroundColor,
|
||||
borderRadius: '8px',
|
||||
borderWidth: '1px',
|
||||
cursor: 'pointer',
|
||||
fontSize: '1rem',
|
||||
padding: '1rem',
|
||||
width: '18rem',
|
||||
}}>
|
||||
{children}
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
const Section = ({ children }) => (
|
||||
<div style={{ margin: '10vh 0', maxWidth: '600px' }}>{children}</div>
|
||||
)
|
||||
|
||||
const SpaceBetween = ({ children }) => (
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
}}>
|
||||
{children}
|
||||
</div>
|
||||
)
|
||||
|
||||
export default function Buttons() {
|
||||
const [binaryUrl, setBinaryUrl] = useState('')
|
||||
const [downloadText, setDownloadText] = useState('Download binary')
|
||||
|
||||
const fileURL = (filename) =>
|
||||
`https://install-latest-cli.arkdev.info/latest-release/${filename}`
|
||||
|
||||
useEffect(async () => {
|
||||
const nua = navigator.userAgent
|
||||
const isMacOS = Boolean(nua.match(/OS X /))
|
||||
const isLinux = Boolean(nua.match(/Linux/))
|
||||
const isSafari = Boolean(nua.includes('Safari') && !nua.includes('Chrome'))
|
||||
if (!isMacOS && !isLinux) return // no binaries available
|
||||
if (isSafari) return // Safari hides the CPU architecture
|
||||
const os = isMacOS ? 'darwin' : 'linux'
|
||||
const arch = (await isArm()) ? 'arm64' : 'amd64'
|
||||
const file = `ark-${os}-${arch}`
|
||||
setBinaryUrl(fileURL(file))
|
||||
setDownloadText(`Download ${file}`)
|
||||
})
|
||||
|
||||
const viewOnGithub = () =>
|
||||
window.open('https://github.com/ark-network/ark', '_blank')
|
||||
|
||||
const downloadAlpha = () => {
|
||||
// if we know user OS and architecture, start download immediately
|
||||
if (!binaryUrl) window.open(binaryUrl, '_blank')
|
||||
document.querySelector('#available-binaries').scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<Section>
|
||||
<SpaceBetween>
|
||||
<Button onClick={viewOnGithub}>
|
||||
<SpaceBetween>
|
||||
View on Github
|
||||
<svg
|
||||
className='github_svg__lucide github_svg__lucide-github'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='1em'
|
||||
height='1em'
|
||||
fill='none'
|
||||
stroke='currentColor'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
strokeWidth='2'
|
||||
viewBox='0 0 24 24'>
|
||||
<path d='M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65S8.93 17.38 9 18v4'></path>
|
||||
<path d='M9 18c-4.51 2-5-2-7-2'></path>
|
||||
</svg>
|
||||
</SpaceBetween>
|
||||
</Button>
|
||||
<Button onClick={downloadAlpha} colored={true}>
|
||||
<SpaceBetween>
|
||||
{downloadText}
|
||||
<svg
|
||||
className='download_svg__lucide download_svg__lucide-download'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='1em'
|
||||
height='1em'
|
||||
fill='none'
|
||||
stroke='currentColor'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
strokeWidth='2'
|
||||
viewBox='0 0 24 24'>
|
||||
<path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'></path>
|
||||
</svg>
|
||||
</SpaceBetween>
|
||||
</Button>
|
||||
</SpaceBetween>
|
||||
</Section>
|
||||
)
|
||||
}
|
||||
148
website/src/pages/index.mdx
Normal file
148
website/src/pages/index.mdx
Normal file
@@ -0,0 +1,148 @@
|
||||
import Buttons from './buttons.js'
|
||||
|
||||
# Welcome to Ark
|
||||
|
||||
A second-layer solution designed to scale Bitcoin transactions
|
||||
|
||||
<Buttons />
|
||||
|
||||
## Why Ark?
|
||||
|
||||
Bitcoin is the world's most secure and censorship-resistant blockchain. However, it's not the fastest or the cheapest. Ark is a second-layer solution designed to scale Bitcoin transactions. It uses a shared UTXO model for confidential and off-chain payments through an intermediary server that cannot access your funds.
|
||||
|
||||
## Try it
|
||||
|
||||
Start by downloading a compatible binary.
|
||||
|
||||
### Available binaries
|
||||
|
||||
- [ark-darwin-amd64](https://install-latest-cli.arkdev.info/latest-release/ark-darwin-amd64)
|
||||
- [ark-darwin-arm64](https://install-latest-cli.arkdev.info/latest-release/ark-darwin-arm64)
|
||||
- [ark-linux-amd64](https://install-latest-cli.arkdev.info/latest-release/ark-linux-amd64)
|
||||
- [ark-linux-arm64](https://install-latest-cli.arkdev.info/latest-release/ark-linux-arm64)
|
||||
|
||||
Move it to somewhere on your PATH:
|
||||
|
||||
```bash
|
||||
$ mv <file> /usr/local/bin/ark
|
||||
$ chmod +x /usr/local/bin/ark
|
||||
```
|
||||
|
||||
### Configure the CLI
|
||||
|
||||
The CLI requires an initial setup to initialize the wallet and connect to the ASP:
|
||||
|
||||
```bash
|
||||
$ ark init --password <password> --ark-url https://asp.arkdev.info
|
||||
```
|
||||
|
||||
You can also restore a wallet by specifying the hex encoded private key with the `--prvkey` flag.
|
||||
|
||||
### View balance
|
||||
|
||||
You can see both the onchain and offchain balance of the wallet with:
|
||||
|
||||
```bash
|
||||
$ ark balance
|
||||
```
|
||||
|
||||
To see your balance with your VTXOs expiration details use `--expiry-details`:
|
||||
|
||||
```bash
|
||||
$ ark balance --expiry-details
|
||||
```
|
||||
|
||||
### Receive funds
|
||||
|
||||
You can print your onchain and offchain receiving addresses with:
|
||||
|
||||
```bash
|
||||
$ ark receive
|
||||
```
|
||||
|
||||
#### Add funds to the ark wallet:
|
||||
|
||||
Fund the `onchain_address` from previous command with https://liquidtestnet.com/faucet.
|
||||
|
||||
### Onboard the ark
|
||||
|
||||
```
|
||||
$ ark onboard --amount <amount>
|
||||
```
|
||||
|
||||
This command will send funds from your onchain balance to your offchain balance.
|
||||
|
||||
After confirmation, your ark wallet will be funded and ready to spend offchain.
|
||||
|
||||
:::danger Use sats
|
||||
Amount is always specified in _sats_ unit.
|
||||
:::
|
||||
|
||||
### Make payments
|
||||
|
||||
You can make a payment by sending to either one or many receivers:
|
||||
|
||||
```bash
|
||||
$ ark send --to <address> --amount <amount>
|
||||
$ ark send --receivers '[{"to": "<address>", "amount": <amount>}, ...]'
|
||||
```
|
||||
|
||||
:::tip
|
||||
You can send funds to onchain or offchain addresses:
|
||||
|
||||
- funds to onchain addresses will come from your onchain balance
|
||||
- funds to offchain addresses will come from your offchain balance
|
||||
|
||||
:::
|
||||
|
||||
### Collaborative redemption
|
||||
|
||||
You can redeem your funds onchain collaborating with the ASP:
|
||||
|
||||
```bash
|
||||
$ ark redeem --address <onchain_address> --amount <amount>
|
||||
```
|
||||
|
||||
This command will send funds from your offchain balance to your onchain balance.
|
||||
|
||||
:::info
|
||||
Any change produced with this operation goes to your offchain address.
|
||||
:::
|
||||
|
||||
### Unilateral redemption
|
||||
|
||||
If the ASP is unresponsive you can redeem all your offchain funds unilaterally:
|
||||
|
||||
```bash
|
||||
$ ark redeem --address <onchain_address> --force
|
||||
```
|
||||
|
||||
:::danger
|
||||
The tag `--force` will make ark ignore `--amount` and redeem all funds.
|
||||
:::
|
||||
|
||||
### Help
|
||||
|
||||
You can see all available commands with `help`:
|
||||
|
||||
```
|
||||
$ ark help
|
||||
```
|
||||
|
||||
### Create a second CLI
|
||||
|
||||
To create a second CLI, on a different terminal use a different datadir by exporting the env var `ARK_WALLET_DATADIR`:
|
||||
|
||||
```bash
|
||||
$ export ARK_WALLET_DATADIR=path/to/custom
|
||||
$ ark init --password <password> --ark-url https://asp.arkdev.info
|
||||
```
|
||||
|
||||
:::info
|
||||
By default the CLI uses the following datadir:
|
||||
|
||||
- POSIX (Linux/BSD): ~/.Ark-cli
|
||||
- Mac OS: $HOME/Library/Application Support/Ark-cli
|
||||
- Windows: %LOCALAPPDATA%\Ark-cli
|
||||
- Plan 9: $home/Ark-cli
|
||||
:::
|
||||
Reference in New Issue
Block a user