# Een crypto-exchange koppelen

> Bitvavo, Coinbase en Kraken koppel je met een alleen-lezen API-sleutel, waarna ze zichzelf bijwerken. Hoe je zo'n sleutel veilig aanmaakt, en wat je doet als er een stopt met werken.

Crypto-exchanges koppel je met een API-sleutel die je zelf aanmaakt. Eenmaal gekoppeld werken de
saldi zich elke 15 minuten bij, zonder dat jij iets hoeft te doen.

Gylder ondersteunt op dit moment **Bitvavo**, **Coinbase** en **Kraken**.

## Altijd alleen-lezen

Bij elke exchange kies je zelf wat een sleutel mag. Geef Gylder de smalst mogelijke rechten:
**saldi bekijken, verder niets**.

Gylder handelt nooit en verplaatst nooit geld, dus een sleutel met handels- of opnamerechten geeft
toegang die toch ongebruikt blijft. En lekt die sleutel ooit, dan is het verschil tussen een
alleen-lezen sleutel en een handelssleutel het verschil tussen iemand die een saldo ziet en iemand
die het uitgeeft.

De precieze namen van de rechten verschillen per exchange en staan hieronder. Het uitgangspunt
verschilt niet: is een recht niet nodig om een saldo te lezen, zet het dan uit.

## Bitvavo

1. Log in bij Bitvavo
2. Ga naar **Account → API**
3. Maak een nieuwe sleutel aan en zet alleen **View** aan
4. Zet Trade, Withdraw en alle overige rechten uit
5. Zet de API-sleutel en het secret in Gylder

**Kijk daarna in je mail.** Bitvavo stuurt een bevestigingslink, en de sleutel werkt pas als je
daarop klikt. Dit is verreweg de vaakste reden dat een correcte Bitvavo-sleutel geweigerd wordt:
Gylder meldt ongeldige gegevens, en de sleutel is ook echt ongeldig, omdat hij nooit geactiveerd
is. Lukt het koppelen niet vlak nadat je een sleutel hebt aangemaakt, kijk dan eerst in je inbox
voordat je gaat zoeken naar een typefout.

## Coinbase

Coinbase gebruikt de **Advanced Trade**-API, die een ander soort sleutel uitgeeft dan de oude.

1. Log in bij Coinbase Advanced Trade
2. Ga naar **Settings → API → New API Key**
3. Kies alleen **View**, dus geen handelsrechten
4. Kopieer de **API Key**, die eruitziet als een UUID
5. Kopieer of download de **Private Key**, een blok PEM-tekst
6. Plak beide in Gylder

De private key beslaat meerdere regels en begint met `-----BEGIN`. Plak hem helemaal, inclusief die
begin- en eindregels.

## Kraken

1. Log in bij Kraken
2. Ga naar **Settings → API**
3. Klik op **Add key**
4. Zet bij de rechten alleen **Query Funds** en **Query Ledger Entries** aan
5. Laat alle overige rechten uit, dus geen handel en geen opnames
6. Zet de API-sleutel en de private key in Gylder

Query Ledger Entries is wat Gylder je geschiedenis laat lezen in plaats van alleen het saldo van
vandaag. Zonder dat recht werkt de koppeling wel, maar is er minder om een verleden mee op te
bouwen.

## Hoe je sleutel bewaard wordt

Gegevens van exchanges worden versleuteld voordat ze in de database komen, met een sleutel die
alleen bij jouw account hoort en die in AWS KMS ligt. Ze worden alleen in het geheugen van de
server ontsleuteld, voor de duur van één synchronisatie, en gaan nooit naar je browser.

Verwijder je je account, dan wordt die accountsleutel vernietigd. Daarmee zijn de opgeslagen
gegevens blijvend onleesbaar.

## Na het koppelen

De saldi worden ongeveer elk kwartier ververst. Crypto beweegt snel en de API's van exchanges zijn
goedkoop te bevragen, en daarom gaat dit veel vaker dan het dagelijkse schema van tragere
rekeningen.

Je posities gedragen zich daarna als elke andere bezitting in Gylder: ze tellen mee in je
nettovermogen, staan in de spreiding, en verschijnen op het beleggingsdashboard naast je effecten.
In [gewicht van een positie](/concepts/position-weight) staat hoe het aandeel van een positie
berekend wordt.

## Als een koppeling stopt met werken

Een koppeling kan stuklopen om redenen die niets met Gylder te maken hebben.

**De sleutel is ingetrokken of verlopen.** Exchanges laten sleutels verlopen, sommige al na een
periode zonder gebruik. Maak een nieuwe aan en koppel opnieuw.

**De sleutel is nooit geactiveerd.** Weer Bitvavo. Zie hierboven.

**De rechten zijn te smal.** Een sleutel die wel saldi maar geen geschiedenis mag lezen koppelt
prima en laat daarna minder zien dan je verwacht.

**Je hebt je wachtwoord bij de exchange gewijzigd.** Sommige exchanges maken API-sleutels daarbij
ongeldig.

In alle gevallen is de oplossing dezelfde: maak een nieuwe alleen-lezen sleutel aan en koppel
opnieuw. Je geschiedenis in Gylder gaat niet verloren wanneer een sleutel stopt met werken, want die
is al opgeslagen.

## Over abonnementen

Een gekoppelde exchange telt als integratie, en hoeveel je er mag hebben hangt af van je
abonnement. Loopt je proefperiode af zonder abonnement, dan blijven bestaande koppelingen staan maar
stopt het bijwerken, dus de gegevens bevriezen in plaats van te verdwijnen.
