- PHP 8.2 or higher
- Composer
- Docker and docker compose if you want to run acceptance tests
To install, run:
composer require xrpl/xumm-sdk-php
First obtain Xumm API credentials by registering your app.
Initialize the Xumm SDK in your application:
// Either pass API credentials through the constructor
$sdk = new XummSdk($apiKey, $apiSecret);
// Or set them as environment variables. See .env.example for the expected variable names.
// Note: the .env file is mostly applicable when contributing to the SDK itself.
$sdk = XummSdk();
Each call on the SDK object will return a corresponding value object implementing the XummResponse
interface.
To create a payload, pass an instance of Xrpl\XummSdkPhp\Payload
to XummSdk::createPayload()
. This instance
should hold an associative array transactionBody
, and can hold some options and custom metadata. For more
elaborate documentation on how to construct a payload, please refer to
the API docs.
A simple example could look like this:
$sdk->createPayload(
new Payload(
transactionBody: [
'TransactionType' => 'Payment',
'Destination' => 'rPdvC6ccq8hCdPKSPJkPmyZ4Mi1oG2FFkT',
'Fee' => '12'
],
customMeta: new CustomMeta(identifier: 'my-custom-identifier'),
)
);
This will return an instance of Xrpl\XummSdkPhp\Response\CreatePayload\CreatedPayload
.
After you create a payload, you can pass the returned CreatedPayload
to XummSdk::subscribe()
to subscribe to live
payload status changes. This returns an instance of Xrpl\XummSdkPhp\Subscriber\Subscription
.
Changes to a payload status include:
- The payload was by a XUMM App user (web page)
- The payload was by a XUMM App user (in the app)
- Payload expiration updates (remaining time in seconds)
- The payload was resolved by rejecting
- The payload was resolved by accepting (signing)
Status updates can be handled by passing a callback function as a second argument to XummSdk::subscribe
.
The subscription ends by either:
- returning non-void from the callback function, or
- explicitly calling
Subscription::end()
.
The SDK also supports the XUMM API's helper methods, such as ping
, getCuratedAssets
, and getRates
. Again, these
will all return corresponding implementations of XummResponse
.
For contributing to development of this package, refer to CONTRIBUTING.md.