Deprecated: WP_Rocket_Mobile_Detect::__construct(): Implicitly marking parameter $headers as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/wp-rocket/inc/classes/dependencies/mobiledetect/mobiledetectlib/Mobile_Detect.php on line 888
Deprecated: Firebase\JWT\JWT::encode(): Implicitly marking parameter $keyId as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/jwt-authentication-for-wp-rest-api/includes/vendor/firebase/php-jwt/src/JWT.php on line 183
Deprecated: Firebase\JWT\JWT::encode(): Implicitly marking parameter $head as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/jwt-authentication-for-wp-rest-api/includes/vendor/firebase/php-jwt/src/JWT.php on line 183
Deprecated: TEC\Common\lucatume\DI52\Container::singleton(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Container.php on line 145
Deprecated: TEC\Common\lucatume\DI52\Container::bind(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Container.php on line 486
Deprecated: TEC\Common\lucatume\DI52\Container::singletonDecorators(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Container.php on line 532
Deprecated: TEC\Common\lucatume\DI52\Container::getDecoratorBuilder(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Container.php on line 551
Deprecated: TEC\Common\lucatume\DI52\Container::bindDecorators(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Container.php on line 585
Deprecated: TEC\Common\lucatume\DI52\Container::instance(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Container.php on line 742
Deprecated: TEC\Common\lucatume\DI52\Builders\Resolver::resolveWithArgs(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/Resolver.php on line 158
Deprecated: TEC\Common\lucatume\DI52\Builders\Resolver::resolve(): Implicitly marking parameter $buildLine as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/Resolver.php on line 183
Deprecated: TEC\Common\lucatume\DI52\Builders\Resolver::cloneBuilder(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/Resolver.php on line 248
Deprecated: TEC\Common\lucatume\DI52\Builders\Factory::getBuilder(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/Factory.php on line 56
Deprecated: TEC\Common\lucatume\DI52\Builders\ClassBuilder::__construct(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/ClassBuilder.php on line 74
Deprecated: TEC\Common\lucatume\DI52\Builders\ClassBuilder::reinit(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/ClassBuilder.php on line 210
Deprecated: TEC\Common\lucatume\DI52\Builders\ReinitializableBuilderInterface::reinit(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/ReinitializableBuilderInterface.php on line 25
Deprecated: TEC\Common\lucatume\DI52\Builders\CallableBuilder::__construct(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/CallableBuilder.php on line 50
Deprecated: TEC\Common\lucatume\DI52\Builders\CallableBuilder::reinit(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/lucatume/di52/src/Builders/CallableBuilder.php on line 78
Deprecated: TEC\Common\StellarWP\DB\DB::generate_results(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/stellarwp/db/src/DB/DB.php on line 409
Deprecated: TEC\Common\StellarWP\DB\DB::generate_col(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/stellarwp/db/src/DB/DB.php on line 426
Deprecated: TEC\Common\StellarWP\Assets\Assets::asset(): Implicitly marking parameter $version as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/stellarwp/assets/src/Assets/Assets.php on line 103
Deprecated: TEC\Common\StellarWP\Assets\Assets::asset(): Implicitly marking parameter $plugin_path as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/stellarwp/assets/src/Assets/Assets.php on line 103
Deprecated: KadenceWP\KadenceBlocks\StellarWP\DB\DB::generate_results(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/db/src/DB/DB.php on line 463
Deprecated: KadenceWP\KadenceBlocks\StellarWP\DB\DB::generate_col(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/db/src/DB/DB.php on line 480
Deprecated: KadenceWP\KadenceBlocks\StellarWP\Uplink\Pipeline\Pipeline::__construct(): Implicitly marking parameter $container as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/uplink/src/Uplink/Pipeline/Pipeline.php on line 52
Deprecated: KadenceWP\KadenceBlocks\StellarWP\Uplink\Resources\Plugin::register(): Implicitly marking parameter $license_class as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/uplink/src/Uplink/Resources/Plugin.php on line 172
Deprecated: KadenceWP\KadenceBlocks\StellarWP\Uplink\Resources\Resource::__construct(): Implicitly marking parameter $license_class as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/uplink/src/Uplink/Resources/Resource.php on line 128
Deprecated: KadenceWP\KadenceBlocks\StellarWP\Uplink\Resources\Resource::register(): Implicitly marking parameter $license_class as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/uplink/src/Uplink/Resources/Resource.php on line 400
Deprecated: KadenceWP\KadenceBlocks\StellarWP\Uplink\Resources\Resource::register_resource(): Implicitly marking parameter $license_class as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/kadence-blocks/vendor/vendor-prefixed/stellarwp/uplink/src/Uplink/Resources/Resource.php on line 417
Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woo-discount-rules domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home2/jbswbdv/public_html/wp-includes/functions.php on line 6170
Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woo-discount-rules-pro domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home2/jbswbdv/public_html/wp-includes/functions.php on line 6170
Deprecated: Puc_v4p9_UpdateChecker::fixSupportedWordpressVersion(): Implicitly marking parameter $update as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/woo-discount-rules-pro/vendor/yahnis-elsts/plugin-update-checker/Puc/v4p9/UpdateChecker.php on line 343
Deprecated: Puc_v4p9_StateStore::setUpdate(): Implicitly marking parameter $update as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/woo-discount-rules-pro/vendor/yahnis-elsts/plugin-update-checker/Puc/v4p9/StateStore.php on line 79
Deprecated: Tribe__Events__Pro__Recurrence__Old_Events_Cleaner::__construct(): Implicitly marking parameter $scheduler as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Recurrence/Old_Events_Cleaner.php on line 28
Deprecated: Tribe__Events__Pro__Recurrence__Queue_Realtime::__construct(): Implicitly marking parameter $queue as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Recurrence/Queue_Realtime.php on line 31
Deprecated: Tribe__Events__Pro__Recurrence__Queue_Realtime::__construct(): Implicitly marking parameter $ajax_operations as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Recurrence/Queue_Realtime.php on line 31
Deprecated: Tribe__Events__Pro__Recurrence__Queue_Realtime::__construct(): Implicitly marking parameter $queue_processor as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Recurrence/Queue_Realtime.php on line 31
Deprecated: Tribe__Events__Pro__Repositories__Event::get_recurrence_creation_callback(): Implicitly marking parameter $postarr as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Repositories/Event.php on line 795
Deprecated: Tribe\Events\Pro\Views\V2\Hooks::filter_events_views_v2_view_repository_args(): Implicitly marking parameter $context as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Views/V2/Hooks.php on line 446
Deprecated: Tribe\Events\Pro\Views\V2\Hooks::filter_page_reset_ignored_params(): Implicitly marking parameter $view as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Views/V2/Hooks.php on line 460
Deprecated: Tribe__Events__Pro__Service_Providers__Templates::filter_template_path_list(): Implicitly marking parameter $template as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Service_Providers/Templates.php on line 56
Deprecated: Tribe\Events\Pro\Admin\Manager\Page::is_current_screen(): Implicitly marking parameter $screen as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Admin/Manager/Page.php on line 379
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Migration\Telemetry::log_error(): Implicitly marking parameter $data as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Migration/Telemetry.php on line 130
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Event_Recurrence::build_date_data_from_rule(): Implicitly marking parameter $post_id as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Event_Recurrence.php on line 178
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Event_Recurrence::build_date_data_from_rule(): Implicitly marking parameter $rule as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Event_Recurrence.php on line 178
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Event_Recurrence::add_off_pattern_flag_to_rule(): Implicitly marking parameter $post_id as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Event_Recurrence.php on line 425
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Event_Recurrence::is_rule_dtstart_off_pattern(): Implicitly marking parameter $post_id as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Event_Recurrence.php on line 517
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Ical_Strings::get_rset_for_ical_string_dtstart(): Implicitly marking parameter $limit_infinite_until as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Ical_Strings.php on line 97
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Ical_Strings::get_rrule_end_date(): Implicitly marking parameter $never_starts_at as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Ical_Strings.php on line 440
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Ical_Strings::set_ical_string_attribute(): Implicitly marking parameter $new_values as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Ical_Strings.php on line 525
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Traits\With_Ical_Strings::set_ical_string_until_limit(): Implicitly marking parameter $until as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Traits/With_Ical_Strings.php on line 783
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Models\Provider::get_occurrences_generator(): Implicitly marking parameter $generator as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Models/Provider.php on line 111
Deprecated: TEC\Events_Pro\Custom_Tables\V1\Series\Post_Type::is_same_type(): Implicitly marking parameter $post as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/Series/Post_Type.php on line 260
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Condense_Events_Series::get_filter(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Condense_Events_Series.php on line 258
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Condense_Events_Series::cleanup_meta_query(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Condense_Events_Series.php on line 384
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Replace_Results::replace(): Implicitly marking parameter $wp_query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Replace_Results.php on line 63
Deprecated: tribe_events_virtual_show_fail_message(): Implicitly marking parameter $message as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/functions/template-tags/virtual.php on line 17
Deprecated: Tribe\Events\Virtual\Metabox::__construct(): Implicitly marking parameter $context as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Virtual/Metabox.php on line 69
Deprecated: Tribe\Events\Virtual\Views\V2\Views_Provider::filter_events_views_v2_view_repository_args(): Implicitly marking parameter $context as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Tribe/Virtual/Views/V2/Views_Provider.php on line 85
Deprecated: Creation of dynamic property JBS_Carousel::$taxonomy is deprecated in /home2/jbswbdv/public_html/wp-content/themes/shopsf2026/autoload/carousel-posts.php on line 17
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Modifiers\Events_Series_Relationship_Modifier::applies_to(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Modifiers/Events_Series_Relationship_Modifier.php on line 32
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Modifiers\Occurrences_Series_Relationship_Modifier::applies_to(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Modifiers/Occurrences_Series_Relationship_Modifier.php on line 49
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Modifiers\Events_Not_In_Series_Modifier::applies_to(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Modifiers/Events_Not_In_Series_Modifier.php on line 49
Deprecated: TEC\Events_Pro\Custom_Tables\V1\WP_Query\Modifiers\Events_Not_Recurring_Query_Modifier::applies_to(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/events-calendar-pro/src/Events_Pro/Custom_Tables/V1/WP_Query/Modifiers/Events_Not_Recurring_Query_Modifier.php on line 67
Deprecated: TEC\Common\StellarWP\Uplink\API\Client::validate_license(): Implicitly marking parameter $key as nullable is deprecated, the explicit nullable type must be used instead in /home2/jbswbdv/public_html/wp-content/plugins/event-tickets/common/vendor/vendor-prefixed/stellarwp/uplink/src/Uplink/API/Client.php on line 197 The Right to Bear Arms
0
Product Categories
The Right to Bear Arms
$12.99
Stephen P. Halbrook proves that the right to bear arms is not a privilege granted by rulers but a fundamental liberty embedded in American law and history. With precision and force, he tracks the right from medieval England through the Revolution, Reconstruction, and today’s court battles, exposing how elites seek to erase what the Founders enshrined. Includes a Foreword by Renee Lettow Lerner.
On April 19, 1775, embattled farmers stood armed against British regulars on the Concord green. They bore their own firearms — not in the privacy of their homes, but publicly, where the Revolution itself began. That image, Halbrook reminds us, is the plain meaning of the Second Amendment’s promise: “the right of the people to keep and bear arms, shall not be infringed.” It is the text, the history, the tradition — and it cannot be written out by courts or elites. The Right to Bear Arms delivers the most thorough historical investigation ever published of this constitutional guarantee.
Halbrook begins with English precedents: the 1328 Statute of Northampton, the 1686 Rex v. Knight case, and the 1689 Declaration of Rights. He shows how early restrictions were narrowly applied, and how the Glorious Revolution confirmed a Protestant right to have arms for defense. Colonists carried that inheritance to America, where bearing arms was necessity and sometimes legal duty. Trials from the Boston Massacre to the Revolution itself reveal a people accustomed to going armed in public, and determined to defend that liberty.
The book then charts the right through the Founding era, the Bill of Rights debates, and the Fourteenth Amendment. It highlights how Reconstruction sought to secure the freedmen’s right to bear arms against hostile state governments. Halbrook unpacks the distortions of the late nineteenth and early twentieth centuries — from the “Wild West” caricatures to Jim Crow laws and anti-immigrant restrictions that denied the right to despised classes. He shows how, in the twentieth century, state courts and eventually the U.S. Supreme Court grappled with a right that had never ceased to exist in practice, even as licensing regimes grew increasingly hostile.
Today, as some states treat the bearing of arms as a crime unless the government grants permission, Halbrook confronts the selective history used to justify such regimes. He demonstrates that the overwhelming majority of states recognize a general right to carry, and that the Supreme Court’s originalist turn has vindicated the right against modern “balancing tests” designed to erase it. The book closes by reminding readers that the Second Amendment was never about privileges for a few, but about a liberty belonging to the people.
This volume, with a Foreword by Renee Lettow Lerner, arrives at a critical time in constitutional debate. It is indispensable for readers who demand evidence, not rhetoric, on what the right to bear arms has always meant — and why it matters now more than ever. (2021ed, 348pp, hb)