Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Coinbase Laravel Package

shakurov/coinbase

Laravel package for integrating Coinbase Commerce cryptocurrency payments. It wraps the Coinbase Commerce API to create charges and checkouts, manage payment workflows, and handle webhook events, with configurable credentials and a simple facade-based setup for Laravel applications.

View on GitHub
Deep Wiki
Context7

shakurov/coinbase is a lightweight Laravel integration for the Coinbase Commerce API, giving you a clean, expressive way to create charges, accept cryptocurrency payments, and manage your store's checkout flow from your application. Rather than juggling raw HTTP requests, you configure your API credentials once and use Laravel-friendly services to handle payment logic.

  • Publishable config file for your Coinbase Commerce credentials
  • Fluent helpers for creating and retrieving charges
  • Laravel facade and dependency-injection support
  • Composer-installable with package auto-discovery
  • Suitable for simple checkouts and custom crypto payment flows
Frequently asked questions about Coinbase
What is shakurov/coinbase used for?
It is a Laravel wrapper around the Coinbase Commerce REST API that lets you create charges, manage cryptocurrency payments, and receive webhook notifications from within a Laravel application. It follows standard framework idioms such as a service provider, publishable configuration, and a facade. Think of it as an HTTP convenience layer for Laravel rather than a complete payments integration.
How do I install and configure shakurov/coinbase in Laravel?
Install it with Composer using composer require shakurov/coinbase, then publish the package configuration with the vendor:publish command and set your Coinbase Commerce API key in your .env file. After that you can resolve the facade or inject the underlying client from the container. Confirm the exact config key names in the published config file before wiring it into application code.
Which Laravel and PHP versions does shakurov/coinbase support?
Check the declared constraints in the package's composer.json before anything else, because the last release was October 2023 and it likely targets Laravel 8 or 9 era versions and older PHP releases. Validate it against your target framework and PHP version, and test on PHP 8.2 and Laravel 11 or 12 if that is where you are headed. An install failure is the cheapest possible rejection, so run that check first.
Does shakurov/coinbase verify Coinbase Commerce webhook signatures?
Do not assume it does. Read the source, which is small, and confirm whether it implements HMAC signature verification against the shared webhook secret or leaves that entirely to you. Regardless of what the package provides, implement and test verification in your own webhook controller, validating against the raw request body. You should also confirm the current signature scheme against the Coinbase Commerce documentation, since upstream schemes can change.
Is shakurov/coinbase actively maintained and safe to use in production?
Signals are weak: a single maintainer, a small star count, zero dependents, and a last release in October 2023 suggest the package is effectively unmaintained. It also sits on a sensitive surface because it holds API keys and participates in webhook trust decisions. If you adopt it, assume you own it, budget for a fork and internal patching, and name an owner before it reaches production.
How does shakurov/coinbase compare to the official Coinbase Commerce PHP SDK?
The wrapper is a thin convenience layer over the same REST API that the official coinbase/coinbase-commerce-php SDK already covers, so its real value is Laravel ergonomics such as container binding, config publishing, and a facade, not extra capability. The official SDK is the more authoritative and better-supported option and is more likely to stay aligned with API version changes. A reasonable approach is to keep the wrapper behind an internal interface so swapping in the official SDK later is a one-file change.
What alternatives to shakurov/coinbase should I consider?
The official Coinbase Commerce PHP SDK is the most direct alternative and removes the dependency on a single-maintainer wrapper. You can also call the Coinbase Commerce REST API directly with Guzzle or any PSR-18 client, which keeps the dependency surface minimal for a small number of endpoints. If you need broader multi-processor support, evaluate a payment abstraction layer rather than a Coinbase-specific Laravel package.
How do I test a Coinbase Commerce integration built with this package?
Use a Coinbase Commerce sandbox key and write contract tests for charge creation, charge expiry, redirect flow, and webhook signature verification rather than relying only on mocks. Replay real webhook payloads in staging to confirm your handler is idempotent and that retries do not create duplicate state. Also assert behavior when the API returns errors or when a stale wrapper sends an unexpected API version.
Can I use shakurov/coinbase with Laravel 11 or Laravel 12?
Possibly, but only if its composer.json constraints allow those framework and PHP versions, which is unlikely given the October 2023 release date. Test the install in a clean Laravel 11 or 12 application with PHP 8.2 or newer before committing to it. If constraints block installation, you can fork the package and widen them, but verify the underlying code still works against the current Coinbase Commerce API first.
How should I structure my Laravel code around this Coinbase wrapper?
Define your own CryptoPaymentGateway interface and implement a Coinbase adapter that references the package only inside that adapter, so the facade never leaks into domain code. Add feature flagging and a kill switch so you can fall back to the official SDK or raw HTTP calls without touching business logic. Keep webhook processing queued and retried, and use idempotency keys on charge creation to avoid duplicate state.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource