BTCPayServer Multi-Store Support and Native GraphQL Client

Milestone 1 is now complete.

Alpha preview released for testing of multi-store BTCPay plugin with GraphQL support

Demo BTCPay store: Test

Source code (PR): Development branch by macintoshhelper · Pull Request #16 · btcpay-zcash/btcpayserver-zcash-plugin · GitHub

1.1.0 is in pre-release in the plugin store.

Installation Instructions (for testing)

Please use a fresh wallet and viewing key. Diversifier indexes start from 0, there is no migration pathway, every store will start fresh.

Server Settings > Policies > Plugins > Show plugins in pre-release

Plugins (top right button) > Installed Plugins > Upgrade (to 1.1.0)

zcash.yml Docker fragment (alpha version for testing)

services:
  zcash_walletd:
    restart: unless-stopped
    init: true
    image: 1337bytes/zkool-graphql:dev-amd64
    command:
      - --db-path
      - /data/zec-graphql.db
      - --coin
      - "0"
      - --lwd-url
      - https://zec.rocks:443
      - --bind-address
      - 0.0.0.0
      - --port
      - "8000"
      # The current BTCPay client does not send JWT credentials.
      # Keep this service on the private Compose network without published ports.
      - --allow-unauthenticated
      - --allow-unencrypted-database
    environment:
      HOME: /data
      RUST_LOG: info
    expose:
      - "8000"
    volumes:
      - zec_graphql_wallet:/data

  btcpayserver:
    environment:
      BTCPAY_ZEC_WALLET_BACKEND_TYPE: ZkoolGraphQL
      BTCPAY_ZEC_WALLET_GRAPHQL_URI: http://zcash_walletd:8000/graphql

volumes:
  # A separate volume preserves the old walletd database for migration/recovery.
  zec_graphql_wallet:

exclusive:
  - zcash-node
2 Likes