Есть по крайней мере несколько способов, все зависит от того где будет находиться нода - на твоем сервере, или с помощью api сторонних сервисов (те кто будет владельцем приватных ключей).
Если нужно чтобы нода была на сервере и приватные ключи были у тебя, то самый простой способ например, для битка - установить на сервер bitcoin-qt и используя его стандартную команду сгененрировать адрес через php.
use BitWasp\Bitcoin\Bitcoin;
use BitWasp\Bitcoin\Address;
use BitWasp\Bitcoin\Key\PrivateKeyFactory;
$network = Bitcoin::getNetwork();
$privateKey = PrivateKeyFactory::create(true);
$publicKey = $privateKey->getPublicKey();
$address = $publicKey->getAddress();
Можно также сгенерировать адрес через
https://www.bitaddress.org/Либо запросить api blockchain.com и при авторизации создавать через него новый кошелек и вытаскивать оттуда адрес
Как вариант еще bitaps - когда-то пользовался, не знаю рабочий ли сейчас
Есть еще библиотека bitcoin js.