Zano protocol

Build apps that protect payment details.

Give customers payment privacy by default. Use Zano’s built-in transfers, assets and swaps with open wallet tooling.

Build for your customers’ financial privacy.

Protect payment details in your wallet, checkout or marketplace with Zano’s built-in transaction types.

Confidential Assets

Give your token payment privacy

Protect transfer details for stablecoins, rewards or wrapped assets. Asset registration remains public.

Addresses
Protected
Amounts
Protected
Asset type
Protected

Issue, mint, burn, update and optionally whitelist assets without running another chain.

Explore Confidential Assets (opens in a new tab)

More ways to build

Choose a feature for its protocol details and documentation.

Protect customer payment detailsConfidential transfers

Accept ZANO or Confidential Assets with customer addresses and payment amounts protected on-chain.

Protocol detail

Standard transfers protect sender, receiver, amount and asset type from public exposure by default.

Read Confidential transfers documentation (opens in a new tab)
Build non-custodial marketsIonic Swaps

Exchange ZANO and Confidential Assets directly between participants in a single collaborative transaction.

Protocol detail

Settle a peer-to-peer asset exchange without handing custody to an intermediary.

Read Ionic Swaps documentation (opens in a new tab)
Coordinate marketplace settlementEscrow contracts

Build commerce flows where buyer and seller lock collateral and complete, cancel or terminate an agreement on-chain.

Protocol detail

Use Zano's built-in buyer and seller transaction framework.

Read Escrow contracts documentation (opens in a new tab)
Use readable on-chain identitiesAliases

Let people receive funds at a memorable alias instead of a long wallet address.

Protocol detail

Register a readable payment name with a public link to its wallet address.

Read Aliases documentation (opens in a new tab)
Build staking toolsZarcanum

Help full-node users stake with their balance and staking identity protected on-chain.

Protocol detail

Zarcanum verifies staking eligibility while protecting the staked balance from public exposure.

Read Zarcanum documentation (opens in a new tab)

Create your first Confidential Asset.

Create a Confidential Asset from the wallet you control. The Wallet RPC registers it on-chain and returns the identifiers your integration needs to track it.

Before you start

  • A synchronized Zano daemon
  • An existing wallet running in RPC mode
  • Asset amounts expressed in atomic units
Open the Wallet RPC setup guide (opens in a new tab)

Create a token with Wallet RPC

Current mainnet API
Start the wallet RPCLocal endpoint on port 12233

Run a wallet that already exists and point it at your synchronized daemon. Keep the RPC bind address on loopback unless you have secured the endpoint yourself.

./simplewallet --wallet-file example.wallet \
  --password YOUR_WALLET_PASSWORD \
  --rpc-bind-ip 127.0.0.1 \
  --rpc-bind-port 12233 \
  --daemon-address 127.0.0.1:11211
Read the wallet RPC prerequisites (opens in a new tab)
Send the deploy_asset requestAsset descriptor + initial destination

Adapt this example from the Wallet RPC documentation. Replace its owner key and destination address with values for your wallet, then save it as deploy-asset.json. With 12 decimal places, one whole token equals 1012 atomic units.

{
  "id": 0,
  "jsonrpc": "2.0",
  "method": "deploy_asset",
  "params": {
    "asset_descriptor": {
      "current_supply": 500000000000000000,
      "decimal_point": 12,
      "full_name": "Zano wrapped ABC",
      "hidden_supply": false,
      "meta_info": "{ \"some_arbitrary_field_name\": \"some arbitrary value\"}",
      "owner": "f74bb56a5b4fa562e679ccaadd697463498a66de4f1760b2cd40f11c3a00a7a8",
      "owner_eth_pub_key": "",
      "ticker": "ZABC",
      "total_max_supply": 1000000000000000000
    },
    "destinations": [{
      "address": "ZxBvJDuQjMG9R2j4WnYUhBYNrwZPwuyXrC7FHdVmWqaESgowDvgfWtiXeNGu8Px9B24pkmjsA39fzSSiEQG1ekB225ZnrMTBp",
      "amount": 10000000000000,
      "asset_id": "cc608f59f8080e2fbfe3c8c80eb6e6a953d47cf2d6aebd345bada3a1cab99852"
    }],
    "do_not_split_destinations": false
  }
}
curl http://127.0.0.1:12233/json_rpc \
  -H 'Content-Type: application/json' \
  --data @deploy-asset.json
Store the returned IDsAsset ID + registration transaction

The result returns new_asset_id and tx_id. Registration completes after that transaction confirms. The example below uses placeholder IDs.

{
  "id": 0,
  "jsonrpc": "2.0",
  "result": {
    "new_asset_id": "40fa6db923728b38962718c61b4dc3af1acaa1967479c73703e260dc3609c58d",
    "tx_id": "f74bb56a5b4fa562e679ccaadd697463498a66de4f1760b2cd40f11c3a00a7a8"
  }
}
Open the deploy_asset reference (opens in a new tab)

Available now and in development.

Zano L1 today

Private assets and protocol primitives for payments, swaps, marketplaces and identity. It is not EVM-compatible and does not run arbitrary smart contracts.

Upcoming

Execution Layer

The planned EVM sidechain targets Solidity tooling and bridged ZANO gas. Its testnet and mainnet dates remain roadmap estimates.