PHPackages                             laraditz/wallet - 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. laraditz/wallet

ActiveLibrary

laraditz/wallet
===============

A simple virtual wallet or e-wallet for Laravel

1.1.4(11mo ago)043MITPHPPHP ^8.0CI failing

Since Aug 25Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/laraditz/wallet)[ Packagist](https://packagist.org/packages/laraditz/wallet)[ Docs](https://github.com/laraditz/wallet)[ RSS](/packages/laraditz-wallet/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (5)Versions (15)Used By (0)

[![Laravel Wallet](./Banner.png)](./Banner.png)

Laravel Wallet
==============

[](#laravel-wallet)

[![Latest Version on Packagist](https://camo.githubusercontent.com/bb7b36008718301d1224bbbc900ab58f502b45532746232168c6a67deaae2ed2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c6172616469747a2f77616c6c65742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/laraditz/wallet)[![Total Downloads](https://camo.githubusercontent.com/d122882dcd07d6469ceda381679154c64425544cccc3a422b47df4266546de76/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c6172616469747a2f77616c6c65742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/laraditz/wallet)[![License](https://camo.githubusercontent.com/b41554ce2f3e18228d9393becff432ffef0d219c387299141c9d7b33e7de98c5/68747470733a2f2f706f7365722e707567782e6f72672f6c6172616469747a2f77616c6c65742f6c6963656e73653f666f726d61743d666c61742d737175617265)](https://packagist.org/packages/laraditz/wallet)

A simple virtual wallet or e-wallet for Laravel.

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

[](#installation)

You can install the package via composer:

```
composer require laraditz/wallet
```

Run the migration command to create the necessary database table.

```
php artisan migrate
```

Usage
-----

[](#usage)

Add the `HasWallets` trait to your model.

```
use Laraditz\Wallet\Traits\HasWallets;

class User extends Authenticatable
{
    use HasWallets;
    ...
}
```

Create your default wallet. If you use a different name, you may need to set the `WALLET_DEFAULT` in your `.env` and set the value to the slug value. This is optional and only useful when you want to retrieve your wallet but do not want to specify the wallet slug.

```
// Simply use below code to create a default wallet types
app('wallet')->createWalletType([
    'name' => 'Default',
    'currency_code' => 'POINTS',
    'currency_symbol' => 'PTS',
]);
```

You also can specify many other setting when creating wallet type as below:-

```
use Laraditz\Wallet\Enums\ActiveStatus;
use Laraditz\Wallet\Enums\Placement;

app('wallet')->createWalletType([
    'name' => 'New Wallet', // will produce new-wallet slug
    'description' => 'This is my new wallet',
    'currency_code' => 'POINTS',
    'currency_symbol' => 'PTS',
    'default_scale' => 0, // example, EUR and USD have 2 decimal places, while JPY has 0
    'decimal_separator' => '.', // default is using dot (.)
    'thousand_separator' => ',', // default is using comma (,)
    'code_placement' => Placement::Right, // default placement is left
    'symbol_placement' => Placement::Left, // default placement is left
    'status' => ActiveStatus::Active, // default status is active
    'start_at' => now(), // you can also set when the wallet can start be use
    'end_at' => now()->addDays(3), // or when it ends
]);
```

With that we are set. You can now deposit, withdraw or transfer using your e-wallet.

```
$userOne = User::find(1);
$walletOne = $userOne->getWallet(); // get default wallet for userOne

// deposit
$deposit = $walletOne->deposit("100"); // deposit amount of 100 into default wallet with processing status
$deposit->markAsCompleted(); // change the status from processing to completed

$walletOne->depositNow("100"); // Use depositNow() so that the transaction completed immediately

// withdraw
$withdraw = $walletOne->withdraw("100"); // withdraw amount of 100 into default wallet with processing status
$withdraw->markAsCompleted(); // change the status from processing to completed

$walletOne->withdrawNow("100"); // Use withdrawNow() so that the transaction completed immediately

$userTwo = User::find(2);
$walletTwo = $userTwo->getWallet(); // get default wallet for userTwo

// transfer amount from userOne to userTwo
$transfer = $walletOne->transfer($walletTwo, "100");
$transfer->markAsCompleted(); // change the status from processing to completed

$walletOne->transferNow($walletTwo, "100"); // Use transferNow() so that the transaction completed immediately

// get user transactions
$allTransactions = $userOne->transactions;
```

By default when you call `getWallet`, it will create the user wallet if it's not already been created. You wallet will be assigned a random unique wallet address value. But it is also possible for you to create the wallet with your own address value.

```
$userThree = User::find(3);
$userThree->createWallet(
    slug: 'new-wallet', // specify the wallet slug
    values: [
        'address' => '0xf6A32f757196ac753A354F145F408bF88BEacf77',
        'description' => 'This is my crypto wallet',
    ]
);

// specify the slug name to get the new wallet
$walletThree = $userThree->getWallet('new-wallet');

// to update description or/and metadata to the wallet
$walletThree->update([
    'description' => 'This is a new description',
    'metadata' => [
        'user' => 'Farhan'
    ]
]);
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Raditz Farhan](https://github.com/laraditz)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance52

Moderate activity, may be stable

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

Every ~126 days

Recently: every ~0 days

Total

12

Last Release

340d ago

Major Versions

0.0.2 → 1.0.02023-09-19

PHP version history (2 changes)0.0.0PHP ^7.4|^8.0

1.1.0PHP ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1203676?v=4)[Raditz Farhan](/maintainers/raditzfarhan)[@raditzfarhan](https://github.com/raditzfarhan)

---

Top Contributors

[![raditzfarhan](https://avatars.githubusercontent.com/u/1203676?v=4)](https://github.com/raditzfarhan "raditzfarhan (57 commits)")

---

Tags

laravelwalletlaraditz

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/laraditz-wallet/health.svg)

```
[![Health](https://phpackages.com/badges/laraditz-wallet/health.svg)](https://phpackages.com/packages/laraditz-wallet)
```

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[watson/validating

Eloquent model validating trait.

9723.3M47](/packages/watson-validating)[clickbar/laravel-magellan

This package provides functionality for working with the postgis extension in Laravel.

423715.4k1](/packages/clickbar-laravel-magellan)[yadahan/laravel-authentication-log

Laravel Authentication Log provides authentication logger and notification for Laravel.

416632.8k5](/packages/yadahan-laravel-authentication-log)[reedware/laravel-relation-joins

Adds the ability to join on a relationship by name.

2121.2M13](/packages/reedware-laravel-relation-joins)[api-platform/laravel

API Platform support for Laravel

59126.4k6](/packages/api-platform-laravel)

PHPackages © 2026

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