Attach data

Attach Data

With the SDK, you can also attach public data to payments. This data is uploaded to a public blockchain, meaning it cannot be modified or deleted. This can be used as a data timestamping service and can lend transparency to activity in your app.


Maxiumum attachment size

The maximum body request cannot exceed 1MB. That includes the attachment value with the rest of the JSON request.

You may attach data in the following formats:

attachment: { format: 'base64', value: 'ABEiM0RVZneImQCqu8zd7v8=' }
attachment: { format: 'hex', value: '0011223344556677889900AABBCCDDEEFF' }
attachment: { format: 'hexArray', value: ['0011223344556677889900AABBCCDDEEFF', '0011223344556677889900AABBCCDDEEFF', '0011223344556677889900AABBCCDDEEFF'] }
attachment: { format: 'json', value: {"param1": "value1", "param2": "value2"} }

To attach data, add an attachment field to your payment parameters:

const {HandCashConnect} = require('@handcash/handcash-connect');
const handCashConnect = new HandCashConnect({ 
   appId: '<app-id>', 
   appSecret: '<secret>',
const account = handCashConnect.getAccountFromAuthToken(token);
const paymentParameters = {
    description: "Hold my beer!🍺",
    payments: [
        { destination: 'nosetwo', currencyCode: 'DUR', sendAmount: 200 },
    attachment: { format: 'json', value: {"param1": "value1", "param2": "value2"} },
const paymentResult = await;
// paymentResult
  transactionId: '4c7b7cdc18702bb1a09c75a47bc2fa9630545761fbbd53b8c38735c73173e043',
  note: 'Hold my beer!🍺',
  type: 'send',
  time: 1604958667,
  satoshiFees: 113,
  satoshiAmount: 10000,
  fiatExchangeRate: 160.74284545024352,
  fiatCurrencyCode: 'USD',
  participants: [
      type: 'user',
      alias: 'nosetwo',
      displayName: 'Nose two',
      profilePictureUrl: '',
      responseNote: ''
  attachments: [ { value: [Object], format: 'json' } ],