---
# System prepended metadata

title: Kraken Payment Plugin

---

# Kraken Payment Plugin

1. Send more sat in a channel that you are directly connected to.
2. Simulate a small network

```
               AWS
        from /  to \
           /        \
          /          \
         /to    from  \
    LOCAL_DOCKER       LOCAL_CLN
    (generate invoice)   (pay invoice)
```

Invoice X msat -> split X msat in different payment.

With direct connection, we can fail with the following reasons:

1. small payment;
2. bigger payment;
3. out ot channel amount payment;
4. pay a non connected node. (unreachable)

### Suggested approach

Draft the Kraken plugin!

`>> lightning-cli kraken_pay <invoice> <direct = false>`
`>> lightning-cli kraken_doctor <invoice>`

kraken pay

```
rpc.call("pay", {invoice: invocie});
if fails -> return doctor result
```

kraken doctor

```
json[channels] =rpc.call("listfunds")[channel]
json[pay] = rpc.call("listpays", {incoice, payments})
```

### Desing

krakey_pay/krakenpay

`>> kraken <command pay|doctor> [params]`

```
>> kraken pay <invocie>
>> kraken doctor <invoice>
```


```
>> kraken_help
{
  version: ""
  commands: ""
}
```

lightning-cli kraken_help

lightning-cli --help