settings: debug: false payment: poll-seconds: 30 invoice-expire-minutes: 30 confirmations-required: 2 max-pending-per-player: 1 allow-cancel: true auto-close-paid-invoice-seconds: 5 mark-expired-on-open: true strict-exact-amount-match: true allow-late-match-if-unclaimed: true late-match-grace-minutes: 120 pricing: mode: "LIVE_USD" live-rate-provider: "COINGECKO" cache-seconds: 60 fallback-to-base-sats: true round-up-to-sat: true coingecko-url: "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" micro-amount: mode: "RANDOM_RANGE" min-extra-sats: 1 max-extra-sats: 200 sequential-start-sats: 1 sequential-reset-when-server-restarts: false avoid-duplicate-active-amounts: true max-generation-attempts: 500 storage: type: "SQLITE" sqlite-file: "dirtcryptostore.db" prune-enabled: true prune-after-days: 30 prune-statuses: - "FULFILLED" - "EXPIRED" - "CANCELLED" qr: enabled: true map-title: "&8Crypto QR" include-bitcoin-uri-in-lore: true include-wallet-address-in-lore: true include-expiry-in-lore: true include-confirmations-in-lore: true show-qr-item-in-payment-gui: true fallback-material-if-map-fails: "PAPER" blockchain: watcher-mode: "API" provider: "BLOCKCHAIN_INFO" request-timeout-seconds: 10 user-agent: "DirtCryptoStore/1.0.0" wallet-cache-seconds: 20 tx-cache-seconds: 20 commands: dispatch-as-console: true stop-on-command-failure: false log-dispatch: true hooks: use-placeholderapi-if-present: false use-luckperms-context-if-present: false wallets: default: enabled: true display-name: "&6Bitcoin Wallet" coin: "BTC" address: "PUT_YOUR_CAKE_WALLET_BTC_ADDRESS_HERE" explorer-type: "BTC" min-confirmations: 2 allow-products: ["tip_jar", "gold_dust", "dirt_rich"] messages: prefix: "&8[&6DirtCryptoStore&8] " no-permission: "&cYou do not have permission." player-only: "&cOnly players can use this command." reloaded: "&aDirtCryptoStore reloaded." opening-store: "&aOpening crypto store..." admin-reload-usage: "&eUse: /cryptostore reload" already-has-pending: "&cYou already have a pending payment." no-pending-payment: "&cYou do not have a pending payment." invoice-created: "&aInvoice created for &f%product%&a." invoice-expired: "&cThis payment request expired." invoice-cancelled: "&eYour pending payment was cancelled." invoice-paid-already: "&eThis invoice is already paid." invoice-view-only: "&eThis invoice can no longer be changed." pricing-unavailable: "&cLive BTC pricing is currently unavailable. Please try again in a moment." payment-detected: "&aPayment detected for &f%product%&a. Waiting for confirmations..." payment-confirmed: "&aYour crypto payment for &f%product% &ahas been confirmed." payment-fulfilled: "&aYour purchase has been delivered." payment-under-review: "&cThis payment requires staff review." payment-not-found-yet: "&7No matching payment detected yet." payment-status-waiting: "&eStatus: WAITING" payment-status-detected: "&aStatus: DETECTED" payment-status-confirming: "&6Status: CONFIRMING" payment-status-paid: "&aStatus: PAID" payment-status-expired: "&cStatus: EXPIRED" payment-status-cancelled: "&cStatus: CANCELLED" qr-expiry-line: "&7Expires in: &f%time%" confirm-line: "&7Required confirmations: &f%confirmations%" wallet-line: "&7Wallet: &f%wallet%" wallet-address-line: "&7Address: &f%address%" amount-line: "&7Amount: &f%amount%" amount-sats-line: "&7Amount (sats): &f%amount_sats%" product-line: "&7Product: &f%product%" txid-line: "&7TXID: &f%txid%" gui-cancel-button: "&cCancel Payment" gui-back-button: "&eBack" gui-close-button: "&cClose" gui-refresh-button: "&bRefresh" gui-confirmed-button: "&aPaid" gui-expired-button: "&cExpired" gui-pending-button: "&ePending" sounds: enabled: true store-open: sound: "BLOCK_ENDER_CHEST_OPEN" volume: 1.0 pitch: 1.0 click: sound: "UI_BUTTON_CLICK" volume: 1.0 pitch: 1.0 invoice-created: sound: "ENTITY_EXPERIENCE_ORB_PICKUP" volume: 1.0 pitch: 1.2 payment-detected: sound: "BLOCK_NOTE_BLOCK_PLING" volume: 1.0 pitch: 1.5 payment-confirmed: sound: "ENTITY_PLAYER_LEVELUP" volume: 1.0 pitch: 1.0 cancelled: sound: "ENTITY_VILLAGER_NO" volume: 1.0 pitch: 1.0 expired: sound: "BLOCK_ANVIL_LAND" volume: 0.7 pitch: 1.0 effects: enabled: true store-open: enabled: false type: "VILLAGER_HAPPY" count: 10 offset-x: 0.3 offset-y: 0.6 offset-z: 0.3 extra: 0.0 invoice-created: enabled: true type: "TOTEM_OF_UNDYING" count: 12 offset-x: 0.4 offset-y: 0.8 offset-z: 0.4 extra: 0.0 payment-detected: enabled: true type: "COMPOSTER" count: 8 offset-x: 0.3 offset-y: 1.0 offset-z: 0.3 extra: 0.0 payment-confirmed: enabled: true type: "FIREWORK" count: 20 offset-x: 0.5 offset-y: 1.0 offset-z: 0.5 extra: 0.0 cancelled: enabled: false type: "SMOKE" count: 8 offset-x: 0.2 offset-y: 0.4 offset-z: 0.2 extra: 0.0 expired: enabled: false type: "SMOKE" count: 8 offset-x: 0.2 offset-y: 0.4 offset-z: 0.2 extra: 0.0 titles: enabled: true invoice-created: title: "&6Crypto Invoice" subtitle: "&7Scan the QR and pay the exact amount" fade-in: 10 stay: 50 fade-out: 10 payment-detected: title: "&aPayment Detected" subtitle: "&7Waiting for confirmations" fade-in: 10 stay: 40 fade-out: 10 payment-confirmed: title: "&aPayment Confirmed" subtitle: "&fYour purchase has been delivered" fade-in: 10 stay: 60 fade-out: 10 cancelled: title: "&cPayment Cancelled" subtitle: "&7Your pending invoice was cancelled" fade-in: 10 stay: 40 fade-out: 10 gui: use-custom-model-data: false store: title: "&8Crypto Store" size: 27 open-sound: true items: filler: enabled: true material: "GRAY_STAINED_GLASS_PANE" name: " " lore: [] slots: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 close: enabled: true material: "BARRIER" name: "&cClose" lore: - "&7Close the store." slot: 26 refresh: enabled: true material: "SUNFLOWER" name: "&eRefresh" lore: - "&7Refresh the store view." slot: 18 info: enabled: true material: "BOOK" name: "&6How Crypto Payments Work" lore: - "&7Click a product to create a payment invoice." - "&7You must send the exact amount shown." - "&7Your QR expires after &f30 minutes&7." - "&7You can cancel your payment from the payment menu." slot: 22 payment: title: "&8Crypto Payment" size: 27 items: filler: enabled: true material: "BLACK_STAINED_GLASS_PANE" name: " " lore: [] slots: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 17 - 18 - 20 - 24 - 25 - 26 product: enabled: true material: "CHEST" name: "&6Purchase Details" lore: - "&7Product: &f%product%" - "&7Price: &f%amount%" - "&7Wallet: &f%wallet%" - "&7Address: &f%address%" - "&7Status: &f%status%" - "&7Expires in: &f%time%" slot: 11 qr: enabled: true material: "FILLED_MAP" name: "&aScan QR To Pay" lore: - "&7Scan this QR with your wallet app." - "&7" - "&7Amount: &f%amount%" - "&7Address: &f%address%" - "&7" - "&7If your wallet does not scan maps well," - "&7use the URI manually:" - "&f%bitcoin_uri%" slot: 13 status: enabled: true material: "CLOCK" name: "&ePayment Status" lore: - "&7Current: &f%status%" - "&7TXID: &f%txid%" - "&7Confirmations: &f%current_confirmations%/%confirmations%" - "&7Expires in: &f%time%" slot: 15 back: enabled: true material: "ARROW" name: "&eBack" lore: - "&7Return to the store." slot: 18 cancel: enabled: true material: "BARRIER" name: "&cCancel Payment" lore: - "&7Cancel this pending payment." slot: 22 refresh: enabled: true material: "SUNFLOWER" name: "&bRefresh Status" lore: - "&7Refresh this payment screen." slot: 26 products: tip_jar: enabled: true display-name: "&aTip Jar" material: "EMERALD" custom-model-data: 0 glow: true slot: 11 wallet: "default" price-usd: 3.49 base-sats: 15000 permission-required: "" purchasable-once: false commands: - "lp user %player% parent add tipjar" lore: - "&7Buy the &aTip Jar &7rank with crypto." - "&7Normal store price: &c$4.99" - "&7Crypto store price: &a$3.49" - "&7Wallet: &f%wallet%" - "&7Approx base amount: &f%amount%" - "&7Click to generate a live-priced invoice." gold_dust: enabled: true display-name: "&bGold Dust" material: "GOLD_INGOT" custom-model-data: 0 glow: true slot: 13 wallet: "default" price-usd: 6.99 base-sats: 27000 permission-required: "" purchasable-once: false commands: - "lp user %player% parent add golddust" lore: - "&7Buy the &bGold Dust &7rank with crypto." - "&7Normal store price: &c$9.99" - "&7Crypto store price: &a$6.99" - "&7Wallet: &f%wallet%" - "&7Approx base amount: &f%amount%" - "&7Click to generate a live-priced invoice." dirt_rich: enabled: true display-name: "&6Dirt Rich" material: "DIAMOND" custom-model-data: 0 glow: false slot: 15 wallet: "default" price-usd: 13.99 base-sats: 9750 permission-required: "" purchasable-once: false commands: - "lp user %player% parent add dirtrich" lore: - "&7Buy the &6Dirt Rich &7rank with crypto." - "&7Normal store price: &c$19.99" - "&7Crypto store price: &a$13.99" - "&7Wallet: &f%wallet%" - "&7Approx base amount: &f%amount%" - "&7Click to generate a live-priced invoice."