# Hippius - Distributed Cloud Storage > Hippius is a distributed cloud: encrypted file storage (Drive), S3-compatible object storage, and a registry for AI models and containers (Hub). One account pays for all of them. This file is the long reference for the whole product. The short index is https://docs.hippius.com/llms.txt The commands an agent can run are in Tools an agent can run. S3 is written out in full after that. ## Table of Contents - [S3 documentation map](#s3-documentation-map) - [What is Hippius?](#what-is-hippius) - [Tools an agent can run](#tools-an-agent-can-run) - [S3 Storage — Quickstart](#s3-storage--quickstart) - [S3 Storage — Advanced Usage](#s3-storage--advanced-usage) - [S3 Storage — Python](#s3-storage--python) - [S3 Storage — JavaScript](#s3-storage--javascript) - [S3 Storage — AWS CLI](#s3-storage--aws-cli) - [S3 Storage — rclone](#s3-storage--rclone) - [S3 Storage — Compatibility](#s3-storage--compatibility) - [Storage Architecture](#storage-architecture) - [Run a Miner](#run-a-miner) - [Miner CLI](#miner-cli) - [Staking](#staking) - [Management API](#management-api) --- ## S3 documentation map Canonical docs URLs. Prefer these when linking or fetching. - Getting Started: https://docs.hippius.com/use/quickstart - Advanced Usage: https://docs.hippius.com/storage/s3/advanced - Compatibility matrix: https://docs.hippius.com/storage/s3/compatibility - Object Lock: https://docs.hippius.com/storage/s3/object-lock - Python: https://docs.hippius.com/storage/s3/python - JavaScript: https://docs.hippius.com/storage/s3/javascript - AWS CLI: https://docs.hippius.com/storage/s3/aws-cli - rclone: https://docs.hippius.com/storage/s3/rclone - Troubleshooting: https://docs.hippius.com/use/troubleshooting - Nextcloud: https://docs.hippius.com/storage/s3/examples/nextcloud - Duplicati: https://docs.hippius.com/storage/s3/examples/duplicati - Management API: https://docs.hippius.com/use/api - Console S3 Buckets: https://docs.hippius.com/use/console/s3 - Console S3 Migrations: https://docs.hippius.com/use/console/migrations - Product index: https://docs.hippius.com/llms.txt Old URLs that still resolve: - /storage/s3/integration → /storage/s3/advanced - /use/s3-token-management → /storage/s3/advanced#give-an-app-scoped-credentials - /storage/s3/examples/file-sharing → /storage/s3/advanced#share-a-time-limited-download - /storage/s3/examples/video-hosting → /storage/s3/advanced#host-a-static-site-or-stream-video - /storage/s3/examples/image-gallery → /storage/s3/advanced#make-a-bucket-or-object-public - /storage/s3/examples/static-site → /storage/s3/advanced#host-a-static-site-or-stream-video --- ## What is Hippius? Hippius is a distributed cloud. Store encrypted files, serve objects over S3, and publish models and containers. Storage is Arion (Reed-Solomon erasure coding and CRUSH placement) plus a Substrate chain. ### Products | Product | What an agent needs | Open | |---|---|---| | Drive | Encrypted files in the browser. Not S3. Files do not cross between them. | https://docs.hippius.com/use/drive | | Shared drives | A Drive someone else owns and invited you into. They pay for the storage. It appears in the console under Storage after the invite. There is no published guide yet. | | | S3 | S3-compatible API. Endpoint https://s3.hippius.com only. Region `decentralized`. Path-style. Access key ids start with `hip_`. | https://docs.hippius.com/use/quickstart | | Hub | Models and container images. Command: `hippius-hub`. Creating a namespace needs at least 10 credits (`REGISTRY_MIN_CREDITS`). The plan price stays zero. | https://docs.hippius.com/registry | | Desktop | Sync folders on macOS, Windows, and Linux. There is no CLI. The agent file is on the staging branch. | https://raw.githubusercontent.com/thenervelab/hippius-desktop/staging/llms.txt | | Mobile | Drive on Android, on Google Play. The iPhone app is not released. There is no CLI. | https://docs.hippius.com/use/mobile/getting-started | | Console | Sign up, pay, API token, Drive and S3 keys. There is no CLI. The agent calls https://api.hippius.com with the account token. | https://docs.hippius.com/use/console/getting-started | | Drive SDK | Script Drive with encryption on the client. Command: `hippius-drive`. Install from git, not PyPI. | https://raw.githubusercontent.com/thenervelab/hippius-drive-sdk/main/llms.txt | | Bridge | No CLI. The user signs each step in a browser wallet. Alpha and hAlpha are pegged 1:1. Minimum 15. | https://docs.hippius.com/use/console/bridge | | Compute | No CLI and no public API. Not offered yet. | https://docs.hippius.com/use/console/virtual-machines | ### Authentication Sign in at https://console.hippius.com with Google, GitHub, Apple, or an existing 12-word access key. There is no email and password sign-in. An agent cannot create the account. That happens in the browser or the app. A 12-word access key creates a wallet-only account. It has no real email address, so it gets no lifecycle mail. Drive has no free plan: subscribe before the first upload. S3 and Hub work the same as on any other account. S3 access keys (`hip_*`) are created in the console and used with any S3 client. The account API token is on console Settings: https://console.hippius.com/dashboard/settings ### Paying Top up the balance, then subscribe to a plan. A top-up does not add storage. 1 credit = 1 USD. https://docs.hippius.com/use/console/billing Four top-up methods, on Billing: - Card, through Stripe, from $10 to $10,000, or a monthly auto reload. - Bitcoin, on-chain or Lightning, from $20 to $10,000. Lightning is credited in seconds. On-chain waits for one confirmation. - USDC on Base, from a browser wallet, from $5 to $10,000. 1 USDC is 1 credit. - TAO, from a connected wallet or by sending to the deposit address. Minimum $20. A transfer cannot be reversed. Subscribe from that product's plans page. A card payment lands on the balance and the plan is paid from it. A plan can also be paid from the balance already there. Hub plans are paid from the balance only. Google, GitHub, and Apple accounts include the Free Drive Plan (10 GB). S3 starts on pay as you go at $6 per TB per month. A plan is optional. Open a support ticket with the account API token: POST https://api.hippius.com/api/support/tickets/ with subject, priority, category, and description. --- ## Tools an agent can run `hipc` and the storage commands in `pip install hippius` are deprecated. Do not use them. Chain registration still uses `hippius`. S3 uses any S3 client, and that manual starts at S3 Storage — Quickstart. The tools below are the other products. An agent cannot create the account or approve a browser login. The user does that at https://console.hippius.com. The API token is on https://console.hippius.com/dashboard/settings ### Hub `hippius-hub` publishes models and container images. Full cheat sheet: https://raw.githubusercontent.com/thenervelab/hippius-hub/main/llms.txt ```bash pip install hippius_hub hippius-hub login --hippius-token "$HIPPIUS_TOKEN" hippius-hub registry check my-models hippius-hub registry provision my-models --docker-login hippius-hub upload my-models/qwen-7b ./qwen-7b --revision v1 ``` Creating a namespace needs at least 10 credits on the account. A zero balance is refused. The plan price stays zero. Top up, then provision. Two logins. `hippius-hub registry` and `hippius-hub models` use the API token saved by `login --hippius-token`. `upload`, `download`, `docker`, and `oras` use the registry robot secret that `provision` prints once. Lost that secret: `hippius-hub registry rotate-token --docker-login`. The old secret stops working immediately. Namespace names are lowercase letters, digits, and dashes, 1 to 63 characters. Artifacts live at `registry.hippius.com//:`. Public images pull with no login. Hub plans are paid from the balance only. ### Drive `hippius-drive` reads and writes the same encrypted Drive as the console, the desktop app, and the Android app. It is alpha. It is not S3: a file put here does not appear in a bucket. Full command list: https://raw.githubusercontent.com/thenervelab/hippius-drive-sdk/main/docs/cli.md The package name `hippius-drive` is not on PyPI. Python 3.10 to 3.13. ```bash pip install "git+https://github.com/thenervelab/hippius-drive-sdk" export HIPPIUS_TOKEN=... # console Settings export HIPPIUS_ACCOUNT_SS58=... # the account that token belongs to export HIPPIUS_PASSWORD=... # unlock password. Prompted on a terminal. Required when there is no terminal. hippius-drive init --mnemonic "$RECOVERY_PHRASE" hippius-drive whoami hippius-drive register hippius-drive put report.pdf work/report.pdf hippius-drive ls --all hippius-drive get work/report.pdf out.pdf ``` `init` with no `--mnemonic` generates a new 24-word phrase and prints it once. That phrase does not decrypt files already in the account. Import the account's existing recovery phrase. Do not ask the user to paste the phrase or the unlock password into chat. A token and an address that do not belong together fail `whoami` with 403. Leave the server unset: the CLI probes and uses the first Drive region that answers. Set `HIPPIUS_SERVER_URL` only for a specific server. `share` and `folder-share` create links. `invite` and `drives` are the shared-drive commands. There is no published console guide for shared drives. The CLI page above is the reference. ### Console There is no console CLI. Sign-in, plan checkout in the browser, and anything that needs a wallet signature stay in https://console.hippius.com. After the user copies the API token, call https://api.hippius.com with `Authorization: Token `. ```bash curl -sS -H "Authorization: Token $HIPPIUS_TOKEN" https://api.hippius.com/api/billing/credits/balance/ curl -sS -H "Authorization: Token $HIPPIUS_TOKEN" https://api.hippius.com/api/registry/me/ curl -sS https://api.hippius.com/api/drive/plans/ curl -sS https://api.hippius.com/api/s3/plans/ curl -sS https://api.hippius.com/api/registry/plans/ curl -sS https://api.hippius.com/api/billing/latest-tao-price/ ``` The plan lists and the TAO price answer without a token. Balance and `registry/me` need one. S3 key create, rotate, and revoke are in Management API. The OpenAPI spec is https://api.hippius.com/?format=openapi ### Desktop There is no desktop CLI. The agent cannot click the app, sign in, or read files. The user installs it and signs in themselves. - https://hippius.com/desktop-app - Latest release: https://github.com/thenervelab/hippius-desktop/releases/latest - macOS: `Hippius_universal.dmg` - Windows: `Hippius__x64-setup.exe` or the `.msi` - Linux (Debian and Ubuntu, x86_64): `Hippius__amd64.deb` - Point at the release marked Latest. Pre-releases titled `[BETA]` and `[STAGING]` are not the stable build. Sign-in is Google, GitHub, Apple, or an existing 12-word access key. Guide: https://docs.hippius.com/use/desktop/getting-started Agent file: https://raw.githubusercontent.com/thenervelab/hippius-desktop/staging/llms.txt ### Bridge There is no bridge CLI. The user opens Wallet in the console and uses Bridge Tokens. Guide: https://docs.hippius.com/use/console/bridge The bridge moves Alpha on Bittensor and hAlpha on Hippius. They are pegged 1:1. The minimum is 15 Alpha or 15 hAlpha. It takes about 120 seconds. The only cost is network gas: TAO on the Bittensor side, hAlpha on Hippius. Alpha to hAlpha needs 3 signatures, or 4 when the Alpha must first be moved onto the Hippius validator. hAlpha to Alpha needs 1 signature. The user approves each signature in a browser wallet extension. An agent cannot approve those signatures. ### Compute There is no compute CLI and no public VM API. Hippius VMs are not offered yet: https://docs.hippius.com/use/console/virtual-machines Prices and launch steps are not published. Hub stores images. It does not run them. --- ## S3 Storage — Quickstart Endpoint: https://s3.hippius.com Region: decentralized Signature: AWS Signature V4 Addressing style: path-style Always use https://s3.hippius.com. Do not point clients at other hostnames. Step 1: Create an account at https://console.hippius.com (Google, GitHub, Apple, or a 12-word access key) Step 2: Top up on Billing by card, Bitcoin, USDC, or TAO, then subscribe if the product needs a plan. https://docs.hippius.com/use/console/billing Step 3: Create credentials — Console > S3 Storage > Create Master Token Step 4: Save Access Key ID (hip_...) and Secret Key — the secret cannot be retrieved after creation IMPORTANT: ETH wallets, TAO wallets, and Polkadot browser extensions are NOT used for S3 access. Card, Bitcoin, USDC, and TAO pay for credits. They do not authenticate S3 requests. ### First upload (Python) pip install minio from minio import Minio from io import BytesIO client = Minio("s3.hippius.com", access_key="hip_your_key", secret_key="your_secret", secure=True, region="decentralized") client.make_bucket("my-first-bucket") content = b"Hello from Hippius!" client.put_object("my-first-bucket", "hello.txt", BytesIO(content), len(content), content_type="text/plain") print("Uploaded!") ### First upload (AWS CLI) export AWS_ACCESS_KEY_ID="hip_your_key" export AWS_SECRET_ACCESS_KEY="your_secret" aws s3 mb s3://my-bucket --endpoint-url https://s3.hippius.com aws s3 cp file.txt s3://my-bucket/ --endpoint-url https://s3.hippius.com --- ## S3 Storage — Advanced Usage Docs: https://docs.hippius.com/storage/s3/advanced Always use https://s3.hippius.com. Region is always `decentralized`. ### Presigned GET (share a download, max 7 days) url = s3.generate_presigned_url("get_object", Params={"Bucket": "my-bucket", "Key": "file.txt"}, ExpiresIn=86400) Do not append extra query parameters to a presigned URL — they invalidate the signature. ### Presigned PUT (browser upload without exposing keys) const uploadUrl = await getSignedUrl(s3, new PutObjectCommand({ Bucket: "my-bucket", Key: "upload.jpg" }), { expiresIn: 300 }); await fetch(uploadUrl, { method: "PUT", body: file, headers: { "Content-Type": file.type } }); ### Public buckets aws s3api put-bucket-acl --bucket my-bucket --acl public-read --endpoint-url https://s3.hippius.com Public URL: https://s3.hippius.com/{bucket}/{key} ### ACLs Permission types: READ, WRITE, READ_ACP, WRITE_ACP, FULL_CONTROL. Always include --grant-full-control for yourself when sharing. aws s3api put-bucket-acl --bucket my-bucket \ --grant-read 'id="their_canonical_id"' \ --grant-full-control 'id="your_canonical_id"' \ --endpoint-url https://s3.hippius.com Hippius extension: grant a single access key with accessKey="hip_...". Master keys bypass ACLs. Sub-tokens need an explicit grant unless scoped to that bucket at creation. ### Sub-tokens Scoped credentials: per-bucket, read-only or read/write, optional expiry. Create in Console > S3 Buckets (https://docs.hippius.com/use/console/s3) or via Management API. Rotate keeps the Access Key ID and issues a new secret. Revoke is immediate. curl -X POST https://api.hippius.com/api/objectstore/sub-tokens/ \ -H "Authorization: Token YOUR_BEARER_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "read-only-backup", "permissions": ["read"]}' curl -X POST https://api.hippius.com/api/objectstore/master-tokens/{id}/revoke/ \ -H "Authorization: Token YOUR_BEARER_TOKEN" curl -X POST https://api.hippius.com/api/objectstore/master-tokens/{id}/rotate/ \ -H "Authorization: Token YOUR_BEARER_TOKEN" ### Large files Console upload cap is 100 MB. Use multipart via AWS CLI / SDKs for larger objects (up to ~5 TiB). ### Object Lock WORM retention (GOVERNANCE / COMPLIANCE) and legal holds. COMPLIANCE cannot be bypassed. Docs: https://docs.hippius.com/storage/s3/object-lock HCFS S3-compatible gateway (https://docs.hippius.com/hcfs/api/s3-gateway) is NOT s3.hippius.com. --- ## S3 Storage — Python ### boto3 pip install boto3 import boto3 from botocore.config import Config s3 = boto3.client( "s3", endpoint_url="https://s3.hippius.com", aws_access_key_id="hip_your_key", aws_secret_access_key="your_secret", region_name="decentralized", config=Config(signature_version="s3v4", s3={"addressing_style": "path"}), ) # Create bucket s3.create_bucket(Bucket="my-bucket") # Upload from disk s3.upload_file("local.txt", "my-bucket", "remote.txt") # Upload from memory s3.put_object(Bucket="my-bucket", Key="hello.txt", Body=b"Hello!") # Download to disk s3.download_file("my-bucket", "remote.txt", "local.txt") # Download to memory obj = s3.get_object(Bucket="my-bucket", Key="hello.txt") print(obj["Body"].read().decode()) # List objects for obj in s3.list_objects_v2(Bucket="my-bucket").get("Contents", []): print(obj["Key"], obj["Size"]) # Presigned URL (1 hour) url = s3.generate_presigned_url("get_object", Params={"Bucket": "my-bucket", "Key": "file.txt"}, ExpiresIn=3600) ### minio SDK pip install minio from minio import Minio from io import BytesIO from datetime import timedelta client = Minio("s3.hippius.com", access_key="hip_your_key", secret_key="your_secret", secure=True, region="decentralized") client.make_bucket("my-bucket") client.fput_object("my-bucket", "remote.txt", "local.txt") client.fget_object("my-bucket", "remote.txt", "downloaded.txt") for obj in client.list_objects("my-bucket", recursive=True): print(obj.object_name, obj.size) url = client.presigned_get_object("my-bucket", "file.txt", expires=timedelta(hours=1)) --- ## S3 Storage — JavaScript ### AWS SDK v3 npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner import { S3Client, CreateBucketCommand, PutObjectCommand, GetObjectCommand, ListObjectsV2Command } from "@aws-sdk/client-s3"; import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; const s3 = new S3Client({ endpoint: "https://s3.hippius.com", region: "decentralized", credentials: { accessKeyId: "hip_your_key", secretAccessKey: "your_secret" }, forcePathStyle: true, }); await s3.send(new CreateBucketCommand({ Bucket: "my-bucket" })); await s3.send(new PutObjectCommand({ Bucket: "my-bucket", Key: "hello.txt", Body: "Hello!", ContentType: "text/plain" })); const res = await s3.send(new GetObjectCommand({ Bucket: "my-bucket", Key: "hello.txt" })); const text = await res.Body.transformToString(); const list = await s3.send(new ListObjectsV2Command({ Bucket: "my-bucket" })); for (const obj of list.Contents ?? []) console.log(obj.Key, obj.Size); const url = await getSignedUrl(s3, new GetObjectCommand({ Bucket: "my-bucket", Key: "file.txt" }), { expiresIn: 3600 }); ### Browser uploads with presigned URLs Server generates presigned PUT URL, browser uses it — no credentials in the browser: // Server const uploadUrl = await getSignedUrl(s3, new PutObjectCommand({ Bucket: "my-bucket", Key: "upload.jpg" }), { expiresIn: 300 }); // Browser await fetch(uploadUrl, { method: "PUT", body: file, headers: { "Content-Type": file.type } }); --- ## S3 Storage — AWS CLI # Install: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html aws configure --profile hippius # AWS Access Key ID: hip_your_key # AWS Secret Access Key: your_secret # Default region: decentralized aws s3 ls --profile hippius --endpoint-url https://s3.hippius.com aws s3 mb s3://my-bucket --profile hippius --endpoint-url https://s3.hippius.com aws s3 cp ./file.txt s3://my-bucket/ --profile hippius --endpoint-url https://s3.hippius.com aws s3 cp s3://my-bucket/file.txt . --profile hippius --endpoint-url https://s3.hippius.com aws s3 sync ./folder s3://my-bucket/folder --profile hippius --endpoint-url https://s3.hippius.com aws s3 rm s3://my-bucket/file.txt --profile hippius --endpoint-url https://s3.hippius.com aws s3 presign s3://my-bucket/file.txt --expires-in 3600 --profile hippius --endpoint-url https://s3.hippius.com --- ## S3 Storage — rclone # Install: https://rclone.org/install/ # ~/.config/rclone/rclone.conf [hippius] type = s3 provider = Other access_key_id = hip_your_key secret_access_key = your_secret endpoint = https://s3.hippius.com region = decentralized acl = private rclone lsd hippius: # list buckets rclone ls hippius:my-bucket # list files rclone copy ./file.txt hippius:my-bucket/ # upload file rclone sync ./folder hippius:my-bucket/folder # sync folder rclone copy hippius:my-bucket/file.txt ./downloads/ # download # Mount as local drive (requires FUSE) mkdir -p ~/hippius-mount rclone mount hippius:my-bucket ~/hippius-mount --daemon --- ## S3 Storage — Compatibility Docs: https://docs.hippius.com/storage/s3/compatibility Supported operations: - Bucket: CreateBucket, DeleteBucket, ListBuckets, HeadBucket, GetBucketLocation - Object: PutObject, GetObject, HeadObject, DeleteObject, CopyObject - List: ListObjects, ListObjectsV2 - Multipart: InitiateMultipartUpload, UploadPart, CompleteMultipartUpload, AbortMultipartUpload (up to ~5 TiB) - Tags: PutObjectTagging, GetObjectTagging, DeleteObjectTagging, PutBucketTagging, GetBucketTagging - ACL: PutBucketAcl, GetBucketAcl, PutObjectAcl, GetObjectAcl - Policy: PutBucketPolicy, GetBucketPolicy, DeleteBucketPolicy - Versioning: PutBucketVersioning (Enabled only; Suspended returns 501), GetBucketVersioning, ListObjectVersions - Object Lock: Put/Get ObjectLockConfiguration, Retention, LegalHold (GOVERNANCE and COMPLIANCE) - Presigned URLs GET/PUT/DELETE (max 7 days), range requests, video streaming - Lifecycle: basic expiration rules only Not supported: S3 Select, POST Object, virtual-hosted style, event notifications, S3 Batch Operations, cross-region replication (network replicates automatically) ### Public buckets # Make bucket public (AWS CLI) aws s3api put-bucket-acl --bucket my-bucket --acl public-read --endpoint-url https://s3.hippius.com # Or use bucket policy (Python) import json policy = {"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": [f"arn:aws:s3:::my-bucket/*"]}]} client.set_bucket_policy("my-bucket", json.dumps(policy)) Public URL format: https://s3.hippius.com/{bucket-name}/{object-key} ### Rate limits 100 requests per minute per account --- ## Storage Architecture Arion is Hippius's purpose-built distributed storage engine. ### How it works Upload flow: Client → Gateway (HTTP, :3000) → Validator (:3002) ↓ Reed-Solomon encode k=10 data + m=20 parity shards 2 MiB stripes ↓ CRUSH placement (topology-aware) ↓ P2P push to Miners (:3001+) via QUIC/Iroh Download flow: Gateway fetches any k=10 shards from miners → reconstructs → returns to client Recovery: Warden audits miners for proof-of-storage Validator detects offline miners → fetches k=10 shards → rebuilds → places on new miners ### Key properties - Any 10 of 30 shards reconstruct the original file - CRUSH algorithm: deterministic placement, no central directory lookup - QUIC-based P2P: low latency, encrypted, multiplexed - Proof-of-storage: Plonky3 ZK circuits (pos-circuits) - Chain submitter publishes cluster maps to Hippius blockchain --- ## Run a Miner Miners provide storage capacity and earn rewards. Requires running two components: 1. Hippius Blockchain Node (for on-chain registration) 2. Arion Miner (actual storage mining) ### Hardware requirements - CPU: 4+ dedicated cores (8+ vCPUs recommended) - RAM: 16 GB minimum (32 GB recommended) - Storage: 2 TB minimum (NVMe SSD preferred) - Network: 1 Gbps, static public IP ### Step 1: Run blockchain node git clone https://github.com/thenervelab/thebrain.git && cd thebrain cargo build --release ./target/release/hippius \ --base-path /var/lib/hippius/chain \ --chain mainnet \ --bootnodes /ip4/198.244.165.236/tcp/30333/ws/p2p/12D3KooWAXNTAcp2d8rFG6iW43nYhkciWepUFJxr8yzZbELyYByb \ --offchain-worker Always ### Step 2: Run Arion miner git clone https://github.com/thenervelab/arion.git && cd arion cargo build --release --bin miner export VALIDATOR_NODE_ID="185651f2fb19c919d40c3c58660cf463ebe7ded1c1a326eef4dad28292171cdb" export WARDEN_NODE_ID="70d27c756b0f9a71fc89a6e571c9bdf9e63f8531e125714d0f164be0e11e6846" export FAMILY_ID="" export STORAGE_PATH="/var/lib/hippius/miner/data" export MAX_STORAGE=2000000000000 # 2TB in bytes ./target/release/miner ### Step 3: Register on-chain See full guide at: https://docs.hippius.com/earn/arion/running-miner --- ## Miner CLI `miner-cli` manages on-chain miner lifecycle. git clone https://github.com/thenervelab/arion.git && cd arion cargo build --release --bin miner-cli # Show miner node ID miner-cli --chain-ws-url wss://rpc.hippius.network --family-mnemonic-file /secure/mnemonic.txt show-node-id # Register miner miner-cli --chain-ws-url wss://rpc.hippius.network --family-mnemonic-file /secure/mnemonic.txt \ register-child --child-ss58 5FHneW46... # Deregister (begins unbonding) miner-cli --chain-ws-url wss://rpc.hippius.network --family-mnemonic-file /secure/mnemonic.txt \ deregister-child --child-ss58 5FHneW46... # Claim deposit after unbonding miner-cli --chain-ws-url wss://rpc.hippius.network --family-mnemonic-file /secure/mnemonic.txt \ claim-unbonded --child-ss58 5FHneW46... Registration model: Family account (coldkey) → Child account (hotkey, receives rewards) → NodeId (P2P identity) --- ## Staking Hippius uses Nominated Proof of Stake (NPoS). Stake hAlpha tokens to nominate validators and earn rewards. - Stake via Console > Wallet > Staking, or via Desktop App - Unstaking triggers an unbonding period before funds are available - No minimum stake required - Rewards distributed per era (~24 hours) Token types: - Alpha: native Hippius chain, used for staking and governance - hAlpha: EVM-compatible, used for DeFi and exchanges --- ## Management API Docs: https://docs.hippius.com/use/api Full OpenAPI spec: https://api.hippius.com/?format=openapi Auth: account API token from https://console.hippius.com/dashboard/settings Header: Authorization: Token Browser OAuth handoff, not the agent path: POST https://api.hippius.com/api/auth/exchange/ with JSON {"code": "..."} ### Endpoints Token management: GET/POST https://api.hippius.com/api/objectstore/master-tokens/ POST https://api.hippius.com/api/objectstore/master-tokens/{id}/revoke/ POST https://api.hippius.com/api/objectstore/master-tokens/{id}/rotate/ GET/POST https://api.hippius.com/api/objectstore/sub-tokens/ Billing: GET https://api.hippius.com/api/billing/credits/balance/ GET https://api.hippius.com/api/billing/latest-tao-price/ POST https://api.hippius.com/api/billing/stripe/create-checkout-session/ POST https://api.hippius.com/api/billing/stripe/create-subscription/ GET https://api.hippius.com/api/billing/stripe/subscription-plans/ POST https://api.hippius.com/api/billing/btcpay/create-invoice/ POST https://api.hippius.com/api/billing/x402/topup/ POST https://api.hippius.com/api/billing/transactions/ GET https://api.hippius.com/api/billing/transactions/ GET https://api.hippius.com/api/billing/transactions/{id}/ Support: POST https://api.hippius.com/api/support/tickets/ --- ## Links - Website: https://hippius.com - Console: https://console.hippius.com - Documentation: https://docs.hippius.com - Docs for agents: https://docs.hippius.com/llms.txt - Full docs for agents: https://docs.hippius.com/llms-full.txt - Getting Started: https://docs.hippius.com/use/quickstart - Advanced Usage: https://docs.hippius.com/storage/s3/advanced - Compatibility: https://docs.hippius.com/storage/s3/compatibility - Management API docs: https://docs.hippius.com/use/api - API: https://api.hippius.com - Pricing: https://hippius.com/pricing - Drive: https://docs.hippius.com/use/drive - GitHub: https://github.com/thenervelab - Discord: https://discord.com/channels/1298001698874327131/1442875352484548609 - X/Twitter: https://x.com/Hippius_cloud - LinkedIn: https://www.linkedin.com/company/hippius