Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

andkom/php-bitcoin-address

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

24 Commits

Repository files navigation

PHP Bitcoin Address

A simple P2PK, P2PKH, P2SH, P2WPKH, P2WSH, P2TR output script/address parser/generator/validator.

Supported types:

  • Pay-To-PubKey (P2PK)
  • Pay-To-PubKeyHash (P2PKH)
  • Pay-To-Multisig (P2MS)
  • Pay-To-ScriptHash (P2SH)
  • Pay-To-WitnessPubKeyHash (P2WPKH)
  • Pay-To-WitnessScriptHash (P2WSH)
  • Pay-To-Taproot (P2TR)
  • P2WPKH-over-P2SH
  • P2WSH-over-P2SH
  • any combination

Supported networks:

  • Bitcoin
  • Bitcoin Testnet
  • Bitcoin Gold
  • Bitcoin Cash
  • Litecoin
  • Litecoin Testnet
  • Dogecoin
  • Dogecoin Testnet
  • Viacoin
  • Viacoin Testnet
  • Dash
  • Dash Testnet
  • Zcash

Installation

composer require andkom/php-bitcoin-address

Examples

Generate a P2PK/P2PKH address:

$address = OutputFactory::p2pk($pubKey)->address(); 
$address = OutputFactory::p2pkh($pubKeyHash)->address(); 

Generate a P2MS address:

$address = OutputFactory::p2ms(2, [$pubKey1, $pubKey2, $pubKey3])->address();

Generate a P2SH address:

$factory = new OutputFactory();
$p2ms = $factory->p2ms(2, [$pubKey1, $pubKey2, $pubKey3]);
$address = $factory->p2sh($p2ms)->address();

Generate a P2WPKH address:

$address = OutputFactory::p2wpkh($pubKeyHash)->address();

Generate a P2WSH address:

$factory = new OutputFactory();
$p2ms = $factory->p2ms(2, [$pubKey1, $pubKey2, $pubKey3]);
$address = $factory->p2wsh($p2ms)->address();

Generate a P2WPKH-over-P2SH address:

$factory = new OutputFactory();
$p2wpkh = $factory->p2wpkh($pubKeyHash);
$address = $factory->p2sh($p2wpkh)->address();

Generate a P2WSH-over-P2SH address:

$factory = new OutputFactory();
$p2ms = $factory->p2ms(2, [$pubKey1, $pubKey2, $pubKey3]);
$p2wsh = $factory->p2wsh($p2ms);
$address = $factory->p2sh($p2wsh)->address();

Generate a P2TR address:

$taprootPubKey = Taproot::construct($pubKey);
$address = OutputFactory::p2tr($taprootPubKey)->address();

Generate an address from an output script:

$address = OutputFactory::fromScript($script)->address();

Decode a Bitcoin address:

$output = NetworkFactory::bitcoin()->decodeAddress('1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH');

Get a Bitcoin address type:

$type = NetworkFactory::bitcoin()->decodeAddress('1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH')->type(); // p2pkh

Validate a Bitcoin address:

NetworkFactory::bitcoin()->validateAddress('1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH'); // true

About

A simple P2PK, P2PKH, P2SH, P2WPKH, P2WSH, P2TR output script/address parser/generator/validator.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /