<!DOCTYPE html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      <meta http-equiv="x-ua-compatible" content="ie=edge">
      
      
      
      
        <meta name="lang:clipboard.copy" content="Copy to clipboard">
      
        <meta name="lang:clipboard.copied" content="Copied to clipboard">
      
        <meta name="lang:search.language" content="en">
      
        <meta name="lang:search.pipeline.stopwords" content="True">
      
        <meta name="lang:search.pipeline.trimmer" content="True">
      
        <meta name="lang:search.result.none" content="No matching documents">
      
        <meta name="lang:search.result.one" content="1 matching document">
      
        <meta name="lang:search.result.other" content="# matching documents">
      
        <meta name="lang:search.tokenizer" content="[\s\-]+">
      
      <link rel="shortcut icon" href="./assets/images/favicon.png">
      <meta name="generator" content="mkdocs-0.17.3, mkdocs-material-2.7.0">
    
    
      
        <title>LBRY</title>
      
    
    
      <link rel="stylesheet" href="./assets/stylesheets/application.78aab2dc.css">
      
        <link rel="stylesheet" href="./assets/stylesheets/application-palette.6079476c.css">
      
    
    
      <script src="./assets/javascripts/modernizr.1aa3b519.js"></script>
    
    
      <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
      
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
        <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
      
      <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    
    
    
  </head>
  
    
    
    <body dir="ltr" data-md-color-primary="teal" data-md-color-accent="green">
  
    <svg class="md-svg">
      <defs>
        
        
          <svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
    viewBox="0 0 416 448" id="github">
  <path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
        8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
        18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
        19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
        18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
        304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
        2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
        38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
        37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
        82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
        1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
        0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
        30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
        46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
        99.5z" />
</svg>
        
      </defs>
    </svg>
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="drawer">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="search">
    <label class="md-overlay" data-md-component="overlay" for="drawer"></label>
    
      <a href="#lbry-json-rpc-api-documentation" tabindex="1" class="md-skip">
        Skip to content
      </a>
    
    
      <header class="md-header" data-md-component="header">
  <nav class="md-header-nav md-grid">
    <div class="md-flex">
      <div class="md-flex__cell md-flex__cell--shrink">
        <a href="." title="LBRY" class="md-header-nav__button md-logo">
          
            <img src="https://s3.amazonaws.com/files.lbry.io/logo-square-white-bookonly.png" width="24" height="24">
          
        </a>
      </div>
      <div class="md-flex__cell md-flex__cell--shrink">
        <label class="md-icon md-icon--menu md-header-nav__button" for="drawer"></label>
      </div>
      <div class="md-flex__cell md-flex__cell--stretch">
        <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
          
            
              <span class="md-header-nav__topic">
                LBRY
              </span>
              <span class="md-header-nav__topic">
                API
              </span>
            
          
        </div>
      </div>
      <div class="md-flex__cell md-flex__cell--shrink">
        
          
            <label class="md-icon md-icon--search md-header-nav__button" for="search"></label>
            
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
      <label class="md-icon md-search__icon" for="search"></label>
      <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
        &#xE5CD;
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="result">
          <div class="md-search-result__meta">
            Type to start searching
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
          
        
      </div>
      
        <div class="md-flex__cell md-flex__cell--shrink">
          <div class="md-header-nav__source">
            


  


  <a href="https://github.com/lbryio/lbry/" title="Go to repository" class="md-source" data-md-source="github">
    
      <div class="md-source__icon">
        <svg viewBox="0 0 24 24" width="24" height="24">
          <use xlink:href="#github" width="24" height="24"></use>
        </svg>
      </div>
    
    <div class="md-source__repository">
      GitHub
    </div>
  </a>

          </div>
        </div>
      
    </div>
  </nav>
</header>
    
    <div class="md-container">
      
        
      
      
      <main class="md-main">
        <div class="md-main__inner md-grid" data-md-component="container">
          
            
              <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    <nav class="md-nav md-nav--primary" data-md-level="0">
  <label class="md-nav__title md-nav__title--site" for="drawer">
    <span class="md-nav__button md-logo">
      
        <img src="https://s3.amazonaws.com/files.lbry.io/logo-square-white-bookonly.png" width="48" height="48">
      
    </span>
    LBRY
  </label>
  
    <div class="md-nav__source">
      


  


  <a href="https://github.com/lbryio/lbry/" title="Go to repository" class="md-source" data-md-source="github">
    
      <div class="md-source__icon">
        <svg viewBox="0 0 24 24" width="24" height="24">
          <use xlink:href="#github" width="24" height="24"></use>
        </svg>
      </div>
    
    <div class="md-source__repository">
      GitHub
    </div>
  </a>

    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      

  


  <li class="md-nav__item md-nav__item--active">
    
    <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="toc">
    
      
    
    
      <label class="md-nav__link md-nav__link--active" for="toc">
        API
      </label>
    
    <a href="." title="API" class="md-nav__link md-nav__link--active">
      API
    </a>
    
      
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#blob_announce" title="blob_announce" class="md-nav__link">
    blob_announce
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_availability" title="blob_availability" class="md-nav__link">
    blob_availability
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_delete" title="blob_delete" class="md-nav__link">
    blob_delete
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_get" title="blob_get" class="md-nav__link">
    blob_get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_list" title="blob_list" class="md-nav__link">
    blob_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_reflect" title="blob_reflect" class="md-nav__link">
    blob_reflect
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_reflect_all" title="blob_reflect_all" class="md-nav__link">
    blob_reflect_all
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#block_show" title="block_show" class="md-nav__link">
    block_show
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_export" title="channel_export" class="md-nav__link">
    channel_export
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_import" title="channel_import" class="md-nav__link">
    channel_import
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_list" title="channel_list" class="md-nav__link">
    channel_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_new" title="channel_new" class="md-nav__link">
    channel_new
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_abandon" title="claim_abandon" class="md-nav__link">
    claim_abandon
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_list" title="claim_list" class="md-nav__link">
    claim_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_list_by_channel" title="claim_list_by_channel" class="md-nav__link">
    claim_list_by_channel
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_list_mine" title="claim_list_mine" class="md-nav__link">
    claim_list_mine
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_new_support" title="claim_new_support" class="md-nav__link">
    claim_new_support
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_renew" title="claim_renew" class="md-nav__link">
    claim_renew
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_send_to_address" title="claim_send_to_address" class="md-nav__link">
    claim_send_to_address
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_show" title="claim_show" class="md-nav__link">
    claim_show
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#cli_test_command" title="cli_test_command" class="md-nav__link">
    cli_test_command
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#commands" title="commands" class="md-nav__link">
    commands
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#daemon_stop" title="daemon_stop" class="md-nav__link">
    daemon_stop
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_delete" title="file_delete" class="md-nav__link">
    file_delete
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_list" title="file_list" class="md-nav__link">
    file_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_reflect" title="file_reflect" class="md-nav__link">
    file_reflect
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_set_status" title="file_set_status" class="md-nav__link">
    file_set_status
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#get" title="get" class="md-nav__link">
    get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#help" title="help" class="md-nav__link">
    help
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#peer_list" title="peer_list" class="md-nav__link">
    peer_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#peer_ping" title="peer_ping" class="md-nav__link">
    peer_ping
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#publish" title="publish" class="md-nav__link">
    publish
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#report_bug" title="report_bug" class="md-nav__link">
    report_bug
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#resolve" title="resolve" class="md-nav__link">
    resolve
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#resolve_name" title="resolve_name" class="md-nav__link">
    resolve_name
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#routing_table_get" title="routing_table_get" class="md-nav__link">
    routing_table_get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#settings_get" title="settings_get" class="md-nav__link">
    settings_get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#settings_set" title="settings_set" class="md-nav__link">
    settings_set
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#status" title="status" class="md-nav__link">
    status
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#stream_availability" title="stream_availability" class="md-nav__link">
    stream_availability
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#stream_cost_estimate" title="stream_cost_estimate" class="md-nav__link">
    stream_cost_estimate
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#transaction_list" title="transaction_list" class="md-nav__link">
    transaction_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#transaction_show" title="transaction_show" class="md-nav__link">
    transaction_show
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#utxo_list" title="utxo_list" class="md-nav__link">
    utxo_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#version" title="version" class="md-nav__link">
    version
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_balance" title="wallet_balance" class="md-nav__link">
    wallet_balance
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_decrypt" title="wallet_decrypt" class="md-nav__link">
    wallet_decrypt
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_encrypt" title="wallet_encrypt" class="md-nav__link">
    wallet_encrypt
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_is_address_mine" title="wallet_is_address_mine" class="md-nav__link">
    wallet_is_address_mine
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_list" title="wallet_list" class="md-nav__link">
    wallet_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_new_address" title="wallet_new_address" class="md-nav__link">
    wallet_new_address
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_prefill_addresses" title="wallet_prefill_addresses" class="md-nav__link">
    wallet_prefill_addresses
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_public_key" title="wallet_public_key" class="md-nav__link">
    wallet_public_key
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_send" title="wallet_send" class="md-nav__link">
    wallet_send
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_unlock" title="wallet_unlock" class="md-nav__link">
    wallet_unlock
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_unused_address" title="wallet_unused_address" class="md-nav__link">
    wallet_unused_address
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
</nav>
    
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="cli/" title="CLI" class="md-nav__link">
      CLI
    </a>
  </li>

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#blob_announce" title="blob_announce" class="md-nav__link">
    blob_announce
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_availability" title="blob_availability" class="md-nav__link">
    blob_availability
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_delete" title="blob_delete" class="md-nav__link">
    blob_delete
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_get" title="blob_get" class="md-nav__link">
    blob_get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_list" title="blob_list" class="md-nav__link">
    blob_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_reflect" title="blob_reflect" class="md-nav__link">
    blob_reflect
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#blob_reflect_all" title="blob_reflect_all" class="md-nav__link">
    blob_reflect_all
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#block_show" title="block_show" class="md-nav__link">
    block_show
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_export" title="channel_export" class="md-nav__link">
    channel_export
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_import" title="channel_import" class="md-nav__link">
    channel_import
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_list" title="channel_list" class="md-nav__link">
    channel_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#channel_new" title="channel_new" class="md-nav__link">
    channel_new
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_abandon" title="claim_abandon" class="md-nav__link">
    claim_abandon
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_list" title="claim_list" class="md-nav__link">
    claim_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_list_by_channel" title="claim_list_by_channel" class="md-nav__link">
    claim_list_by_channel
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_list_mine" title="claim_list_mine" class="md-nav__link">
    claim_list_mine
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_new_support" title="claim_new_support" class="md-nav__link">
    claim_new_support
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_renew" title="claim_renew" class="md-nav__link">
    claim_renew
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_send_to_address" title="claim_send_to_address" class="md-nav__link">
    claim_send_to_address
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#claim_show" title="claim_show" class="md-nav__link">
    claim_show
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#cli_test_command" title="cli_test_command" class="md-nav__link">
    cli_test_command
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#commands" title="commands" class="md-nav__link">
    commands
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#daemon_stop" title="daemon_stop" class="md-nav__link">
    daemon_stop
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_delete" title="file_delete" class="md-nav__link">
    file_delete
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_list" title="file_list" class="md-nav__link">
    file_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_reflect" title="file_reflect" class="md-nav__link">
    file_reflect
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#file_set_status" title="file_set_status" class="md-nav__link">
    file_set_status
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#get" title="get" class="md-nav__link">
    get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#help" title="help" class="md-nav__link">
    help
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#peer_list" title="peer_list" class="md-nav__link">
    peer_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#peer_ping" title="peer_ping" class="md-nav__link">
    peer_ping
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#publish" title="publish" class="md-nav__link">
    publish
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#report_bug" title="report_bug" class="md-nav__link">
    report_bug
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#resolve" title="resolve" class="md-nav__link">
    resolve
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#resolve_name" title="resolve_name" class="md-nav__link">
    resolve_name
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#routing_table_get" title="routing_table_get" class="md-nav__link">
    routing_table_get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#settings_get" title="settings_get" class="md-nav__link">
    settings_get
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#settings_set" title="settings_set" class="md-nav__link">
    settings_set
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#status" title="status" class="md-nav__link">
    status
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#stream_availability" title="stream_availability" class="md-nav__link">
    stream_availability
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#stream_cost_estimate" title="stream_cost_estimate" class="md-nav__link">
    stream_cost_estimate
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#transaction_list" title="transaction_list" class="md-nav__link">
    transaction_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#transaction_show" title="transaction_show" class="md-nav__link">
    transaction_show
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#utxo_list" title="utxo_list" class="md-nav__link">
    utxo_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#version" title="version" class="md-nav__link">
    version
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_balance" title="wallet_balance" class="md-nav__link">
    wallet_balance
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_decrypt" title="wallet_decrypt" class="md-nav__link">
    wallet_decrypt
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_encrypt" title="wallet_encrypt" class="md-nav__link">
    wallet_encrypt
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_is_address_mine" title="wallet_is_address_mine" class="md-nav__link">
    wallet_is_address_mine
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_list" title="wallet_list" class="md-nav__link">
    wallet_list
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_new_address" title="wallet_new_address" class="md-nav__link">
    wallet_new_address
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_prefill_addresses" title="wallet_prefill_addresses" class="md-nav__link">
    wallet_prefill_addresses
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_public_key" title="wallet_public_key" class="md-nav__link">
    wallet_public_key
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_send" title="wallet_send" class="md-nav__link">
    wallet_send
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_unlock" title="wallet_unlock" class="md-nav__link">
    wallet_unlock
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#wallet_unused_address" title="wallet_unused_address" class="md-nav__link">
    wallet_unused_address
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content">
            <article class="md-content__inner md-typeset">
              
                
                  <a href="https://github.com/lbryio/lbry/edit/master/docs/index.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
                
                
                <h1 id="lbry-json-rpc-api-documentation">LBRY JSON-RPC API Documentation</h1>
<h2 id="blob_announce">blob_announce</h2>
<pre><code class="text">Announce blobs to the DHT

Args:
    'blob_hash'    :  (str)  announce a blob, specified by blob_hash
    'stream_hash'  :  (str)  announce all blobs associated with
                             stream_hash
    'sd_hash'      :  (str)  announce all blobs associated with
                             sd_hash and the sd_hash itself

Returns:
    (bool) true if successful
</code></pre>

<h2 id="blob_availability">blob_availability</h2>
<pre><code class="text">Get blob availability

Args:
    'blob_hash'       :  (str)  check availability for this blob hash
    'search_timeout'  :  (int)  how long to search for peers for the blob
                                in the dht
    'blob_timeout'    :  (int)  how long to try downloading from a peer

Returns:
    (dict) {
        &quot;is_available&quot;: &lt;bool, true if blob is available from a peer from peer list&gt;
        &quot;reachable_peers&quot;: [&quot;&lt;ip&gt;:&lt;port&gt;&quot;],
        &quot;unreachable_peers&quot;: [&quot;&lt;ip&gt;:&lt;port&gt;&quot;]
    }
</code></pre>

<h2 id="blob_delete">blob_delete</h2>
<pre><code class="text">Delete a blob

Args:
    'blob_hash'  :  (str)  blob hash of the blob to delete

Returns:
    (str) Success/fail message
</code></pre>

<h2 id="blob_get">blob_get</h2>
<pre><code class="text">Download and return a blob

Args:
    'blob_hash' (required)  :  (str)  blob hash of the blob to get
    'timeout'               :  (int)  timeout in number of seconds
    'encoding'              :  (str)  by default no attempt at decoding
                                      is made, can be set to one of the
                                      following decoders:
                                      'json'
    'payment_rate_manager'  :  (str)  if not given the default payment rate
                                      manager will be used.
                                      supported alternative rate managers:
                                      'only-free'

Returns:
    (str) Success/Fail message or (dict) decoded data
</code></pre>

<h2 id="blob_list">blob_list</h2>
<pre><code class="text">Returns blob hashes. If not given filters, returns all blobs known by the blob manager

Args:
    'needed'       :  (bool)  only return needed blobs
    'finished'     :  (bool)  only return finished blobs
    'uri'          :  (str)   filter blobs by stream in a uri
    'stream_hash'  :  (str)   filter blobs by stream hash
    'sd_hash'      :  (str)   filter blobs by sd hash
    'page_size'    :  (int)   results page size
    'page'         :  (int)   page of results to return

Returns:
    (list) List of blob hashes
</code></pre>

<h2 id="blob_reflect">blob_reflect</h2>
<pre><code class="text">Reflects specified blobs

Args:
    'reflector_server'  :  (str)  reflector address

Returns:
    (list) reflected blob hashes
</code></pre>

<h2 id="blob_reflect_all">blob_reflect_all</h2>
<pre><code class="text">Reflects all saved blobs

Args:
          None

Returns:
    (bool) true if successful
</code></pre>

<h2 id="block_show">block_show</h2>
<pre><code class="text">Get contents of a block

Args:
    'blockhash' (required)  :  (str)  hash of the block to look up
    'height' (required)     :  (int)  height of the block to look up

Returns:
    (dict) Requested block
</code></pre>

<h2 id="channel_export">channel_export</h2>
<pre><code class="text">Export serialized channel signing information for a given certificate claim id

Args:
    'claim_id' (required)  :  (str)  Claim ID to export information about

Returns:
    (str) Serialized certificate information
</code></pre>

<h2 id="channel_import">channel_import</h2>
<pre><code class="text">Import serialized channel signing information (to allow signing new claims to the channel)

Args:
    'serialized_certificate_info' (required)  :  (str)  certificate info

Returns:
    (dict) Result dictionary
</code></pre>

<h2 id="channel_list">channel_list</h2>
<pre><code class="text">Get certificate claim infos for channels that can be published to

Args:
          None

Returns:
    (list) ClaimDict, includes 'is_mine' field to indicate if the certificate claim
    is in the wallet.
</code></pre>

<h2 id="channel_new">channel_new</h2>
<pre><code class="text">Generate a publisher key and create a new '@' prefixed certificate claim

Args:
    'channel_name' (required)  :  (str)    name of the channel prefixed with '@'
    'amount' (required)        :  (float)  bid amount on the channel

Returns:
    (dict) Dictionary containing result of the claim
    {
        'tx' : (str) hex encoded transaction
        'txid' : (str) txid of resulting claim
        'nout' : (int) nout of the resulting claim
        'fee' : (float) fee paid for the claim transaction
        'claim_id' : (str) claim ID of the resulting claim
    }
</code></pre>

<h2 id="claim_abandon">claim_abandon</h2>
<pre><code class="text">Abandon a name and reclaim credits from the claim

Args:
    'claim_id'  :  (str)  claim_id of the claim to abandon
    'txid'      :  (str)  txid of the claim to abandon
    'nout'      :  (int)  nout of the claim to abandon

Returns:
    (dict) Dictionary containing result of the claim
    {
        txid : (str) txid of resulting transaction
        fee : (float) fee paid for the transaction
    }
</code></pre>

<h2 id="claim_list">claim_list</h2>
<pre><code class="text">List current claims and information about them for a given name

Args:
    'name' (required)  :  (str)  name of the claim to list info about

Returns:
    (dict) State of claims assigned for the name
    {
        'claims': (list) list of claims for the name
        [
            {
            'amount': (float) amount assigned to the claim
            'effective_amount': (float) total amount assigned to the claim,
                                including supports
            'claim_id': (str) claim ID of the claim
            'height': (int) height of block containing the claim
            'txid': (str) txid of the claim
            'nout': (int) nout of the claim
            'permanent_url': (str) permanent url of the claim,
            'supports': (list) a list of supports attached to the claim
            'value': (str) the value of the claim
            },
        ]
        'supports_without_claims': (list) supports without any claims attached to them
        'last_takeover_height': (int) the height of last takeover for the name
    }
</code></pre>

<h2 id="claim_list_by_channel">claim_list_by_channel</h2>
<pre><code class="text">Get paginated claims in a channel specified by a channel uri

Args:
    'uri' (required)  :  (str)   uri of the channel
    'uris'            :  (list)  uris of the channel
    'page'            :  (int)   which page of results to return where page 1 is the first
                                 page, defaults to no pages
    'page_size'       :  (int)   number of results in a page, default of 10

Returns:
    {
         resolved channel uri: {
            If there was an error:
            'error': (str) error message

            'claims_in_channel': the total number of results for the channel,

            If a page of results was requested:
            'returned_page': page number returned,
            'claims_in_channel': [
                {
                    'absolute_channel_position': (int) claim index number in sorted list of
                                                 claims which assert to be part of the
                                                 channel
                    'address': (str) claim address,
                    'amount': (float) claim amount,
                    'effective_amount': (float) claim amount including supports,
                    'claim_id': (str) claim id,
                    'claim_sequence': (int) claim sequence number,
                    'decoded_claim': (bool) whether or not the claim value was decoded,
                    'height': (int) claim height,
                    'depth': (int) claim depth,
                    'has_signature': (bool) included if decoded_claim
                    'name': (str) claim name,
                    'supports: (list) list of supports [{'txid': (str) txid,
                                                         'nout': (int) nout,
                                                         'amount': (float) amount}],
                    'txid': (str) claim txid,
                    'nout': (str) claim nout,
                    'signature_is_valid': (bool), included if has_signature,
                    'value': ClaimDict if decoded, otherwise hex string
                }
            ],
        }
    }
</code></pre>

<h2 id="claim_list_mine">claim_list_mine</h2>
<pre><code class="text">List my name claims

Args:
          None

Returns:
    (list) List of name claims owned by user
    [
        {
            'address': (str) address that owns the claim
            'amount': (float) amount assigned to the claim
            'blocks_to_expiration': (int) number of blocks until it expires
            'category': (str) &quot;claim&quot;, &quot;update&quot; , or &quot;support&quot;
            'claim_id': (str) claim ID of the claim
            'confirmations': (int) number of blocks of confirmations for the claim
            'expiration_height': (int) the block height which the claim will expire
            'expired': (bool) true if expired, false otherwise
            'height': (int) height of the block containing the claim
            'is_spent': (bool) true if claim is abandoned, false otherwise
            'name': (str) name of the claim
            'permanent_url': (str) permanent url of the claim,
            'txid': (str) txid of the claim
            'nout': (int) nout of the claim
            'value': (str) value of the claim
        },
   ]
</code></pre>

<h2 id="claim_new_support">claim_new_support</h2>
<pre><code class="text">Support a name claim

Args:
    'name' (required)      :  (str)    name of the claim to support
    'claim_id' (required)  :  (str)    claim_id of the claim to support
    'amount' (required)    :  (float)  amount of support

Returns:
    (dict) Dictionary containing result of the claim
    {
        txid : (str) txid of resulting support claim
        nout : (int) nout of the resulting support claim
        fee : (float) fee paid for the transaction
    }
</code></pre>

<h2 id="claim_renew">claim_renew</h2>
<pre><code class="text">Renew claim(s) or support(s)

Args:
    'outpoint' (required)  :  (str)  outpoint of the claim to renew
    'height' (required)    :  (str)  update claims expiring before or at this block height

Returns:
    (dict) Dictionary where key is the the original claim's outpoint and
    value is the result of the renewal
    {
        outpoint:{

            'tx' : (str) hex encoded transaction
            'txid' : (str) txid of resulting claim
            'nout' : (int) nout of the resulting claim
            'fee' : (float) fee paid for the claim transaction
            'claim_id' : (str) claim ID of the resulting claim
        },
    }
</code></pre>

<h2 id="claim_send_to_address">claim_send_to_address</h2>
<pre><code class="text">Send a name claim to an address

Args:
    'claim_id' (required)  :  (str)  claim_id to send
    'address' (required)   :  (str)  address to send the claim to
    'amount'               :  (int)  Amount of credits to claim name for, defaults to the current amount
                                     on the claim

Returns:
    (dict) Dictionary containing result of the claim
    {
        'tx' : (str) hex encoded transaction
        'txid' : (str) txid of resulting claim
        'nout' : (int) nout of the resulting claim
        'fee' : (float) fee paid for the claim transaction
        'claim_id' : (str) claim ID of the resulting claim
    }
</code></pre>

<h2 id="claim_show">claim_show</h2>
<pre><code class="text">Resolve claim info from txid/nout or with claim ID

Args:
    'txid'      :  (str)  look for claim with this txid, nout must
                          also be specified
    'nout'      :  (int)  look for claim with this nout, txid must
                          also be specified
    'claim_id'  :  (str)  look for claim with this claim id

Returns:
    (dict) Dictionary containing claim info as below,

    {
        'txid': (str) txid of claim
        'nout': (int) nout of claim
        'amount': (float) amount of claim
        'value': (str) value of claim
        'height' : (int) height of claim takeover
        'claim_id': (str) claim ID of claim
        'supports': (list) list of supports associated with claim
    }

    if claim cannot be resolved, dictionary as below will be returned

    {
        'error': (str) reason for error
    }
</code></pre>

<h2 id="cli_test_command">cli_test_command</h2>
<pre><code class="text">This command is only for testing the CLI argument parsing
Args:
    'a_arg'               :  (bool)  a arg
    'b_arg'               :  (bool)  b arg
    'pos_arg' (required)  :  (int)   pos arg
    'pos_args'            :  (int)   pos args
    'pos_arg2'            :  (int)   pos arg 2
    'pos_arg3'            :  (int)   pos arg 3

Returns:
    pos args
</code></pre>

<h2 id="commands">commands</h2>
<pre><code class="text">Return a list of available commands

Args:
          None

Returns:
    (list) list of available commands
</code></pre>

<h2 id="daemon_stop">daemon_stop</h2>
<pre><code class="text">Stop lbrynet-daemon

Args:
          None

Returns:
    (string) Shutdown message
</code></pre>

<h2 id="file_delete">file_delete</h2>
<pre><code class="text">Delete a LBRY file

Args:
    'delete_from_download_dir'  :  (bool)  delete file from download directory,
                                           instead of just deleting blobs
    'delete_all'                :  (bool)  if there are multiple matching files,
                                           allow the deletion of multiple files.
                                           Otherwise do not delete anything.
    'sd_hash'                   :  (str)   delete by file sd hash
    'file_name'                 :  (str)   delete by file name in downloads folder
    'stream_hash'               :  (str)   delete by file stream hash
    'rowid'                     :  (int)   delete by file row id
    'claim_id'                  :  (str)   delete by file claim id
    'txid'                      :  (str)   delete by file claim txid
    'nout'                      :  (int)   delete by file claim nout
    'claim_name'                :  (str)   delete by file claim name
    'channel_claim_id'          :  (str)   delete by file channel claim id
    'channel_name'              :  (str)   delete by file channel claim name

Returns:
    (bool) true if deletion was successful
</code></pre>

<h2 id="file_list">file_list</h2>
<pre><code class="text">List files limited by optional filters

Args:
    'sd_hash'           :  (str)   get file with matching sd hash
    'file_name'         :  (str)   get file with matching file name in the
                                   downloads folder
    'stream_hash'       :  (str)   get file with matching stream hash
    'rowid'             :  (int)   get file with matching row id
    'claim_id'          :  (str)   get file with matching claim id
    'outpoint'          :  (str)   get file with matching claim outpoint
    'txid'              :  (str)   get file with matching claim txid
    'nout'              :  (int)   get file with matching claim nout
    'channel_claim_id'  :  (str)   get file with matching channel claim id
    'channel_name'      :  (str)   get file with matching channel name
    'claim_name'        :  (str)   get file with matching claim name
    'full_status'       :  (bool)  full status, populate the
                                   'message' and 'size' fields
    'sort'              :  (str)   sort by any property, like 'file_name'
                                   or 'metadata.author'; to specify direction
                                   append ',asc' or ',desc'

Returns:
    (list) List of files

    [
        {
            'completed': (bool) true if download is completed,
            'file_name': (str) name of file,
            'download_directory': (str) download directory,
            'points_paid': (float) credit paid to download file,
            'stopped': (bool) true if download is stopped,
            'stream_hash': (str) stream hash of file,
            'stream_name': (str) stream name ,
            'suggested_file_name': (str) suggested file name,
            'sd_hash': (str) sd hash of file,
            'download_path': (str) download path of file,
            'mime_type': (str) mime type of file,
            'key': (str) key attached to file,
            'total_bytes': (int) file size in bytes, None if full_status is false,
            'written_bytes': (int) written size in bytes,
            'blobs_completed': (int) num_completed, None if full_status is false,
            'blobs_in_stream': (int) None if full_status is false,
            'status': (str) downloader status, None if full_status is false,
            'claim_id': (str) None if full_status is false or if claim is not found,
            'outpoint': (str) None if full_status is false or if claim is not found,
            'txid': (str) None if full_status is false or if claim is not found,
            'nout': (int) None if full_status is false or if claim is not found,
            'metadata': (dict) None if full_status is false or if claim is not found,
            'channel_claim_id': (str) None if full_status is false or if claim is not found or signed,
            'channel_name': (str) None if full_status is false or if claim is not found or signed,
            'claim_name': (str) None if full_status is false or if claim is not found
        },
    ]
</code></pre>

<h2 id="file_reflect">file_reflect</h2>
<pre><code class="text">Reflect all the blobs in a file matching the filter criteria

Args:
    'sd_hash'      :  (str)  get file with matching sd hash
    'file_name'    :  (str)  get file with matching file name in the
                             downloads folder
    'stream_hash'  :  (str)  get file with matching stream hash
    'rowid'        :  (int)  get file with matching row id
    'reflector'    :  (str)  reflector server, ip address or url
                             by default choose a server from the config

Returns:
    (list) list of blobs reflected
</code></pre>

<h2 id="file_set_status">file_set_status</h2>
<pre><code class="text">Start or stop downloading a file

Args:
    'status' (required)  :  (str)  one of &quot;start&quot; or &quot;stop&quot;
    'sd_hash'            :  (str)  set status of file with matching sd hash
    'file_name'          :  (str)  set status of file with matching file name in the
                                   downloads folder
    'stream_hash'        :  (str)  set status of file with matching stream hash
    'rowid'              :  (int)  set status of file with matching row id

Returns:
    (str) Confirmation message
</code></pre>

<h2 id="get">get</h2>
<pre><code class="text">Download stream from a LBRY name.

Args:
    'uri'        :  (str)  uri of the content to download
    'file_name'  :  (str)  specified name for the downloaded file
    'timeout'    :  (int)  download timeout in number of seconds

Returns:
    (dict) Dictionary containing information about the stream
    {
        'completed': (bool) true if download is completed,
        'file_name': (str) name of file,
        'download_directory': (str) download directory,
        'points_paid': (float) credit paid to download file,
        'stopped': (bool) true if download is stopped,
        'stream_hash': (str) stream hash of file,
        'stream_name': (str) stream name ,
        'suggested_file_name': (str) suggested file name,
        'sd_hash': (str) sd hash of file,
        'download_path': (str) download path of file,
        'mime_type': (str) mime type of file,
        'key': (str) key attached to file,
        'total_bytes': (int) file size in bytes, None if full_status is false,
        'written_bytes': (int) written size in bytes,
        'blobs_completed': (int) num_completed, None if full_status is false,
        'blobs_in_stream': (int) None if full_status is false,
        'status': (str) downloader status, None if full_status is false,
        'claim_id': (str) claim id,
        'outpoint': (str) claim outpoint string,
        'txid': (str) claim txid,
        'nout': (int) claim nout,
        'metadata': (dict) claim metadata,
        'channel_claim_id': (str) None if claim is not signed
        'channel_name': (str) None if claim is not signed
        'claim_name': (str) claim name
    }
</code></pre>

<h2 id="help">help</h2>
<pre><code class="text">Return a useful message for an API command

Args:
    'command'  :  (str)  command to retrieve documentation for

Returns:
    (str) Help message
</code></pre>

<h2 id="peer_list">peer_list</h2>
<pre><code class="text">Get peers for blob hash

Args:
    'blob_hash' (required)  :  (str)  find available peers for this blob hash
    'timeout'               :  (int)  peer search timeout in seconds

Returns:
    (list) List of contact dictionaries {'host': &lt;peer ip&gt;, 'port': &lt;peer port&gt;, 'node_id': &lt;peer node id&gt;}
</code></pre>

<h2 id="peer_ping">peer_ping</h2>
<pre><code class="text">Send a kademlia ping to the specified peer. If address and port are provided the peer is directly pinged,
if not provided the peer is located first.

Args:
    'address'  :  (str)  ip address of the peer
    'port'     :  (int)  udp port of the peer

Returns:
    (str) pong, or {'error': &lt;error message&gt;} if an error is encountered
</code></pre>

<h2 id="publish">publish</h2>
<pre><code class="text">Make a new name claim and publish associated data to lbrynet,
update over existing claim if user already has a claim for name.

Fields required in the final Metadata are:
    'title'
    'description'
    'author'
    'language'
    'license'
    'nsfw'

Metadata can be set by either using the metadata argument or by setting individual arguments
fee, title, description, author, language, license, license_url, thumbnail, preview, nsfw,
or sources. Individual arguments will overwrite the fields specified in metadata argument.

Args:
    'name' (required)  :  (str)      name of the content
    'bid' (required)   :  (decimal)  amount to back the claim
    'metadata'         :  (dict)     ClaimDict to associate with the claim.
    'file_path'        :  (str)      path to file to be associated with name. If provided,
                                     a lbry stream of this file will be used in 'sources'.
                                     If no path is given but a sources dict is provided,
                                     it will be used. If neither are provided, an
                                     error is raised.
    'fee'              :  (dict)     Dictionary representing key fee to download content:
                                     {
                                     'currency': currency_symbol,
                                     'amount': decimal,
                                     'address': str, optional
                                     }
                                     supported currencies: LBC, USD, BTC
                                     If an address is not provided a new one will be
                                     automatically generated. Default fee is zero.
    'title'            :  (str)      title of the publication
    'description'      :  (str)      description of the publication
    'author'           :  (str)      author of the publication
    'language'         :  (str)      language of the publication
    'license'          :  (str)      publication license
    'license_url'      :  (str)      publication license url
    'thumbnail'        :  (str)      thumbnail url
    'preview'          :  (str)      preview url
    'nsfw'             :  (bool)     whether the content is nsfw
    'sources'          :  (str)      {'lbry_sd_hash': sd_hash} specifies sd hash of file
    'channel_name'     :  (str)      name of the publisher channel name in the wallet
    'channel_id'       :  (str)      claim id of the publisher channel, does not check
                                     for channel claim being in the wallet. This allows
                                     publishing to a channel where only the certificate
                                     private key is in the wallet.
    'claim_address'    :  (str)      address where the claim is sent to, if not specified
                                     new address will automatically be created

Returns:
    (dict) Dictionary containing result of the claim
    {
        'tx' : (str) hex encoded transaction
        'txid' : (str) txid of resulting claim
        'nout' : (int) nout of the resulting claim
        'fee' : (decimal) fee paid for the claim transaction
        'claim_id' : (str) claim ID of the resulting claim
    }
</code></pre>

<h2 id="report_bug">report_bug</h2>
<pre><code class="text">Report a bug to slack

Args:
    'message' (required)  :  (str)  Description of the bug

Returns:
    (bool) true if successful
</code></pre>

<h2 id="resolve">resolve</h2>
<pre><code class="text">Resolve given LBRY URIs

Args:
    'force'           :  (bool)  force refresh and ignore cache
    'uri' (required)  :  (str)   uri to resolve
    'uris'            :  (list)  uris to resolve

Returns:
    Dictionary of results, keyed by uri
    '&lt;uri&gt;': {
            If a resolution error occurs:
            'error': Error message

            If the uri resolves to a channel or a claim in a channel:
            'certificate': {
                'address': (str) claim address,
                'amount': (float) claim amount,
                'effective_amount': (float) claim amount including supports,
                'claim_id': (str) claim id,
                'claim_sequence': (int) claim sequence number,
                'decoded_claim': (bool) whether or not the claim value was decoded,
                'height': (int) claim height,
                'depth': (int) claim depth,
                'has_signature': (bool) included if decoded_claim
                'name': (str) claim name,
                'permanent_url': (str) permanent url of the certificate claim,
                'supports: (list) list of supports [{'txid': (str) txid,
                                                     'nout': (int) nout,
                                                     'amount': (float) amount}],
                'txid': (str) claim txid,
                'nout': (str) claim nout,
                'signature_is_valid': (bool), included if has_signature,
                'value': ClaimDict if decoded, otherwise hex string
            }

            If the uri resolves to a channel:
            'claims_in_channel': (int) number of claims in the channel,

            If the uri resolves to a claim:
            'claim': {
                'address': (str) claim address,
                'amount': (float) claim amount,
                'effective_amount': (float) claim amount including supports,
                'claim_id': (str) claim id,
                'claim_sequence': (int) claim sequence number,
                'decoded_claim': (bool) whether or not the claim value was decoded,
                'height': (int) claim height,
                'depth': (int) claim depth,
                'has_signature': (bool) included if decoded_claim
                'name': (str) claim name,
                'permanent_url': (str) permanent url of the claim,
                'channel_name': (str) channel name if claim is in a channel
                'supports: (list) list of supports [{'txid': (str) txid,
                                                     'nout': (int) nout,
                                                     'amount': (float) amount}]
                'txid': (str) claim txid,
                'nout': (str) claim nout,
                'signature_is_valid': (bool), included if has_signature,
                'value': ClaimDict if decoded, otherwise hex string
            }
    }
</code></pre>

<h2 id="resolve_name">resolve_name</h2>
<pre><code class="text">Resolve stream info from a LBRY name

Args:
    'name' (required)  :  (str)   the name to resolve
    'force'            :  (bool)  force refresh and do not check cache

Returns:
    (dict) Metadata dictionary from name claim, None if the name is not
            resolvable
</code></pre>

<h2 id="routing_table_get">routing_table_get</h2>
<pre><code class="text">Get DHT routing information

Args:
          None

Returns:
    (dict) dictionary containing routing and contact information
    {
        &quot;buckets&quot;: {
            &lt;bucket index&gt;: [
                {
                    &quot;address&quot;: (str) peer address,
                    &quot;port&quot;: (int) peer udp port
                    &quot;node_id&quot;: (str) peer node id,
                    &quot;blobs&quot;: (list) blob hashes announced by peer
                }
            ]
        },
        &quot;contacts&quot;: (list) contact node ids,
        &quot;blob_hashes&quot;: (list) all of the blob hashes stored by peers in the list of buckets,
        &quot;node_id&quot;: (str) the local dht node id
    }
</code></pre>

<h2 id="settings_get">settings_get</h2>
<pre><code class="text">Get daemon settings

Args:
          None

Returns:
    (dict) Dictionary of daemon settings
    See ADJUSTABLE_SETTINGS in lbrynet/conf.py for full list of settings
</code></pre>

<h2 id="settings_set">settings_set</h2>
<pre><code class="text">Set daemon settings

Args:
    'download_directory'             :  (str)    path of download directory
    'data_rate'                      :  (float)  0.0001
    'download_timeout'               :  (int)    180
    'peer_port'                      :  (int)    3333
    'max_key_fee'                    :  (dict)   maximum key fee for downloads,
                                                 in the format:
                                                 {
                                                 'currency': &lt;currency_symbol&gt;,
                                                 'amount': &lt;amount&gt;
                                                 }.
                                                 In the CLI, it must be an escaped JSON string
                                                 Supported currency symbols: LBC, USD, BTC
    'disable_max_key_fee'            :  (bool)   False
    'use_upnp'                       :  (bool)   True
    'run_reflector_server'           :  (bool)   False
    'cache_time'                     :  (int)    150
    'reflect_uploads'                :  (bool)   True
    'share_usage_data'               :  (bool)   True
    'peer_search_timeout'            :  (int)    3
    'sd_download_timeout'            :  (int)    3
    'auto_renew_claim_height_delta'  :  (int)    0
                                                 claims set to expire within this many blocks will be
                                                 automatically renewed after startup (if set to 0, renews
                                                 will not be made automatically)

Returns:
    (dict) Updated dictionary of daemon settings
</code></pre>

<h2 id="status">status</h2>
<pre><code class="text">Get daemon status

Args:
          None

Returns:
    (dict) lbrynet-daemon status
    {
        'installation_id': (str) installation id - base58,
        'is_running': (bool),
        'is_first_run': bool,
        'skipped_components': (list) [names of skipped components (str)],
        'startup_status': { Does not include components which have been skipped
            'database': (bool),
            'wallet': (bool),
            'session': (bool),
            'dht': (bool),
            'hash_announcer': (bool),
            'stream_identifier': (bool),
            'file_manager': (bool),
            'blob_manager': (bool),
            'blockchain_headers': (bool),
            'peer_protocol_server': (bool),
            'reflector': (bool),
            'upnp': (bool),
            'exchange_rate_manager': (bool),
        },
        'connection_status': {
            'code': (str) connection status code,
            'message': (str) connection status message
        },
        'blockchain_headers': {
            'downloading_headers': (bool),
            'download_progress': (float) 0-100.0
        },
        'wallet': {
            'blocks': (int) local blockchain height,
            'blocks_behind': (int) remote_height - local_height,
            'best_blockhash': (str) block hash of most recent block,
            'is_encrypted': (bool),
            'is_locked': (bool),
        },
        'dht': {
            'node_id': (str) lbry dht node id - hex encoded,
            'peers_in_routing_table': (int) the number of peers in the routing table,
        },
        'blob_manager': {
            'finished_blobs': (int) number of finished blobs in the blob manager,
        },
        'hash_announcer': {
            'announce_queue_size': (int) number of blobs currently queued to be announced
        },
        'file_manager': {
            'managed_files': (int) count of files in the file manager,
        }
    }
</code></pre>

<h2 id="stream_availability">stream_availability</h2>
<pre><code class="text">Get stream availability for lbry uri

Args:
    'uri' (required)  :  (str)  check availability for this uri
    'search_timeout'  :  (int)  how long to search for peers for the blob
                                in the dht
    'blob_timeout'    :  (int)  how long to try downloading from a peer

Returns:
    (dict) {
        'is_available': &lt;bool&gt;,
        'did_decode': &lt;bool&gt;,
        'did_resolve': &lt;bool&gt;,
        'is_stream': &lt;bool&gt;,
        'num_blobs_in_stream': &lt;int&gt;,
        'sd_hash': &lt;str&gt;,
        'sd_blob_availability': &lt;dict&gt; see `blob_availability`,
        'head_blob_hash': &lt;str&gt;,
        'head_blob_availability': &lt;dict&gt; see `blob_availability`,
        'use_upnp': &lt;bool&gt;,
        'upnp_redirect_is_set': &lt;bool&gt;,
        'error': &lt;None&gt; | &lt;str&gt; error message
    }
</code></pre>

<h2 id="stream_cost_estimate">stream_cost_estimate</h2>
<pre><code class="text">Get estimated cost for a lbry stream

Args:
    'uri' (required)  :  (str)    uri to use
    'size'            :  (float)  stream size in bytes. if provided an sd blob won't be
                                  downloaded.

Returns:
    (float) Estimated cost in lbry credits, returns None if uri is not
        resolvable
</code></pre>

<h2 id="transaction_list">transaction_list</h2>
<pre><code class="text">List transactions belonging to wallet

Args:
          None

Returns:
    (list) List of transactions

    {
        &quot;claim_info&quot;: (list) claim info if in txn [{
                                                &quot;address&quot;: (str) address of claim,
                                                &quot;balance_delta&quot;: (float) bid amount,
                                                &quot;amount&quot;: (float) claim amount,
                                                &quot;claim_id&quot;: (str) claim id,
                                                &quot;claim_name&quot;: (str) claim name,
                                                &quot;nout&quot;: (int) nout
                                                }],
        &quot;abandon_info&quot;: (list) abandon info if in txn [{
                                                &quot;address&quot;: (str) address of abandoned claim,
                                                &quot;balance_delta&quot;: (float) returned amount,
                                                &quot;amount&quot;: (float) claim amount,
                                                &quot;claim_id&quot;: (str) claim id,
                                                &quot;claim_name&quot;: (str) claim name,
                                                &quot;nout&quot;: (int) nout
                                                }],
        &quot;confirmations&quot;: (int) number of confirmations for the txn,
        &quot;date&quot;: (str) date and time of txn,
        &quot;fee&quot;: (float) txn fee,
        &quot;support_info&quot;: (list) support info if in txn [{
                                                &quot;address&quot;: (str) address of support,
                                                &quot;balance_delta&quot;: (float) support amount,
                                                &quot;amount&quot;: (float) support amount,
                                                &quot;claim_id&quot;: (str) claim id,
                                                &quot;claim_name&quot;: (str) claim name,
                                                &quot;is_tip&quot;: (bool),
                                                &quot;nout&quot;: (int) nout
                                                }],
        &quot;timestamp&quot;: (int) timestamp,
        &quot;txid&quot;: (str) txn id,
        &quot;update_info&quot;: (list) update info if in txn [{
                                                &quot;address&quot;: (str) address of claim,
                                                &quot;balance_delta&quot;: (float) credited/debited
                                                &quot;amount&quot;: (float) absolute amount,
                                                &quot;claim_id&quot;: (str) claim id,
                                                &quot;claim_name&quot;: (str) claim name,
                                                &quot;nout&quot;: (int) nout
                                                }],
        &quot;value&quot;: (float) value of txn
    }
</code></pre>

<h2 id="transaction_show">transaction_show</h2>
<pre><code class="text">Get a decoded transaction from a txid

Args:
    'txid' (required)  :  (str)  txid of the transaction

Returns:
    (dict) JSON formatted transaction
</code></pre>

<h2 id="utxo_list">utxo_list</h2>
<pre><code class="text">List unspent transaction outputs

Args:
          None

Returns:
    (list) List of unspent transaction outputs (UTXOs)
    [
        {
            &quot;address&quot;: (str) the output address
            &quot;amount&quot;: (float) unspent amount
            &quot;height&quot;: (int) block height
            &quot;is_claim&quot;: (bool) is the tx a claim
            &quot;is_coinbase&quot;: (bool) is the tx a coinbase tx
            &quot;is_support&quot;: (bool) is the tx a support
            &quot;is_update&quot;: (bool) is the tx an update
            &quot;nout&quot;: (int) nout of the output
            &quot;txid&quot;: (str) txid of the output
        },
        ...
    ]
</code></pre>

<h2 id="version">version</h2>
<pre><code class="text">Get lbry version information

Args:
          None

Returns:
    (dict) Dictionary of lbry version information
    {
        'build': (str) build type (e.g. &quot;dev&quot;, &quot;rc&quot;, &quot;release&quot;),
        'ip': (str) remote ip, if available,
        'lbrynet_version': (str) lbrynet_version,
        'lbryum_version': (str) lbryum_version,
        'lbryschema_version': (str) lbryschema_version,
        'os_release': (str) os release string
        'os_system': (str) os name
        'platform': (str) platform string
        'processor': (str) processor type,
        'python_version': (str) python version,
    }
</code></pre>

<h2 id="wallet_balance">wallet_balance</h2>
<pre><code class="text">Return the balance of the wallet

Args:
    'address'              :  (str)   If provided only the balance for this
                                      address will be given
    'include_unconfirmed'  :  (bool)  Include unconfirmed

Returns:
    (float) amount of lbry credits in wallet
</code></pre>

<h2 id="wallet_decrypt">wallet_decrypt</h2>
<pre><code class="text">Decrypt an encrypted wallet, this will remove the wallet password

Args:
          None

Returns:
    (bool) true if wallet is decrypted, otherwise false
</code></pre>

<h2 id="wallet_encrypt">wallet_encrypt</h2>
<pre><code class="text">Encrypt a wallet with a password, if the wallet is already encrypted this will update
the password

Args:
    'new_password' (required)  :  (str)  password string to be used for encrypting wallet

Returns:
    (bool) true if wallet is decrypted, otherwise false
</code></pre>

<h2 id="wallet_is_address_mine">wallet_is_address_mine</h2>
<pre><code class="text">Checks if an address is associated with the current wallet.

Args:
    'address' (required)  :  (str)  address to check

Returns:
    (bool) true, if address is associated with current wallet
</code></pre>

<h2 id="wallet_list">wallet_list</h2>
<pre><code class="text">List wallet addresses

Args:
          None

Returns:
    List of wallet addresses
</code></pre>

<h2 id="wallet_new_address">wallet_new_address</h2>
<pre><code class="text">Generate a new wallet address

Args:
          None

Returns:
    (str) New wallet address in base58
</code></pre>

<h2 id="wallet_prefill_addresses">wallet_prefill_addresses</h2>
<pre><code class="text">Create new addresses, each containing `amount` credits

Args:
    'no_broadcast'              :  (bool)   whether to broadcast or not
    'num_addresses' (required)  :  (int)    num of addresses to create
    'amount' (required)         :  (float)  initial amount in each address

Returns:
    (dict) the resulting transaction
</code></pre>

<h2 id="wallet_public_key">wallet_public_key</h2>
<pre><code class="text">Get public key from wallet address

Args:
    'address' (required)  :  (str)  address for which to get the public key

Returns:
    (list) list of public keys associated with address.
        Could contain more than one public key if multisig.
</code></pre>

<h2 id="wallet_send">wallet_send</h2>
<pre><code class="text">Send credits. If given an address, send credits to it. If given a claim id, send a tip
to the owner of a claim specified by uri. A tip is a claim support where the recipient
of the support is the claim address for the claim being supported.

Args:
    'amount' (required)    :  (Decimal)  amount of credit to send
    'address' (required)   :  (str)      address to send credits to
    'claim_id' (required)  :  (str)      claim_id of the claim to send to tip to

Returns:
    If sending to an address:
    (bool) true if payment successfully scheduled

    If sending a claim tip:
    (dict) Dictionary containing the result of the support
    {
        txid : (str) txid of resulting support claim
        nout : (int) nout of the resulting support claim
        fee : (float) fee paid for the transaction
    }
</code></pre>

<h2 id="wallet_unlock">wallet_unlock</h2>
<pre><code class="text">Unlock an encrypted wallet

Args:
    'password' (required)  :  (str)  password for unlocking wallet

Returns:
    (bool) true if wallet is unlocked, otherwise false
</code></pre>

<h2 id="wallet_unused_address">wallet_unused_address</h2>
<pre><code class="text">Return an address containing no balance, will create
a new address if there is none.

Args:
          None

Returns:
    (str) Unused wallet address in base58
</code></pre>
                
                  
                
              
              
                
              
            </article>
          </div>
        </div>
      </main>
      
        
<footer class="md-footer">
  
    <div class="md-footer-nav">
      <nav class="md-footer-nav__inner md-grid">
        
        
          <a href="cli/" title="CLI" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Next
                </span>
                CLI
              </span>
            </div>
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
            </div>
          </a>
        
      </nav>
    </div>
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-footer-copyright">
        
        powered by
        <a href="http://www.mkdocs.org">MkDocs</a>
        and
        <a href="https://squidfunk.github.io/mkdocs-material/">
          Material for MkDocs</a>
      </div>
      
        
      
    </div>
  </div>
</footer>
      
    </div>
    
      <script src="./assets/javascripts/application.8eb9be28.js"></script>
      
      <script>app.initialize({version:"0.17.3",url:{base:"."}})</script>
      
    
    
      
        <script>!function(e,a,t,n,o,c,i){e.GoogleAnalyticsObject=o,e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=1*new Date,c=a.createElement(t),i=a.getElementsByTagName(t)[0],c.async=1,c.src="https://www.google-analytics.com/analytics.js",i.parentNode.insertBefore(c,i)}(window,document,"script",0,"ga"),ga("create","UA-60403362-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview");var links=document.getElementsByTagName("a");if(Array.prototype.map.call(links,function(e){e.host!=document.location.host&&e.addEventListener("click",function(){var a=e.getAttribute("data-md-action")||"follow";ga("send","event","outbound",a,e.href)})}),document.forms.search){var query=document.forms.search.query;query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})}</script>
      
    
  </body>
</html>