PHPackages                             flesh404/laravel-kaspa-address - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. flesh404/laravel-kaspa-address

ActiveLibrary

flesh404/laravel-kaspa-address
==============================

Laravel package for validating and analyzing Kaspa addresses

v1.0.0(3mo ago)01MITPHPPHP ^8.1CI passing

Since Feb 8Pushed 3mo agoCompare

[ Source](https://github.com/flesh404/laravel-kaspa-address)[ Packagist](https://packagist.org/packages/flesh404/laravel-kaspa-address)[ RSS](/packages/flesh404-laravel-kaspa-address/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

laravel-kaspa-address
=====================

[](#laravel-kaspa-address)

Laravel package for validating, analyzing and generating Kaspa addresses.

**Disclaimer:**
This project is not officially affiliated with, endorsed by, or connected to Kaspa or the Kaspa Foundation.

Features
--------

[](#features)

- Validate Kaspa addresses (mainnet / testnet / devnet / simnet)
- Extract prefix and network information
- Kaspa-specific Bech32 checksum verification
- Generate valid Kaspa addresses (testing &amp; tooling)
- Artisan commands for validation and generation
- Based on the **official Kaspa Go / Rust reference implementations**
- Zero dependencies

Installation
------------

[](#installation)

```
composer require flesh404/laravel-kaspa-address
```

Laravel will auto-discover the service provider.

Usage
-----

[](#usage)

### Validate an address

[](#validate-an-address)

```
use Flesh404\Kaspa\Laravel\Address\KaspaAddress;

KaspaAddress::isValid('kaspa:...');
```

Returns `true` or `false`.

### Parse and inspect an address

[](#parse-and-inspect-an-address)

```
use Flesh404\Kaspa\Laravel\Address\KaspaAddress;

$address = KaspaAddress::parse('kaspa:qp...');

$address->prefix()->value;   // "kaspa"
$address->network()->value;  // "mainnet"
```

Throws `InvalidKaspaAddress` if invalid.

### Analyzer (recommended for APIs &amp; checker websites)

[](#analyzer-recommended-for-apis--checker-websites)

The KaspaAddressAnalyzer never throws and always returns a structured result.

```
use Flesh404\Kaspa\Laravel\Address\Support\KaspaAddressAnalyzer

$result = KaspaAddressAnalyzer::analyze('kaspa:qp...');
```

**Result format**

```
[
    'valid'   => true,
    'prefix'  => 'kaspa',
    'network' => 'mainnet',
    'errors'  => [],
]
```

For invalid addresses:

```
[
    'valid'  => false,
    'errors' => [
        [
            'code' => 'address.invalid',
            'message' => 'Invalid Kaspa address.'
        ],
        [
            'code' => 'bech32.checksum_invalid',
            'message' => 'Invalid Bech32 checksum.'
        ]
    ],
]
```

### Address Generator

[](#address-generator)

The KaspaAddressGenerator provides a convenient way to generate valid random Kaspa addresses for testing and development purposes.

```
use Flesh404\Kaspa\Laravel\Address\Support\KaspaAddressGenerator;
use Flesh404\Kaspa\Laravel\Address\Enums\KaspaPrefix;

$address = KaspaAddressGenerator::generate(KaspaPrefix::Mainnet);

(string) $address;          // "kaspa:qp..."
$address->prefix()->value;  // "kaspa"
$address->network()->value; // "mainnet"
```

You can also generate addresses for other networks:

```
KaspaAddressGenerator::generate(KaspaPrefix::Testnet);
KaspaAddressGenerator::generate(KaspaPrefix::Devnet);
KaspaAddressGenerator::generate(KaspaPrefix::Simnet);
```

**Note:**The generator is intended for testing, fixtures, and tooling. It does not derive keys or represent real wallet ownership.

### Artisan Commands

[](#artisan-commands)

The package ships with a CLI command for validating &amp; generating Kaspa addresses.

#### Validate an Address

[](#validate-an-address-1)

```
php artisan kaspa:address kaspa:qp...
```

**Example Output:**

```
✔ Address is valid

Prefix:   kaspa
Network:  mainnet
```

For invalid addresses:

```
✘ Address is invalid
 - Invalid Kaspa address. (address.invalid)
 - Invalid Bech32 checksum. (bech32.checksum_invalid)
```

Exit codes:

- 0 → valid
- 1 → invalid

#### Generate an address

[](#generate-an-address)

Generate a random valid Kaspa address for a given network:

```
php artisan kaspa:address:generate
```

Defaults to mainnet (kaspa).

Generate for a specific network:

```
php artisan kaspa:address:generate kaspatest
php artisan kaspa:address:generate kaspadev
php artisan kaspa:address:generate kaspasim
```

Output:

```
kaspa:qp...
```

Exit codes:

- 0 → valid
- 1 → invalid

### Laravel Validation Rule

[](#laravel-validation-rule)

The package provides a Laravel validation rule for Kaspa addresses.

It validates that a value is:

- a valid Kaspa address
- optionally restricted to specific Kaspa networks

**Basic usage (allow all networks):**

```
use Flesh404\Kaspa\Laravel\Address\Support\Rules\KaspaAddressRule;

$request->validate([
    'address' => ['required', new KaspaAddressRule()],
]);
```

**Restrict to a specific network:**

```
use Flesh404\Kaspa\Laravel\Address\Support\Rules\KaspaAddressRule;
use Flesh404\Kaspa\Laravel\Address\Enums\KaspaPrefix;

$request->validate([
    'address' => ['required', new KaspaAddressRule(KaspaPrefix::Mainnet)],
]);
```

**Allow multiple networks:**

```
$request->validate([
    'address' => [
        'required',
        new KaspaAddressRule([
            KaspaPrefix::Mainnet,
            KaspaPrefix::Testnet,
        ]),
    ],
]);
```

Validation error messages are currently hardcoded and do not require Laravel translation files.

Supported Networks &amp; Prefixes
---------------------------------

[](#supported-networks--prefixes)

NetworkPrefixMainnet`kaspa`Testnet`kaspatest`Devnet`kaspadev`Simnet`kaspasim`Testing
-------

[](#testing)

```
./vendor/bin/phpunit
```

Includes:

- Bech32 encoding &amp; decoding tests
- Address parsing tests
- Generator tests
- Analyzer tests
- Artisan command tests

References
----------

[](#references)

- Kaspa Go implementation (kaspad)

- Rusty-Kaspa (Rust reference implementation)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance82

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

93d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/33d18941f8057144758d4feced096563c4bfae450b87d9129c5be3dde5fba126?d=identicon)[Flesh404](/maintainers/Flesh404)

---

Top Contributors

[![flesh404](https://avatars.githubusercontent.com/u/48053007?v=4)](https://github.com/flesh404 "flesh404 (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/flesh404-laravel-kaspa-address/health.svg)

```
[![Health](https://phpackages.com/badges/flesh404-laravel-kaspa-address/health.svg)](https://phpackages.com/packages/flesh404-laravel-kaspa-address)
```

###  Alternatives

[fumeapp/modeltyper

Generate TypeScript interfaces from Laravel Models

196277.9k](/packages/fumeapp-modeltyper)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
