Useful or not, from you.
tatum-js bitcoin -> offchain (sendBitcoinOffchainTransaction) errors

Blows up here:

Error: Invalid Argument: First argument is required, please include address data. Documentation:
    at new NodeError (/Users/contra/Projects/createsafe-wallet/api/node_modules/bitcore-lib/lib/errors/index.js:20:41)
    at Object.checkArgument (/Users/contra/Projects/createsafe-wallet/api/node_modules/bitcore-lib/lib/util/preconditions.js:14:13)
    at new Address (/Users/contra/Projects/createsafe-wallet/api/node_modules/bitcore-lib/lib/address.js:69:5)
    at Address (/Users/contra/Projects/createsafe-wallet/api/node_modules/bitcore-lib/lib/address.js:57:12)
    at Function.Script.fromAddress (/Users/contra/Projects/createsafe-wallet/api/node_modules/bitcore-lib/lib/script/script.js:1010:13)
    at /Users/contra/Projects/createsafe-wallet/api/node_modules/@tatumio/tatum/src/offchain/bitcoin.ts:95:36
    at Array.forEach (<anonymous>)
    at Object.prepareBitcoinSignedOffchainTransaction (/Users/contra/Projects/createsafe-wallet/api/node_modules/@tatumio/tatum/src/offchain/bitcoin.ts:90:14)
    at Object.sendBitcoinOffchainTransaction (/Users/contra/Projects/createsafe-wallet/api/node_modules/@tatumio/tatum/src/offchain/bitcoin.ts:30:24)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

I think this is an API issue, the API WithdrawalResponseData[] response has a null address:

Screen Shot 2021-06-20 at 4 25 15 PM

And in this function there doesn't seem to be any behavior defined for this case, which leads me to think the API is at fault. Transferring with the same code/account/ledger works fine with other currencies besides BTC.

That's a useful answer
Without any help

@samuelsramko Thanks for the info - using the xpub on account create has resolved it for us. I think some additional docs around this and better error messaging might be useful for future people (if address in the API === null, throw an error in the SDK with info instead of letting the lower level libs blow up)