Vault setup instructions

Copy/paste naming templates for media so PPV matching is predictable and safe.


Goal: make media discoverable by intent without mistakes. Use the exact folder and file naming format below.

1) Exact naming convention

Use lowercase + underscores only. No spaces. Keep tokens in this exact order.

filename format
type__theme__intensity__angle__outfit__setNN__vNN
  • type: photo | video | audio
  • theme: tease | feet | lingerie | cosplay | gf
  • intensity: soft | spicy | wild
  • angle: selfie | mirror | closeup | fullbody
  • outfit: red_bikini, black_lace, white_tee, etc.

2) Vault label conventions (Fanvue-safe)

Fanvue may not support nested subfolders in vault UI. Treat these as naming labels/prefixes for titles, not literal required folder paths. If subfolders are unavailable, put the label at the front of media titles.

main labels
vault/ppv/tease
vault/ppv/feet
vault/ppv/lingerie
vault/ppv/cosplay
vault/ppv/gf
price labels
vault/ppv/tier_low
vault/ppv/tier_mid
vault/ppv/tier_high
vault/ppv/tier_whale

3) Ready-to-copy examples

feet set
photo__feet__soft__closeup__white_socks__set01__v01
lingerie PPV
video__lingerie__spicy__mirror__black_lace__set03__v01
high spender option
video__gf__wild__fullbody__silk_robe__set09__v02

4) Bash-style setup helpers

If your local media source is mirrored from folders, these are copy-safe starter commands.

create folders
mkdir -p vault/ppv/{tease,feet,lingerie,cosplay,gf,tier_low,tier_mid,tier_high,tier_whale}
example rename
mv IMG_1001.jpg photo__tease__soft__selfie__white_tee__set01__v01.jpg

5) Situation matrix

new_sub_tease -> theme=tease, intensity=soft, tier_low price_push_midbuyer -> theme=lingerie or gf, intensity=spicy, tier_mid vip_repeat_highspender -> theme=custom matching request, intensity=spicy/wild, tier_high/tier_whale feet_request -> theme=feet, angle=closeup, tier_mid/high cosplay_request -> theme=cosplay, outfit specific, tier_mid/high

6) Payment instructions (what creators tell buyers)

These are copy/paste scripts for chat. Keep it short and direct.

low-tier close
i can send you a locked preview right now 💚 unlock it and ill queue your next one after
mid/high close
want the better set? i can send the premium one now, unlock and ill keep it coming
whale close
i can do an exclusive pick for you next, unlock this one and ill line up the private set

7) BTCPay setup (idiot-proof checklist)

  1. Create/store your BTCPay server and store.
  2. Create an API key with invoice create/read permissions.
  3. Set app env vars (copy block below).
  4. Set webhook URL to https://YOUR_HOST/webhooks/btcpay.
  5. Set webhook secret in BTCPay and same secret in app env.
  6. Test with a small payment and verify credits increase.
BTCPay env template
CRYPTO_TOPUP_PROVIDER=btcpay
BTCPAY_BASE_URL=https://your-btcpay-host
BTCPAY_STORE_ID=your_store_id
BTCPAY_API_KEY=your_api_key
BTCPAY_WEBHOOK_SECRET=your_webhook_secret
BTCPAY_REDIRECT_URL=https://your-app-host/connected
[email protected]

8) "Every situation" content options

Use these exact tag + tier combos for predictable automation outcomes.

scenario: first_touch_tease tag=tease intensity=soft tier=low scenario: asks_for_feet tag=feet intensity=soft_or_spicy tier=mid scenario: asks_for_lingerie tag=lingerie intensity=spicy tier=mid_or_high scenario: asks_for_cosplay tag=cosplay intensity=spicy tier=high scenario: repeat_buyer_vip tag=gf intensity=spicy_or_wild tier=high_or_whale scenario: custom_request tag=custom intensity=spicy_or_wild tier=whale scenario: bored_timewaster do_not_send_media=true require_tip_or_unlock_first=true