Haven't found a way of determining whether an item is soulbound or not without tooltip scanning which I don't want to do

local cTip = CreateFrame("GameTooltip","PrivTooltip",nil,"GameTooltipTemplate")
local function IsSoulbound(bag, slot)
    cTip:SetOwner(UIParent, "ANCHOR_NONE")
    cTip:SetBagItem(bag, slot)
    cTip:Show()
    for i = 1,cTip:NumLines() do
        if(_G[name.."TooltipTextLeft"..i]:GetText()==ITEM_SOULBOUND) then
            cTip:Hide()
            return true
        end
    end
    cTip:Hide()
    return false
end

Some guy says this is good