pull down to refresh

Obligatory "CEX bad" comments incoming but I'll be transparent anyway. I'll just ignore the knee-jerk reactions. Thanks in advance to anyone adding value to this post.

As many might already know, I am based in Germany. I've been using Kraken as a convenient way to buy bitcoin for some years now. Since April 2022, they even supported lightning with zero withdrawal fees. This was a total game changer for me.

I liked this very much since not only do I not pay anything for withdrawals (or coinjoins), but it also gave me a nice layer of privacy.[1] They know the node pubkey that I sent to but as @DarthCoin often likes to mention, lightning can be a washing machine. They know how much bitcoin I bought when but they can't tell what happened after withdrawal: lightning breaks chainanalysis.

However, this is no longer available. They announced back in July that every German client had to reverify themselves because they were moving them to a different custodian for compliance reasons so not really in my interest:

From September 10, 2024, verified clients will face BaFin regulated counterparties (DLT Securities GmbH and DLT Custody GmbH) for crypto services and a Central Bank of Ireland (CBI) regulated counterparty (Payward Ireland Limited) for fiat services (bank deposits and withdrawals).

Overall, the experience for our clients will remain familiar, utilizing the same Kraken interfaces and providing access to services currently available to German clients.

After some back and forth if I would use this moment to stop using CEX's and completely switch to RoboSats, a p2p lightning exchange that I used a few times in the past, I decided to bite the bullet and reverify myself when I could no longer simply close the aggressive prompts because my account was restricted to only withdrawals until verification now.

I decided to do it because I like to buy small chunks of bitcoin daily and I believed this would be too inconvenient on something like RoboSats where you have to wait until someone takes or accepts your order. Additionally, you're wiring money to random people which can look suspicious and lead to your bank account getting closed. So to be safe, I would have to open a separate bank account only for that. That was just too much for me so simply continuing to use Kraken seemed like the better option considering all trade-offs. I'm not that guy that I met on a conference that exclusively buys bitcoin p2p with cash. I believed the KYC problem wouldn't be that different compared to how it previously already was. It would now just be clearer to the BaFin that I buy bitcoin but I never really believed that wasn't the case already anyway. I deposit money from my German bank account to a known crypto exchange. It's not a mystery what happens on these exchanges.

I didn't think to check if lightning would still be supported. I briefly skimmed the changes. I totally forgot about how much I cared about lightning withdrawals. It seemed like it would only be a formal change.

However, after September 10, 2024, the option to withdraw over lightning no longer showed up. I opened the support chat and mentioned my problem:

Me: I can't withdraw to Lightning. The option doesn't show anymore.

[...] convincing the bot I need a human [...]

Support: I see what you mean about the option not showing on your account. We are experiencing downtime due to scheduled maintenance to perform platform changes in Germany. Please refer to our status page (https://status.kraken.com/incidents/1hc0tz8cw58d) to stay up-to-date with the progress. Once this is complete your account will be returning to normal usage 🙂

Me: Ah okay, thank you!

Support: You are most welcome, do you have any other question or concern ?

Me: No, thank you

I actually indeed had a question: I asked about the zero withdrawal fees and about BOLT12 support. It was annoying to create a new lightning invoice for every withdrawal that I had to confirm using 2FA. However, they couldn't give me any information about it:

Technical support: Thanks for reaching out.

Related to our lightning integration, for security we are not able to provide details related to our internal funding infrastructure. However, Kraken has developed a highly secure Lightning infrastructure which facilitates the current fee offerings.

Related to BOLT12, Kraken has not announced any support for BOLT at this time. Related to this, while we are always open to adding new digital assets and funding options to our exchange, we never announce in advance which ones will be listed. The best way to get up-to-the-minute details regarding assets listed on Kraken is to read our email newsletters and follow our Blog (http://blog.kraken.com/) and X (formerly Twitter) feed (https://twitter.com/krakenfx).

I hope this information is helpful. Please feel free to let us know if you have any additional questions.

This reply sounded a bit like they think BOLT12 is a shitcoin but I gave them the benefit of the doubt.

Me: No more questions, thank you

Technical support: You're welcome. And we appreciate the feedback regarding BOLT12.

I always appreciated that fast support via chat. I thought that would be it and I could soon withdraw my funds over lightning again (and maybe even with BOLT12 at some point?!).

However, today, I checked the status page again and saw that the maintenance is complete but the option still didn't show. I continued the chat:

Me: Hi, I see on https://status.kraken.com/incidents/1hc0tz8cw58d that the maintenance is complete now but I still can't withdraw using lightning.

[...] bot stuff [...]

Support: [...]

Please try the following browser troubleshooting steps:
  • Make sure your browser is up-to-date
  • Try incognito/private mode on your browser
  • Clear your browser's cookies and cache


If the above steps do not work:
  • Try another browser - our site is tested on, and works with, most modern browsers


See this support article for further instructions: https://support.kraken.com/hc/articles/360001200183

That generic advice offended me a little bit but I did indeed try out incognito mode at least even though it made no sense to me how something like this could be caused by a browser issue. I was also getting pissed because it sounded before like it's just caused by regular maintenance which apparently wasn't actually the case:

Me: So you're saying withdrawing via lightning should work now for German customers? It does not work in incognito mode. This sounds like some generic advice. I believe you have disabled lightning for German customers since it doesn't show since then anymore. I am only on Kraken because of this and that lightning would disappear wasn't mentioned during the transition.

Support: So the option for using lightning is not there at all now?

Me: Yes, just poof, gone. I can only select "Network: Bitcoin" now during withdrawal. It used to show "Lightning" there, too. I know you're not responsible for it but I want to express that this is a serious downgrade for my experience.
Support: I'm double checking the information for you. One moment please.

Support: Thank you for your patience.

I have looked into this and it does appear we are now not currently supporting BTC Lightning transactions.

This change has take place from September 10th due to new regulatory regulations. Please see further information here: https://support.kraken.com/hc/en-us/articles/overview-of-changes-for-german-clients

Further information can be found here on supported assets: https://support.kraken.com/hc/en-us/articles/asset-support-for-german-clients

My heart dropped. As mentioned, I already had the feeling that they just don't support it anymore for German clients but getting the confirmation was still disappointing. The day before, I was dreaming about BOLT12 support and now I wasn't even able to use lightning until who knows when.

Me: Where is mentioned that lightning will be no longer supported?

Support: Under this section of acceptable withdrawal addresses - https://support.kraken.com/hc/en-us/articles/supported-address-formats-for-cryptocurrency-withdrawal-for-german-clients

Lightning addresses are no longer supported.

Indeed, in this table only addresses that start with 3, bc1 or bc1p were listed as supported. No lnbc. -_-

Me: Okay, I see. Any ETA when this will be supported?

Support: Currently it is down to regulatory issues but as soon as we are able to bring back the service we will 😊️.
Me: Okay, thank you for the information. Have a nice day. I assume you can't tell me more about those regulatory issues.

Support: There is nothing more we can provide at this time. These are constantly on going and we are looking to provide all our clients in all regions with the same operational benefits.

Me: Okay, that is all then

Support: Happy to help 😀️. It's been a pleasure speaking to you today!

Should you need anything else, we are here 24/7 to help. Please do not hesitate to contact us at any time!

Have a great day and thank you for choosing Kraken 🐙.

You're welcome but I regret it -_-

I guess I have to find a new CEX that supports lightning withdrawals and ideally even with zero fees or indeed switch to a DEX like RoboSats.

  1. I wondered how zero withdrawal fees made sense for them though.

Strike is available in Germany and even supports Bolt12

reply

Oh, great suggestion! I did download the app a while ago when I realized it's available now in Europe but I didn't have a need for it yet so didn't finish the KYC process with them. But I do now and you reminded me. Thank you!

We also have plans to add Strike as a wallet on SN so you can zap and withdraw using Strike.

reply

Strike is pretty much the best KYC option. The UX is so much cleaner when it's not makeling you gargle 17,000 flavours of shitcoin. Downside is that it's a shade more expensive due to the spread.

A nice thing about Strike is that it has a bank account in your name (at least in the UK). So you can have your salary paid into it and auto-converted to BTC, and other banks don't seem to block transfers to it.

__@_'-'

reply

One suggestion that might work for you:

Open Aqua wallet, receive via Liquid and tap the "direct peg in" option. It will serve you up a regular bitcoin address and as soon as the on chain funds confirm it will convert to liquid in your wallet. If you're not a fan of the federated model of liquid, simply send out of Aqua to any lightning wallet you please, and it will create a boltz swap to lightning automatically.

reply

great suggestion

FYI @nichro

reply

Python standard librariesPython standard libraries

import requests import os import time from datetime import datetime import logging

Third-party librariesThird-party libraries

import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error import schedule

Config loggerConfig logger

logging.basicConfig(filename='regression_model.log', level=logging.INFO)

Program constantsProgram constants

MEMPOOL_URL = "https://blockstream.info/api/mempool/recommended-fees" MEMPOOL_STATS_URL = "https://blockstream.info/api/mempool" DATA_FILE = "mempool_data.csv"

List to store data in memoryList to store data in memory

data = []

Helper function to handle request errorsHelper function to handle request errors

def handle_request_error(e, message): logging.error(message, exc_info=True) print(message) return None

def initialize_csv(): """ This function checks if the CSV data file exists. If it does not, it creates it and writes the headers. """ if not os.path.exists(DATA_FILE):

    headers = ['timestamp', 'fastest_fee', 'half_hour_fee', 'unconfirmed_transactions', 'vsize']
    df = pd.DataFrame(columns=headers)
    df.to_csv(DATA_FILE, index=False)

def fetch_fees(): """ This function requests the current mempool fees from Blockstream. If the request fails, it logs the error and returns None. """ try: response = requests.get(MEMPOOL_URL) response.raise_for_status() return response.json()

except requests.exceptions.RequestException as e:
    return handle_request_error(e, 'Error fetching recommended fees')

def fetch_mempool_stats(): """ This function requests the current mempool stats from Blockstream. If the request fails, it logs the error and returns None. """ try: response = requests.get(MEMPOOL_STATS_URL) response.raise_for_status() return response.json()

except requests.exceptions.RequestException as e:
    return handle_request_error(e, 'Error fetching mempool stats')

def collect_data(): """ This function collects data from the Blockstream API and appends it to the data list. It then writes the data to the CSV file. """ fees = fetch_fees() mempool_stats = fetch_mempool_stats()

if fees is None or mempool_stats is None: return

timestamp = datetime.now()
data.append({
    'timestamp': timestamp,
    'fastest_fee': fees['fastestFee'],
    'half_hour_fee': fees['halfHourFee'],
    'unconfirmed_transactions': mempool_stats['count'],
    'vsize': mempool_stats['vsize']
})
df = pd.DataFrame(data)
df.to_csv(DATA_FILE, mode='a', header=False, index=False)
print(f"Data collected and saved at {timestamp}")

def generate_training_data(): """ This function reads the CSV file, checks if there is enough data for training, and then separates the features from the target. """ df = pd.read_csv(DATA_FILE)

if len(df) < 2:
    print("Not enough data collected for training")
    return None, None

X = df[['unconfirmed_transactions', 'vsize']]
y = df['fastest_fee']

return X, y

def train_model(): """ This function trains a Linear Regression model on the data collected. It splits the data into a training and test set, then fits the model, and finally calculates the MSE. """ X, y = generate_training_data()

if X is None or y is None: return None

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"Model trained. MSE: {mse:.2f}")
return model

def make_prediction(model): """ This function uses the trained model to make a prediction on the current mempool stats. """ fees, mempool_stats = fetch_fees(), fetch_mempool_stats()

if model is None or fees is None or mempool_stats is None: 
    print("Error: Missing data or model")
    return

X_new = [[mempool_stats['count'], mempool_stats['vsize']]]
predicted_fee = model.predict(X_new)[0]
print(f"Predicted Fastest Fee (sat/vB): {predicted_fee:.2f}")
print(f"Current Fastest Fee (sat/vB): {fees['fastestFee']}")

def schedule_tasks(): """ This function schedules tasks to collect data and train the model. Data is collected every half hour and the model is trained once a day. """ schedule.every(30).minutes.do(collect_data) schedule.every().day.at('00:00').do(lambda: make_prediction(train_model()))

def start_bot(): """ This function initializes the bot. """ try: initialize_csv() schedule_tasks()

    while True:
        schedule.run_pending()
        time.sleep(1)

except KeyboardInterrupt:       
    
    print("Program interrupted")
     
finally:
    if data:
        df = pd.DataFrame(data)
        df.to_csv(DATA_FILE, mode='a', header=False, index=False)
    logging.shutdown()

if name == "main": start_bot()

Hey Ek,

Can you share your ticket number with me? I would like to look into this for you. I have confirmed with the team that this is a technical blocker so I want to make sure the messaging you received on your support ticket is consistent

reply

Hey, thanks for the reply! I am not sure where I can find the ticket number. I used the Kraken Live Chat.

reply

The support is the same almost everywhere. It sucks! So many attempts for a simple answer that they just stopped it accepting.

For anyone's information. Kraken is still not available in India while Binance made a re-entry. Binance has a deposit and withdrawal enabled. However, I still didn't use it for buying. Can I buy from them would it be safe?

reply

Yo, ex-German Kraken user here. I closed my Kraken account due to the recent re-verification nonsense. Used Kraken for close to 10 years, they served me well.

About this

I'm not that guy that I met on a conference that exclusively buys bitcoin p2p with cash

I get it's intimating initially, but it is actually beautiful in the end: Vexl uses your web of trust to match you with Bitcoiners.

It's like Bitcoin match making using people you know in common. aka tinder for Bitcoiners.

I've made some contacts on Vexl who I consider my "bitcoin friends/contacts", and we ping each other when one of us needs to buy/sell. Meet in person, and done.

Now you have a micro-community around you of Bitcoiners, which we all should have.

reply

vexl requires a phone number, for this reason it should be avoided

reply

It's for spam mitigation. Works with a burner number too.

(I said the same thought/question a while back)

reply

Excuse the typo, I mean intimidating

reply

Oh that's maybe why the deposit address that i needed to use to deposit funds with Kraken changed from a German bank to one from Liechtenstein (if i recall well).

German regulations getting tighter.

I don't know when the change happened as it got harder to transfer money from Korea anyhow so I'm not using it much.

Lightning withdrawal still available in my case though.

reply

My deposit address is in Ireland

Lightning withdrawal still available in my case though.

cries in German

reply

15 percent corporate tax rate

reply

Kraken doesn't mind using German routing nodes, though.

reply

That means German gov is reading Darth's guides? https://postimg.cc/6TNXX6Q4

reply

haha maybe

reply

Same story, stopped using Kraken the moment strike became available. Instant deposits, simple withdrawals, it's not even withdrawals as you can use strike directly as a lightning wallet. It's more like WoS than Kraken in this case. Sure, you will love it. Other lightning options available in Germany are Pocketbitcoin and Coinfinity. Coinfinity were actually pretty good and were operating at least a year before strike, they don't have enough credit imo. Also Relai, but they don't have instant deposits from Germany as they have a Swiss bank account. Also their lightning solution is non-custodial so you need to open some channels - thus fees. I would say if you are comfortable with KYC get strike and never look back:)

reply

It's frustrating, really, but if you're serious about RoboSat, don't turn back. This whole regulation thing is a pain in the ass. Something works today, maybe not tomorrow. Today they don't ask for KYC, but tomorrow they do. You can also try LNP2P https://lnp2pbot.com/index.html

reply
reply

I'm not sure how long your expectations around waiting time on Robosats are, have you played with it at all? sometimes I feel like it takes me longer to do the invoice and bank transfer than the time it took the person to accept an offer, like I'm slowing the trade down

and setting up a bank , robosats has things like wise/revolut as options so its not as involved as having to go into some branch and setup an account

just saying...

reply

I used it a few times. My counterparties weren't very responsive and one even realized they don't support SEPA Instant so we had to cancel the trade. It's been a while though.

reply

deleted by author

Up to 5,000,000 VND (~ 200 EUR) you can purchase via Wise Transfers without KYC from

https://bitcoinvn.io/?deposit=vndwise&settle=btcln

It might not be instant though, by experience some of the transfers take a few hours or up to a business day to clear :)

reply

Don't touch Wise! They may and one day they will just stop your transfer. And their support only has a bot! Money gone - puff!

reply

Yes.

Generally doing any large scale transfers via Wise is quite risky due to their automated flagging algo & limited support in case "something gets stuck".

With that said, for smaller amounts as described above (limit your downside) it can be a "worthwhile risk/reward".

reply

I think Relai do LN withdrawals now.

reply

Relai ist going full KYC. Fuck them

This really sucks!

I can recommend the lightning service from Pocket Bitcoin.

It supports auto withdrawals to your own lightning node depending on your set up.

https://pocketbitcoin.com/lightning

reply

I really hope thats temporary or I'll have to switch exchanges after 10 years :/

reply

Still no lightning support.

reply

What I took from this is man Germany is even more of a nanny state than Canada and you are very polite to bots. I get agitated with bots easily and usually something to the effect of "stupid robot". Yup I will be the first one incinerated by robot laser eyes when the bots take over the world.

reply

I skipped the bot messages, every message you can see here is from a human

reply

Sorry, misread that.

reply

it's okay, reading these messages must have triggered the Canadian goose in you

reply

Lightning is just too fast for regulation. Can't have that.

reply

I think Relai also has a LN service now.

reply

AAAND IT'S GONE

reply

Robosats remains unaffected.

reply

"When there is the need to know", most people will come to Bicoin the hard way and the only way.

reply

No surprise.

reply

Why not?

Edit: Oh, maybe that’s the effect of MiCA

reply

Because they follow compliance and listing shitcoins all the time.

reply

And fake news, the reason is technical in nature.

source (a Kraken employee): https://x.com/marcmckirahan/status/1834621763923157174

This is why LLM’s shouldn’t run on helpdesks. They hallucinate answers.

Just use Strike, much better, easier and with all the new features unlike the big exchanges.

reply

Just checked, still shows in UK. But I am sure not for long. Travel Rule is a bitch.

reply

Try bringin.xyz Instant, and you get a virtual IBAN - in your name. So your home bank won't know you bought bitcot, since you are transferring to an account in your name, and not Payward Ltd.

The mobile app supports Nostr Wallet Connect, so you can stack directly into your existing wallet.

Fuck Kraken.

reply

Is there any legal basis for this restriction?

reply

Yes, it appears that Kraken has discontinued Lightning Network withdrawals for German clients. This decision is part of their operational adjustments and may be influenced by regulatory considerations. If you're a German user of Kraken and need further details, it’s advisable to check their official announcements or customer support for the most accurate and up-to-date information.