I checked in public.offers from the core database. The sellingasset and buyingasset are base64 encoded.

Here's what I get from database and horizon api:


select buyingasset from offers where offerid=147863991;


horizon api

"buying": {
          "asset_type": "credit_alphanum4",
          "asset_code": "SLT",

Question: how can I decode the XDR string to a readable string like the Horizon API is doing? Hopefully in Python code.

2 Answers 2


get it!


tx_result = Xdr.StellarXDRUnpacker(base64.b64decode(xdrstr)).unpack_Asset()


Thanks for the answer from Brian Mo(@brian-mo), here is the complete code, it works on 2.x version.

import base64
from stellar_sdk import Asset
from stellar_sdk.xdr import Xdr
xdr_str = 'AAAAAVNMVAAAAAAAlA8rrxQ89pexgEv3wGm0Tu9RxisitWx4ONyNc5Xn7qg='
xdr_obj = Xdr.StellarXDRUnpacker(base64.b64decode(xdr_str)).unpack_Asset()
asset = Asset.from_xdr_object(xdr_obj)

I know it looks a bit complicated, we have made some improvements and will release it some days later, here is a preview.

from stellar_sdk import Asset
xdr_str = 'AAAAAVNMVAAAAAAAlA8rrxQ89pexgEv3wGm0Tu9RxisitWx4ONyNc5Xn7qg='
asset = Asset.from_xdr(xdr_str)

You can find related improvements here (not yet released).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.