Skip to main content

Use Cases

Orbinum enables privacy-preserving operations for institutions and individuals who require confidentiality without sacrificing compliance capabilities.


Table of Contents​


Institutional Finance​

Private Treasury Management​

Organizations can manage treasury operations without exposing holdings:

Benefits:

  • Hide treasury size from competitors
  • Prevent front-running on large transactions
  • Maintain audit trail via view keys

Confidential Payroll​

Process salary payments without revealing individual compensation:

TraditionalWith Orbinum
All salaries visible on-chainOnly total payroll amount visible
Employee addresses linked to amountsEmployees receive via private notes
Easy to analyze compensation structurePrivacy preserved, audit possible

Enterprise Operations​

B2B Settlements​

Execute inter-company payments without revealing business relationships:

  • Shield incoming payments from customers
  • Transfer internally between departments
  • Unshield for vendor payments
  • Full audit trail available to authorized parties

Supply Chain Privacy​

Track goods through supply chain while protecting commercial relationships:

  • Suppliers shield product commitments
  • Transfers between intermediaries remain private
  • End recipient verifies provenance via ZK proof

Individual Privacy​

Personal Asset Management​

Individuals can manage digital assets with bank-grade privacy:

  • Shield tokens to hide balance from public view
  • Transfer between personal accounts privately
  • Unshield only when needed for public transactions

Compliance-Ready Privacy​

Unlike fully anonymous systems, Orbinum supports regulatory compliance:

User generates View Key → Shares with auditor → Auditor verifies transactions
→ User privacy preserved from public

Technical Integration​

EVM Compatibility​

Deploy standard Solidity contracts that interact with the shielded pool:

// Precompiled contract at 0x0000000000000000000000000000000000000801
interface IShieldedPool {
/// @dev Payable — the deposited amount travels in msg.value, not in an argument.
function shield(
uint32 assetId,
bytes32 commitment,
bytes calldata encryptedMemo
) external payable;

function unshield(
bytes calldata proof,
bytes32 root,
bytes32 nullifier,
uint32 assetId,
uint256 amount,
bytes32 recipient,
uint256 fee,
bytes32 changeCommitment,
bytes calldata changeEncryptedMemo,
uint32 circuitVersion
) external;
}

Withdrawing carries the proof and every public signal it commits to, so the signature is long by design. The full interface also covers private transfers and the relayer calls.

Building a payment flow​

Your dapp reads the chain and composes the payment; an Orbinum wallet holds the keys and performs the spend. You never handle a spending key.

import {
OrbinumClient,
sealPaymentSlip,
encodePaymentSlip,
} from '@orbinum/protocol';

const client = await OrbinumClient.connect({
substrateWs: 'wss://rpc-1.testnet.orbinum.io',
});

// Seal a slip toward the recipient's viewing public key, then hand it to a wallet.
const envelope = sealPaymentSlip(recipientIvkPacked, {
commitmentHex,
encryptedMemo,
});

const wire = encodePaymentSlip(envelope); // 'orbslip1:…'

See Building on Orbinum for the public client, payment slips, and address helpers, and the wallet SDK for the custody side of the boundary.


Implementation Examples​

Use CaseShieldTransferUnshieldView Key
TreasuryYesYesYesCFO, Auditor
PayrollYesYesYesHR, Employee
B2BYesOptionalYesLegal, Finance
PersonalYesYesYesUser only

Learn More​