Bitcoin Forum
July 10, 2026, 07:23:35 PM *
News: Latest Bitcoin Core release: 31.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bottle deposit asynchronous giveaway program  (Read 139 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
TheButterZone (OP)
Legendary
*
Offline

Activity: 3220
Merit: 1076


RIP Mommy


View Profile WWW
May 10, 2026, 07:26:08 AM
Last edit: Today at 04:12:28 PM by TheButterZone
 #1

Just thought of this ^

Currently I have ~29.775 lbs of bagged PET #1 (incrementally weighed on my postage scale with 50lb x 0.2oz range & taring out the board I sit the bags on) which at the CA redemption value per-pound rate of $1.46 would get me ~$43.27/https://www.blockchain.com/tobtc?currency=USD&value=43.27 minus the weight of the bags. Except there isn't a nearby recycling center I trust (been shorted before, but weights & measures doesn't offer rewards for reporting frauds they subsequently investigated undercover & fined for underweighing, plus, they won't even get me the shorted amount) & gas is insanely overtaxed/regulated in CA.

There are 10 American states with container deposit legislation, leaving aside businesses in other states that may offer cash for returning specific brands' containers (many years ago, I returned some to Whole Foods for $1 each IIRC).

Should there be a website/app where...
1) people list their recycling types, weights, ZIP codes & BTC addresses
2) the website/app keeps up to date with each state's published per-pound rate (minimum, some recycling centers pay more)
3) the per-pound rate is multiplied by the weight & the product is divided by the BTC spot price
4) the quotient is displayed on the listing with the BTC address?
5) the poster is alerted after the address is funded the full quotient
6) the recycling is to be dropped somewhere the public can grab it anytime, with a date/time & GPS-watermarked photo then uploaded to the listing as proof of "no longer in my possession"? The updated listing can also take the GPS from EXIF & map pin the drop site.
?

Personally, I don't want to put recyclables out at my home & attract/reward bin scavengers, who come at all hours being noisy & leaving trails of mess, so when I get paid, should I go to a park & set my bags next to bins (which are almost always overfilled & have bags next to them already)?

A bigger enterprise might be having lockers with built-in scales, AI-powered cameras to detect it's all one container type with no weight-padding by wet containers, and rotating combinations. Then either people looking at the listing will see the current combo after the proof photo is uploaded, or if the website/app is used to broadcast the raw TX, the one who broadcasts will get the combo & can either use it, give it to someone else privately, or hit "reveal to public".

Maybe recycling centers would want to run these but just for themselves, unattended, with only employees remote-monitoring, dispatching from nearby for maintenance, and authorized payers paying the depositors & unlocking their combos, then the recycling & weight receipts getting taken to the next recycling tier up, where all the big trucks go.

Vod
Legendary
*
Offline

Activity: 4480
Merit: 3698


Licking my boob since 1970


View Profile WWW
May 15, 2026, 10:29:24 PM
 #2

Personally, I don't want to put recyclables out at my home & attract/reward bin scavengers, who come at all hours being noisy & leaving trails of mess, so when I get paid, should I go to a park & set my bags next to bins (which are almost always overfilled & have bags next to them already)?

Some places have waves of scavengers that come over hours - they get lucky only if someone recently threw something in there.   Gone are the glory days where kids could save up for bikes with bottle deposits.  :/

I keep my bags in my garage and hand them out to the people I think are really struggling.  I ignore the healthy ones that are jogging from can to can listening to itunes. 


███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits PREDICT..
█████████████████████████
█████████████████████████
███████████▀▀░░░░▀▀██████
██████████░░▄████▄░░████
█████████░░████████░░████
█████████░░████████░░████
█████████▄▀██████▀▄████
████████▀▀░░░▀▀▀▀░░▄█████
██████▀░░░░██▄▄▄▄████████
████▀░░░░▄███████████████
█████▄▄█████████████████
█████████████████████████
█████████████████████████
.
.WHERE EVERYTHING IS A MARKET..
█████
██
██







██
██
██████
Will Bitcoin hit $200,000
before January 1st 2027?

    No @1.15         Yes @6.00    
█████
██
██







██
██
██████

  CHECK MORE > 
TheButterZone (OP)
Legendary
*
Offline

Activity: 3220
Merit: 1076


RIP Mommy


View Profile WWW
May 15, 2026, 11:52:59 PM
 #3

Gone are the glory days where kids could save up for bikes with bottle deposits.  :/

Hmm, I've been picking up littered recycling since I was a teen. Maybe that's how to do it, just limit the sponsored pickups to kids. Though the amount I have is so heavy, the kid would have to be pretty strong to roll a 96 gallon stuffed wheelie bin all the way home or to the nearest recycling center ~2 miles away (and risk getting detained & questioned) vs asking their parent/guardian to haul in a vehicle.

Vod
Legendary
*
Offline

Activity: 4480
Merit: 3698


Licking my boob since 1970


View Profile WWW
May 16, 2026, 11:47:56 PM
 #4

Hmm, I've been picking up littered recycling since I was a teen. Maybe that's how to do it, just limit the sponsored pickups to kids. Though the amount I have is so heavy, the kid would have to be pretty strong to roll a 96 gallon stuffed wheelie bin all the way home or to the nearest recycling center ~2 miles away (and risk getting detained & questioned) vs asking their parent/guardian to haul in a vehicle.

My parents bought me a bike since I lived on a farm.   I would trade in the few bottles I collected after school for Space Lego sets.   Grin

Now the current trend is to break the can tabs off and send them in to be wheelchairs.   Every family reunion I see several large garbage bags full being loaded into a vehicle.  The recyclers still pay the same for the can without the tab.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits PREDICT..
█████████████████████████
█████████████████████████
███████████▀▀░░░░▀▀██████
██████████░░▄████▄░░████
█████████░░████████░░████
█████████░░████████░░████
█████████▄▀██████▀▄████
████████▀▀░░░▀▀▀▀░░▄█████
██████▀░░░░██▄▄▄▄████████
████▀░░░░▄███████████████
█████▄▄█████████████████
█████████████████████████
█████████████████████████
.
.WHERE EVERYTHING IS A MARKET..
█████
██
██







██
██
██████
Will Bitcoin hit $200,000
before January 1st 2027?

    No @1.15         Yes @6.00    
█████
██
██







██
██
██████

  CHECK MORE > 
TheButterZone (OP)
Legendary
*
Offline

Activity: 3220
Merit: 1076


RIP Mommy


View Profile WWW
July 09, 2026, 04:06:12 AM
Last edit: Today at 07:30:11 AM by TheButterZone
 #5

Forgot to mention, I spun off into a more general project along these lines, that was easier to vibe code (especially since bottle deposit states don't all have APIs for GitHub Actions to grab their current per-pound rates):

BTC2Free
People donate Bitcoin.
Participants offer items on Freecycle in return.


Also, what I've been doing is pinning posts that I GPG-clearsigned with my Bitcoin-OTC WoT key, containing the same address I put on BTC2Free, on my Nostr (npub19ctmsmtf9jtehddhctwmnacwqtnkh0p43tafttrgzdgy0wlppcpq50zf83), eg.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

#BTC2Free

Send https://preev.com/btc/usd?usd=78 to bitcoin:bc1q4xs2vezxa946gcxrmptfe8hquu99wmp8uanst0
& I'll give away

* 96 gallon capacity Toter wheelie bin

Cracked near the wheel so slightly that I missed it the first few times I looked for damage; but in better condition than most used bins I've seen. Also, has address painted on the side.

* ~22.45 lbs of bagged CRV (PET #1) inside the Toter Bin.

Those PET #1 CRV containers are in plastic bags, which is why that weight is approximate.

* 7.325 lbs of bagged PET #1 outside the bin (contained elsewhere) that won't fit.

These bags' weight excluded.

* $4.10 worth (by count) of mixed material CRV containers

* 1 quarter, 1 dime, 1 nickel, 3 pennies

to a random on Freecycle San Diego (currently 10,967 members).

bitcoin-otc.com/viewratingdetail.php?nick=TheButterZone&sign=ANY&type=RECV
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEwKYvetXBb7daFKINdQpmQMXklhsFAmpQnrgACgkQdQpmQMXk
lhtQiBAAn2sFJ8ZSOMceDlgwwDv3JjoT0yYwFsDuzNFOHVGeWEvpBlsuO7gLvDj+
GUNAdCZZauXvaiPwHGODdqoX1lefhiHRHrPeiVKf6NTxCjSw7wimm8VCVah3FaPJ
utrKXWanVYEmSL4Ec+YnrY3+cy/hmJiQF2n6yY0OtKfe+FgHFQnTr/uKh6o2AqX2
s7K3POg7dhDm0rPP9xHRZWNaJ4T/mF7uQ1IMsuj8/06yZUJY/Iu73vo5VkAcLXsR
ZG0vWPWkjuPRl83ovlBmI9H6awinbcfi3N+Y4dTlP5bSz4i1KxSItHmuOYYiKqV3
ZcfPtSHOQyGIfcwYrtvyzaxIkcjDeYij4gYuX+DJjeRP2TCSWDx2wcz885+5CnPy
A0aLCTlTWUwPHCBh+2HF9VCeSPpRUzRJcyNpaI3sLdbfcST5GBRWbZfsCMP82VjI
+FTGDHBhVsdVX/kO8tZAlFYYqALpnLtkU16974IuVQMrsKLlz+QGGT9mz3fGt+d9
yM5XB0nlo97qKlKZdAkLDW2966bcEd7ypXf4ZqYRyBJYRWD4W+0suaL/URds12UA
IOoJstfjcYkCKZ8LZvGuTd6/EjS1fvX3bKMocYY23HH2iQ/Kvhvwh1SQyi271ASU
84EAHAvPX2LbRsrJf7eRPVukW5lqVkg804ZmVb4EmGLMZB7+PgI=
=cG69
-----END PGP SIGNATURE-----

So that's a specific commitment to [receive specified amount to their BTC2Free profile address]->[post exact offer on Freecycle] that anyone can make anywhere they can post ads, then if they're successful, comment the proof of giveaway on their BTC2Free issue.

TheButterZone (OP)
Legendary
*
Offline

Activity: 3220
Merit: 1076


RIP Mommy


View Profile WWW
Today at 04:09:56 PM
 #6

Dang, I just asked & 9/10 states don't mandate minimum per-pound rates for all recycling centers, really? That might kill this idea, even if I think about switching the program to counts only (who's going to count hundreds of containers unless they know they'll get paid as much as possible for them?)

In CA I'm able to calculate a threshold for each container capacity (5 or 10 cent tier) weight to determine if I'll make more redeeming by count or by weight. eg. any <24 fl oz PET #1 container would be 5 cents by count, but if it's a Crystal Geyser water bottle, those weigh less than 0.6 oz/0.0375 lbs empty, so it doesn't make any sense to get less money from the recycling center weighing them than you'd get by count. But if it's a <24 fl oz Gatorade or Snapple drink bottle, they're probably all well-over 0.6 oz, so you get more back weighing them than you paid.

Quote from: Gemini
Building this tool requires navigating an important quirk of U.S. recycling laws: California is the only bottle-bill state that officially legally mandates and publishes payout rates calculated by the pound.The other nine bottle-bill states (CT, HI, IA, ME, MA, MI, NY, OR, VT) legally define their minimum redemption strictly by the individual container count (usually $0.05 or $0.10 per bottle/can). When recycling centers in those states weigh materials, they use their own private, internally estimated "average container-per-pound" conversion multipliers to guess the count, or they require people to hand-count them.To make your script work seamlessly across all 10 states, your data script will need to hardcode a fallback mathematical model for the other 9 states using industry-standard conversion averages.

...

Code:
// Internal data matrix updated with state-regulated minimums and mathematical averages
const stateRatesPerPound = {
  CA: { name: "California", aluminum: 1.66, glass: 0.101, plastic_pet: 1.46 }, // Legally fixed by CalRecycle
  OR: { name: "Oregon", aluminum: 3.11, glass: 0.20, plastic_pet: 2.45 },     // $0.10 rate conversion
  MI: { name: "Michigan", aluminum: 3.11, glass: 0.20, plastic_pet: 2.45 },   // $0.10 rate conversion
  CT: { name: "Connecticut", aluminum: 3.11, glass: 0.20, plastic_pet: 2.45 },// $0.10 rate conversion
  NY: { name: "New York", aluminum: 1.55, glass: 0.10, plastic_pet: 1.22 },   // $0.05 rate conversion
  HI: { name: "Hawaii", aluminum: 1.55, glass: 0.10, plastic_pet: 1.22 },     // $0.05 rate conversion
  IA: { name: "Iowa", aluminum: 1.55, glass: 0.10, plastic_pet: 1.22 },       // $0.05 rate conversion
  MA: { name: "Massachusetts", aluminum: 1.55, glass: 0.10, plastic_pet: 1.22 },// $0.05 rate conversion
  VT: { name: "Vermont", aluminum: 1.55, glass: 0.10, plastic_pet: 1.22 },     // $0.05 rate conversion
  ME: { name: "Maine", aluminum: 1.55, glass: 0.10, plastic_pet: 1.22 }       // Base $0.05 (Note: Maine liquor is $0.15, but mostly sorted manually by count)
};

/**
 * Calculates the total value based on user inputs
 * @param {string} stateCode - Two letter state code (e.g. 'CA')
 * @param {Array} materialsInput - Array of objects containing { type: 'aluminum', weight: 10.5 }
 * @returns {Object} Breakdown of individual costs and the final total sum
 */
function calculateRedemptionTotal(stateCode, materialsInput) {
  const selectedState = stateRatesPerPound[stateCode.toUpperCase()];
  
  if (!selectedState) {
    return { error: "State not supported or does not have a deposit law." };
  }

  let grandTotal = 0;
  const breakdown = [];

  materialsInput.forEach(item => {
    const materialType = item.type.toLowerCase();
    const weight = parseFloat(item.weight) || 0;
    
    // Pull the rate per pound from our state data matrix
    const ratePerPound = selectedState[materialType];

    if (ratePerPound && weight > 0) {
      const itemSubtotal = weight * ratePerPound;
      grandTotal += itemSubtotal;
      
      breakdown.push({
        material: materialType,
        weight: weight,
        rateApplied: ratePerPound,
        subtotal: parseFloat(itemSubtotal.toFixed(2))
      });
    }
  });

  return {
    state: selectedState.name,
    lineItems: breakdown,
    totalPayout: parseFloat(grandTotal.toFixed(2)) // Round cleanly to normal currency format
  };
}

// --- Example Frontend Usage Simulation ---
const userState = "CA";
const userMaterials = [
  { type: "aluminum", weight: 12.5 },
  { type: "plastic_pet", weight: 5.2 }
];

console.log(calculateRedemptionTotal(userState, userMaterials));

Figured I might as well throw the JS in here so the compute wasn't wasted.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!