Quickstart

Quickstart

Get from zero to a working signing flow in under 5 minutes.

Prerequisites

Create a project

Sign in at xrplre.quest/dashboard and click New Project. Give it a name. Your API key is shown once — copy it now.

Your key looks like: xrplr_live_abc123...

Install the SDK

npm install @xrplrequest/sdk

Create your first payload

import { XRPLRequest } from '@xrplrequest/sdk';
 
const client = new XRPLRequest({ apiKey: 'xrplr_live_...' });
 
const payload = await client.payloads.create({
  type: 'signAndSubmit',
  transaction: {
    TransactionType: 'Payment',
    Destination: 'rN7n7otQDd6FczFgLdlqtyMVrn3HMfXoQT',
    Amount: '1000000', // 1 XRP in drops
  },
  options: {
    expiresIn: 300, // 5 minutes
  },
});
 
console.log(payload.signingUrl);
// https://xrplre.quest/sign/550e8400-e29b-41d4-a716-446655440000

Share the signing URL

Send payload.signingUrl to the user however your platform works — Discord message, Telegram reply, web redirect, etc. The user opens the URL, picks their wallet, and approves.

Get the result

const result = await client.payloads.poll(payload.uuid, {
  timeout: 300_000, // wait up to 5 min
  interval: 2_000,  // check every 2s
});
 
if (result.status === 'signed') {
  console.log('Signed! Tx hash:', result.txHash);
  console.log('Signer:', result.signerAddress);
} else if (result.status === 'rejected') {
  console.log('User rejected the transaction.');
} else if (result.status === 'expired') {
  console.log('Request expired before signing.');
}

What’s next?

💡

The signing URL works in any browser on any device. Users don’t need to install anything unless they pick an extension wallet.