ordcash
is an index, block explorer, and command-line wallet. It is experimental
software with no warranty. See LICENSE for more details.
Ordinal theory imbues satoshis with numismatic value, allowing them to be collected and traded as curios.
The ordcash
project is a fork of the original ord
project, providing an additional method for embedding digital artifacts into the Bitcoin blockchain while supporting the rarity, height, and block relationships of satoshis.
While the original ord
system exists,ordcash
offers an alternative that enables projects to inscribe their own collections into Bitcoin and operate their own servers to serve the ordinals. This means that Yuga Labs, for example, could launch their own artifacts and have an inscription number starting from 0, without being limited to the maximum inscription number of 268,567 under the original ord
protocol.
If you would like to learn more about ordcash
, please Join the Discord server channel.
Ordinal numbers are serial numbers for satoshis, assigned in the order in which they are mined, and preserved across transactions.
See the docs for documentation and guides.
See the BIP for a technical description of the assignment and transfer algorithm.
See the project board for currently prioritized issues.
See milestones to get a sense of where the project is and where it's going.
Join the Discord server to chat with fellow ordinal degenerates.
ordcash
relies on Bitcoin Core for private key management and transaction signing.
This has a number of implications that you must understand in order to use
ordcash
wallet commands safely:
-
Bitcoin Core is not aware of inscriptions and does not perform sat control. Using
bitcoin-cli
commands and RPC calls withordcash
wallets may lead to loss of inscriptions. -
ordcash allet
commands automatically load theord
wallet given by the--wallet
option, which defaults to 'ord'. Keep in mind that after running anordcash wallet
command, anord
wallet may be loaded. -
Because
ordcash
has access to your Bitcoin Core wallets,ordcash
should not be used with wallets that contain a material amount of funds. Keep ordinal and cardinal wallets segregated.
Alpha ordcash
wallets are not compatible with wallets created by previous
versions of ordcash
. To migrate, use ordcash wallet send
from the old wallet to
send sats and inscriptions to addresses generated by the new wallet with ord wallet receive
.
ordcash
is written in Rust and can be built from
source. Pre-built binaries are available on the
releases page.
You can install the latest pre-built binary from the command line with:
curl --proto '=https' --tlsv1.2 -fsLS https://ordinalsheight.com/install.sh | bash -s
Once ordcash
is installed, you should be able to run ord --version
on the
command line.
On Debian and Ubuntu, ordcash
requires libssl-dev
when building from source:
sudo apt-get install libssl-dev
You'll also need Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
To build ordcash
from source:
git clone https://github.com/casey/ord.git
cd ord
cargo build --release
The default location for the ordcash
binary once built is ./target/release/ordcash
.
ordcash
requires rustc
version 1.67.0 or later. Run rustc --version
to ensure you have this version. Run rustup update
to get the latest stable release.
ordcash
requires a synced bitcoind
node with -txindex
to build the index of
satoshi locations. ordcash
communicates with bitcoind
via RPC.
If bitcoind
is run locally by the same user, without additional
configuration, ordcash
should find it automatically by reading the .cookie
file
from bitcoind
's datadir, and connecting using the default RPC port.
If bitcoind
is not on mainnet, is not run by the same user, has a non-default
datadir, or a non-default port, you'll need to pass additional flags to ordcash
.
See ord --help
for details.
ordcash
uses env_logger. Set the
RUST_LOG
environment variable in order to turn on logging. For example, run
the server and show info
-level log messages and above:
$ RUST_LOG=info cargo run server
Release commit messages use the following template:
Release x.y.z
- Bump version: x.y.z โ x.y.z
- Update changelog
- Update dependencies
- Update database schema version