American Whitewater

North Carolina Navigability Report

Summary

North Carolina's state test of navigability is equivalent to a recreational boating test. If a boater can float the river, the river is navigable. The public can use all waters determined to be navigable for recreational activities such as boating, swimming, wading and fishing.

State Test of Navigability

North Carolina has adopted the “navigable in fact” test as the state test of navigability.1) A river is considered navigable-in-fact if the river is simply capable of being used for purposes of “trade and travel in the usual and ordinary modes,” regardless of the frequency of actual use.2) All waters determined to be “navigable in fact” are subject to the public trust doctrine, which means that the public can use these waters for recreational activities such as boating, swimming, wading and fishing.3). In general, the North Carolina courts view a navigable stream as a public highway.4) By statute, North Carolina has determined that “the term 'navigable waters' shall not include any waters within the boundaries of any reservoir, pond or impoundment used in connection with the generation of electricity, or of any reservoir project owned or operated by the United States.5)

Extent of Public Rights in Navigable and Non-Navigable Rivers

Lands lying beneath navigable waters are subject to the public trust doctrine.6) Thus, because the public owns the riverbeds of navigable waters, contact with the riverbed is not an issue. If the navigable water is a tidal body, public use includes all waters covered at mean high tide.7) A 1995 decision by the N.C. Supreme Court suggests that public trust rights are limited to navigable waters.8)

Miscellaneous

North Carolina has a statute that limits local, private and special legislation relating to non-navigable streams.9) North Carolina also has a statute making it illegal to place obstructions in navigable streams that impede or retard flows.10)

1) See Gwathmey v. Department of Environment, Health, and Natural Resources, 464 S.E.2d 674, 674 (1995) (holding that “if a body of water in its natural conditional can be navigated by watercraft, it is navigable-in-fact and, therefore, navigable-in-law, even if it has not been used for such a purpose.”). See also N.C. GEN.STAT. § 146-64(4) (2000) (“‛Navigable waters’ means all waters which are navigable-in-fact.”).
2) See Taylor v. West Virginia Pulp & Paper Co., 137 S.E.2d 833, 836 (1964).
3) N.C. GEN. STAT. § 1-45.1 (2000). Interestingly, the right of use of navigable rivers under the public trust doctrine apparently does not include the right to land on the riverbank. See Op. Atty Gen., Whisnant, Jan. 20, 1998 (citing to Gaither v. Albemarle Hospital, 70 S.E.2d 680 (1952
4) See Gaither v. Hospital, 70 S.E. 2d 680; Cromartie v. Stone, 140 S.E. 612.
5) N.C. GEN. STAT. § 76-40.
6) See Gwathmey, 464 S.E.2d at 682.
7) See Carolina Beach Fishing Pier, Inc. v. Town of Carolina Beach, 177 S.E.2d 513, 516 (1970); State ex rel. Roher v. Credle, 369 S.E.2d 825, 831 (1988); State v. Forehand, 312 S.E.2d 257, 249 (1984); N.C. GEN. STAT. § 77-20(a) (2000).
8) See Gwathmey, 464 S.E.2d at 678. (The Court stated that “the public trust doctrine is not an issue in cases where the land involved is above water or where the body of water regularly covering the land involved is not navigable-in-law.”
9) N.C. Constitution, Article II, § 24(1)(e).
10) N.C. GEN.STAT. § 77-13 (1997).
Join AW and support river stewardship nationwide!
7.4.3PHP Version613msRequest Duration6MBMemory UsageGET content/{url}Route
    • Booting (55.47ms)
    • Application (558ms)
    • 1 x Application (90.96%)
      558ms
      1 x Booting (9.04%)
      55.47ms
      14 templates were rendered
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • app::layout.gadget (resources/views/layout/gadget.blade.php)2blade
        Params
        0
        contents
        1
        formRenderService
      • layout.columnstyle.one (resources/views/layout/columnstyle/one.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.columnstyle.componentstack (resources/views/layout/columnstyle/componentstack.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        stack
        8
        component
      • layout.main (resources/views/layout/main.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._headers (resources/views/layout/_headers.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.header (resources/views/layout/header.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._scripts (resources/views/layout/_scripts.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.navigation (resources/views/layout/navigation.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • includes.alert.membership (resources/views/includes/alert/membership.blade.php)17blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
        15
        shouldNotifyUser
        16
        user
      • navigation.menu.static (resources/views/navigation/menu/static.blade.php)15blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
      • includes.footer (resources/views/includes/footer.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • layout.pagemap (resources/views/layout/pagemap.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      uri
      GET content/{url}
      middleware
      web
      controller
      App\Http\Controllers\Wh2oController@content
      namespace
      App\Http\Controllers
      where
      as
      generated::Os9R4mqMKRF5ktoI
      file
      app/Http/Controllers/Wh2oController.php:34-68
      10 statements were executed, 4 of which were duplicated, 6 unique3.77ms
      • select * from security where domain in ('ScriptLibraryGadget') and area is null;
        140μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('ArticleGadget') and area is null;
        164μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        560μs/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        380μs/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from security where domain in ('EmptyGadget') and area is null;
        152μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('MessageGadget') and area is null;
        150μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('SecurityGadget') and area is null;
        160μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security_defaults where domain in ('SecurityGadget');
        145μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        420μs/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        1.5ms/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
          _token
          4321wlaeC15aZpRObMpF7nUSAqfYooVO6AsKVSWV
          page
          array:1 [ "count" => -1 ]
          PHPDEBUGBAR_STACK_DATA
          []
          path_info
          /content/Wiki/access:nc
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:15 [ "priority" => array:1 [ 0 => "u=0, i" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "host" => array:1 [ 0 => "beta.americanwhitewater.org" ] ]
          request_server
          0 of 0
          array:42 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_PRIORITY" => "u=0, i" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_HOST" => "beta.americanwhitewater.org" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "beta.americanwhitewater.org" "SERVER_PORT" => "443" "SERVER_ADDR" => "172.31.18.125" "REMOTE_PORT" => "36108" "REMOTE_ADDR" => "18.222.188.129" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => true "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/opt/americanwhitewater.org/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/content/Wiki/access:nc" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "PHP_VALUE" => "post_max_size=20M" "SCRIPT_FILENAME" => "/opt/americanwhitewater.org/public/index.php" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1743712499.1271 "REQUEST_TIME" => 1743712499 ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Thu, 03 Apr 2025 20:34:59 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjRnUW9sUDRuQ3pWQmxNZGxrNkVtZFE9PSIsInZhbHVlIjoiM3IrYjJpZmk3dWZXWEpKeXZnYVpYWmJDR1lyWkhzMHJRdFZiZEVKOUVRUldhcVJNaWhIaGY0TS9XUW4vWVQwRURiSHVvSDFhMTNZQktCZFh2SUdWTHNyNDhHTnpJbkFjclpyRHgyZ0dncHVod2ZibWoyMG5WdlNWNTJ0Ry9LWlMiLCJtYWMiOiIyMWY0ZTAzYzYzYmIxMzZlMmQzYzBmMzQzMDg2OTFjOWI1NGE3ODg2Mzc2YmM4M2Q1YzQzZGI5N2U2ZTk3YjA0In0%3D; expires=Thu, 03-Apr-2025 22:34:59 GMT; Max-Age=7200; path=/XSRF-TOKEN=eyJpdiI6IjRnUW9sUDRuQ3pWQmxNZGxrNkVtZFE9PSIsInZhbHVlIjoiM3IrYjJpZmk3dWZXWEpKeXZnYVpYWmJDR1lyWkhzMHJRdFZiZEVKOUVRUldhcVJNaWhIaGY0TS9XUW4vWVQwRURiSHVvS" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjM2M0NGT09DNlFubXV3bnR2QUhQOUE9PSIsInZhbHVlIjoiQkdla2tPdU93ZTR2ZjRjN3pvL3hMajFWL09DYXBOVDV3ejdWYnJjVFhleU8zWmM1NjFTam1ZYjZnV1BIZjg5RyIsIm1hYyI6ImUzNWU0YWIwNTcxNTZlODA0ODU0OGUzMTRkZTJjMDM1ZTRiZTJkZTljYzE3NDEwNmQwOTY3ZDExMTZiNWRjMjEifQ%3D%3D; expires=Thu, 03-Apr-2025 20:33:59 GMT; Max-Age=0; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjM2M0NGT09DNlFubXV3bnR2QUhQOUE9PSIsInZhbHVlIjoiQkdla2tPdU93ZTR2ZjRjN3pvL3hMajFWL09DYXBOVDV3ejdWYnJjVFhleU8zWmM1NjFTa" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjRnUW9sUDRuQ3pWQmxNZGxrNkVtZFE9PSIsInZhbHVlIjoiM3IrYjJpZmk3dWZXWEpKeXZnYVpYWmJDR1lyWkhzMHJRdFZiZEVKOUVRUldhcVJNaWhIaGY0TS9XUW4vWVQwRURiSHVvSDFhMTNZQktCZFh2SUdWTHNyNDhHTnpJbkFjclpyRHgyZ0dncHVod2ZibWoyMG5WdlNWNTJ0Ry9LWlMiLCJtYWMiOiIyMWY0ZTAzYzYzYmIxMzZlMmQzYzBmMzQzMDg2OTFjOWI1NGE3ODg2Mzc2YmM4M2Q1YzQzZGI5N2U2ZTk3YjA0In0%3D; expires=Thu, 03-Apr-2025 22:34:59 GMT; path=/XSRF-TOKEN=eyJpdiI6IjRnUW9sUDRuQ3pWQmxNZGxrNkVtZFE9PSIsInZhbHVlIjoiM3IrYjJpZmk3dWZXWEpKeXZnYVpYWmJDR1lyWkhzMHJRdFZiZEVKOUVRUldhcVJNaWhIaGY0TS9XUW4vWVQwRURiSHVvS" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjM2M0NGT09DNlFubXV3bnR2QUhQOUE9PSIsInZhbHVlIjoiQkdla2tPdU93ZTR2ZjRjN3pvL3hMajFWL09DYXBOVDV3ejdWYnJjVFhleU8zWmM1NjFTam1ZYjZnV1BIZjg5RyIsIm1hYyI6ImUzNWU0YWIwNTcxNTZlODA0ODU0OGUzMTRkZTJjMDM1ZTRiZTJkZTljYzE3NDEwNmQwOTY3ZDExMTZiNWRjMjEifQ%3D%3D; expires=Thu, 03-Apr-2025 20:33:59 GMT; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjM2M0NGT09DNlFubXV3bnR2QUhQOUE9PSIsInZhbHVlIjoiQkdla2tPdU93ZTR2ZjRjN3pvL3hMajFWL09DYXBOVDV3ejdWYnJjVFhleU8zWmM1NjFTa" ] ]
          session_attributes
          0 of 0
          array:3 [ "_token" => "4321wlaeC15aZpRObMpF7nUSAqfYooVO6AsKVSWV" "page" => array:1 [ "count" => -1 ] "PHPDEBUGBAR_STACK_DATA" => [] ]