Nano Wallets API

Local wallet management for development and testing

OpenAPI Specification

nano-wallets-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Nano RPC Accounts Wallets API
  description: 'The Nano RPC API is a JSON-RPC HTTP interface for interacting with the Nano network. Nano is a feeless, instant digital currency using a block-lattice architecture where each account maintains its own blockchain. The RPC API supports account queries, block operations, wallet management, node diagnostics, and unit conversions. All requests are POST with a JSON body containing an "action" field identifying the RPC command.

    '
  version: 1.0.0
  contact:
    name: Nano Foundation
    url: https://nano.org/en/developers
    email: integrations@nano.org
  license:
    name: BSD-2-Clause
    url: https://opensource.org/licenses/BSD-2-Clause
  termsOfService: https://nano.org/terms-of-use
servers:
- url: http://localhost:7076
  description: Local Nano node (default RPC port)
tags:
- name: Wallets
  description: Local wallet management for development and testing
paths:
  /account_create:
    post:
      operationId: account_create
      summary: Create account in wallet
      description: Generates a new account in the specified wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - account_create
                wallet:
                  type: string
                work:
                  type: boolean
      responses:
        '200':
          description: Created account address
          content:
            application/json:
              schema:
                type: object
                properties:
                  account:
                    type: string
  /account_list:
    post:
      operationId: account_list
      summary: List wallet accounts
      description: Returns all accounts stored in the given wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - account_list
                wallet:
                  type: string
      responses:
        '200':
          description: List of account addresses
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounts:
                    type: array
                    items:
                      type: string
  /account_move:
    post:
      operationId: account_move
      summary: Move accounts between wallets
      description: Moves accounts from one wallet to another.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - source
              - accounts
              properties:
                action:
                  type: string
                  enum:
                  - account_move
                wallet:
                  type: string
                source:
                  type: string
                accounts:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Move result
          content:
            application/json:
              schema:
                type: object
                properties:
                  moved:
                    type: string
  /account_remove:
    post:
      operationId: account_remove
      summary: Remove account from wallet
      description: Removes an account from the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - account
              properties:
                action:
                  type: string
                  enum:
                  - account_remove
                wallet:
                  type: string
                account:
                  type: string
      responses:
        '200':
          description: Removal result
          content:
            application/json:
              schema:
                type: object
  /account_representative_set:
    post:
      operationId: account_representative_set
      summary: Set account representative
      description: Changes the representative for an account in a wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - account
              - representative
              properties:
                action:
                  type: string
                  enum:
                  - account_representative_set
                wallet:
                  type: string
                account:
                  type: string
                representative:
                  type: string
                work:
                  type: string
      responses:
        '200':
          description: Block hash for the change block
          content:
            application/json:
              schema:
                type: object
                properties:
                  block:
                    type: string
  /accounts_create:
    post:
      operationId: accounts_create
      summary: Create multiple wallet accounts
      description: Batch-creates multiple accounts in the given wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - count
              properties:
                action:
                  type: string
                  enum:
                  - accounts_create
                wallet:
                  type: string
                count:
                  type: integer
                work:
                  type: boolean
      responses:
        '200':
          description: Created account addresses
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounts:
                    type: array
                    items:
                      type: string
  /password_change:
    post:
      operationId: password_change
      summary: Change wallet password
      description: Sets a new password for the given wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - password
              properties:
                action:
                  type: string
                  enum:
                  - password_change
                wallet:
                  type: string
                password:
                  type: string
      responses:
        '200':
          description: Password change result
          content:
            application/json:
              schema:
                type: object
  /password_enter:
    post:
      operationId: password_enter
      summary: Enter wallet password
      description: Unlocks the wallet with the provided password.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - password
              properties:
                action:
                  type: string
                  enum:
                  - password_enter
                wallet:
                  type: string
                password:
                  type: string
      responses:
        '200':
          description: Password validation result
          content:
            application/json:
              schema:
                type: object
  /password_valid:
    post:
      operationId: password_valid
      summary: Check if wallet password is valid
      description: Checks whether the current wallet password is valid (wallet is unlocked).
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - password_valid
                wallet:
                  type: string
      responses:
        '200':
          description: Password validity
          content:
            application/json:
              schema:
                type: object
                properties:
                  valid:
                    type: boolean
  /receive:
    post:
      operationId: receive
      summary: Receive a block
      description: Creates a receive block for a pending transaction.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - account
              - block
              properties:
                action:
                  type: string
                  enum:
                  - receive
                wallet:
                  type: string
                account:
                  type: string
                block:
                  type: string
                work:
                  type: string
      responses:
        '200':
          description: Receive block hash
          content:
            application/json:
              schema:
                type: object
                properties:
                  block:
                    type: string
  /receive_minimum:
    post:
      operationId: receive_minimum
      summary: Get receive minimum
      description: Returns the minimum receive amount configured for the node.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - receive_minimum
      responses:
        '200':
          description: Minimum receive amount in raw units
          content:
            application/json:
              schema:
                type: object
                properties:
                  receive_minimum:
                    type: string
  /receive_minimum_set:
    post:
      operationId: receive_minimum_set
      summary: Set receive minimum
      description: Sets the minimum receive amount for the node.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - amount
              properties:
                action:
                  type: string
                  enum:
                  - receive_minimum_set
                amount:
                  type: string
      responses:
        '200':
          description: Set result
          content:
            application/json:
              schema:
                type: object
  /search_receivable:
    post:
      operationId: search_receivable
      summary: Search for receivable blocks
      description: Searches for pending receivable blocks for all accounts in the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - search_receivable
                wallet:
                  type: string
      responses:
        '200':
          description: Search started
          content:
            application/json:
              schema:
                type: object
                properties:
                  started:
                    type: string
  /search_receivable_all:
    post:
      operationId: search_receivable_all
      summary: Search receivable blocks for all wallets
      description: Searches for pending receivable blocks across all wallets on the node.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - search_receivable_all
      responses:
        '200':
          description: Search started
          content:
            application/json:
              schema:
                type: object
                properties:
                  started:
                    type: string
  /send:
    post:
      operationId: send
      summary: Send Nano
      description: Creates and publishes a send block to transfer Nano to a destination.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - source
              - destination
              - amount
              properties:
                action:
                  type: string
                  enum:
                  - send
                wallet:
                  type: string
                source:
                  type: string
                destination:
                  type: string
                amount:
                  type: string
                  description: Amount in raw units
                work:
                  type: string
            example:
              action: send
              wallet: 000D1BAEC8EC208142C99059B393051BAC8380F9B5A2E6B2489A277D81789F3F
              source: nano_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3
              destination: nano_3qb6o6i1tkzr6jwr5s7eehfxwg9x6eemitdinbpi7u8bjjwsgqfj4wzser3x
              amount: '1000000000000000000000000'
      responses:
        '200':
          description: Send block hash
          content:
            application/json:
              schema:
                type: object
                properties:
                  block:
                    type: string
  /wallet_add:
    post:
      operationId: wallet_add
      summary: Add private key to wallet
      description: Adds an existing private key to a wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - key
              properties:
                action:
                  type: string
                  enum:
                  - wallet_add
                wallet:
                  type: string
                key:
                  type: string
                work:
                  type: boolean
      responses:
        '200':
          description: Account for the added key
          content:
            application/json:
              schema:
                type: object
                properties:
                  account:
                    type: string
  /wallet_add_watch:
    post:
      operationId: wallet_add_watch
      summary: Add watch-only accounts to wallet
      description: Adds accounts to watch in the wallet without private keys.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - accounts
              properties:
                action:
                  type: string
                  enum:
                  - wallet_add_watch
                wallet:
                  type: string
                accounts:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Watch accounts added
          content:
            application/json:
              schema:
                type: object
  /wallet_balances:
    post:
      operationId: wallet_balances
      summary: Get balances for all wallet accounts
      description: Returns balances for all accounts in the given wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_balances
                wallet:
                  type: string
                threshold:
                  type: string
      responses:
        '200':
          description: Balances per account
          content:
            application/json:
              schema:
                type: object
                properties:
                  balances:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/AccountBalanceResponse'
  /wallet_change_seed:
    post:
      operationId: wallet_change_seed
      summary: Change wallet seed
      description: Replaces the wallet seed with a new one.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - seed
              properties:
                action:
                  type: string
                  enum:
                  - wallet_change_seed
                wallet:
                  type: string
                seed:
                  type: string
                count:
                  type: integer
      responses:
        '200':
          description: Seed change result
          content:
            application/json:
              schema:
                type: object
  /wallet_contains:
    post:
      operationId: wallet_contains
      summary: Check if wallet contains account
      description: Returns whether the wallet contains the given account.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - account
              properties:
                action:
                  type: string
                  enum:
                  - wallet_contains
                wallet:
                  type: string
                account:
                  type: string
      responses:
        '200':
          description: Containment result
          content:
            application/json:
              schema:
                type: object
                properties:
                  exists:
                    type: boolean
  /wallet_create:
    post:
      operationId: wallet_create
      summary: Create new wallet
      description: Creates a new wallet and returns its identifier.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - wallet_create
      responses:
        '200':
          description: New wallet identifier
          content:
            application/json:
              schema:
                type: object
                properties:
                  wallet:
                    type: string
  /wallet_destroy:
    post:
      operationId: wallet_destroy
      summary: Destroy a wallet
      description: Permanently deletes a wallet and all its accounts.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_destroy
                wallet:
                  type: string
      responses:
        '200':
          description: Destruction result
          content:
            application/json:
              schema:
                type: object
  /wallet_export:
    post:
      operationId: wallet_export
      summary: Export wallet
      description: Exports wallet data as a JSON string containing the seed.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_export
                wallet:
                  type: string
      responses:
        '200':
          description: Exported wallet JSON
          content:
            application/json:
              schema:
                type: object
                properties:
                  json:
                    type: string
  /wallet_frontiers:
    post:
      operationId: wallet_frontiers
      summary: Get frontiers for wallet accounts
      description: Returns the frontier block for each account in the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_frontiers
                wallet:
                  type: string
      responses:
        '200':
          description: Frontiers per account
          content:
            application/json:
              schema:
                type: object
                properties:
                  frontiers:
                    type: object
                    additionalProperties:
                      type: string
  /wallet_history:
    post:
      operationId: wallet_history
      summary: Get wallet transaction history
      description: Returns all transactions for accounts in the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_history
                wallet:
                  type: string
                modified_since:
                  type: integer
      responses:
        '200':
          description: Wallet transaction history
          content:
            application/json:
              schema:
                type: object
                properties:
                  history:
                    type: array
                    items:
                      type: object
  /wallet_info:
    post:
      operationId: wallet_info
      summary: Get wallet information
      description: Returns metadata about the given wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_info
                wallet:
                  type: string
      responses:
        '200':
          description: Wallet metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  deterministic:
                    type: string
                  block_count:
                    type: string
                  accounts_count:
                    type: string
                  min_version:
                    type: string
  /wallet_ledger:
    post:
      operationId: wallet_ledger
      summary: Get ledger for wallet accounts
      description: Returns ledger information for all accounts in the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_ledger
                wallet:
                  type: string
                representative:
                  type: boolean
                weight:
                  type: boolean
                receivable:
                  type: boolean
                sorting:
                  type: boolean
                threshold:
                  type: string
      responses:
        '200':
          description: Ledger entries for wallet accounts
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounts:
                    type: object
                    additionalProperties:
                      type: object
  /wallet_lock:
    post:
      operationId: wallet_lock
      summary: Lock a wallet
      description: Locks the specified wallet, requiring password re-entry.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_lock
                wallet:
                  type: string
      responses:
        '200':
          description: Lock result
          content:
            application/json:
              schema:
                type: object
  /wallet_locked:
    post:
      operationId: wallet_locked
      summary: Check if wallet is locked
      description: Returns whether the wallet is currently locked.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_locked
                wallet:
                  type: string
      responses:
        '200':
          description: Lock status
          content:
            application/json:
              schema:
                type: object
                properties:
                  locked:
                    type: boolean
  /wallet_receivable:
    post:
      operationId: wallet_receivable
      summary: Get receivable blocks for wallet
      description: Returns pending receivable blocks for all wallet accounts.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_receivable
                wallet:
                  type: string
                threshold:
                  type: string
                source:
                  type: boolean
                include_active:
                  type: boolean
                sorting:
                  type: boolean
                count:
                  type: integer
      responses:
        '200':
          description: Receivable blocks per account
          content:
            application/json:
              schema:
                type: object
                properties:
                  blocks:
                    type: object
                    additionalProperties:
                      type: object
  /wallet_representative:
    post:
      operationId: wallet_representative
      summary: Get wallet representative
      description: Returns the default representative for the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_representative
                wallet:
                  type: string
      responses:
        '200':
          description: Wallet representative
          content:
            application/json:
              schema:
                type: object
                properties:
                  representative:
                    type: string
  /wallet_representative_set:
    post:
      operationId: wallet_representative_set
      summary: Set wallet representative
      description: Sets the default representative for the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              - representative
              properties:
                action:
                  type: string
                  enum:
                  - wallet_representative_set
                wallet:
                  type: string
                representative:
                  type: string
                work:
                  type: boolean
      responses:
        '200':
          description: Set result
          content:
            application/json:
              schema:
                type: object
  /wallet_republish:
    post:
      operationId: wallet_republish
      summary: Republish wallet blocks
      description: Republishes blocks for all accounts in the wallet.
      tags:
      - Wallets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - wallet
              properties:
                action:
                  type: string
                  enum:
                  - wallet_republish
                wallet:
                  type: string
                count:
                  type: integer
      responses:
        '200':
          description: Republished block hashes
          content:
            application/json:
              schema:
                type: object
                properties:
                  blocks:
                    type: array
                    items:
                      type: string
  /wallet_work_get:
    post:
      operationId: wallet_work_get
      summary: Get work for wallet account
      description: Returns the cached proof-of-work for an account 

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nano/refs/heads/main/openapi/nano-wallets-api-openapi.yml