Lockin

Build → getting a friend to actually show up

Make your flakiest friend actually show up.

Every friend group has The Person who cancels 30 minutes before. Lockin's Friend Challenge attaches a real financial stake to a single event — geofenced check-in at the venue, deadline locked at creation. Show up or the money goes to charity.

Suggested starting contract

$10/day against missing your daily target of GPS check-in at the event venue by deadline.

Why willpower fails to start this

Every modern friend group has The Person — the one who confirms on Tuesday, hedges on Wednesday, and texts a sad-face emoji thirty minutes before the reservation. The flake economy is asymmetric by design. The friend who cleared their evening, paid for the Uber, and walked into the restaurant alone loses their night. The canceller loses nothing, because RSVP-without-precommitment is functionally a non-promise. The cost falls entirely on the people who showed up, which is exactly why the behavior keeps repeating — there is no mechanism that makes flaking expensive for the flaker. Robert Cialdini, in "Influence" (1984), identified commitment-and-consistency as one of the strongest levers in human behavior: once people make a stated commitment, especially a public or written one, they feel internal pressure to act in line with it. The collapse of plan-keeping in adult friendships is, in Cialdini's terms, a collapse of commitment quality. A casual "yeah I'm in" carries almost none of the consistency pressure that a signed, costed pledge does. The promise is too cheap to bind future-you. Thomas Schelling, the Nobel laureate whose work on credible commitment in "The Strategy of Conflict" (1960) and "Choice and Consequence" (1984) reshaped how economists think about promises, argued that a commitment only works if reneging is genuinely costly. A threat or a pledge that costs nothing to break is, in Schelling's framework, not a commitment at all — it is communication. Most social RSVPs fall into that second category. Without skin in the game, there is no commitment device, only stated intent that erodes under the smallest friction. Daniel Kahneman and Amos Tversky's 1979 prospect-theory paper established that losses feel roughly twice as large as equivalent gains. Layer that on top of Richard Thaler and Cass Sunstein's work in "Nudge" (2008) on choice architecture and the picture is clean: if you want a friend to actually show up to a one-time event, the architecture has to make not-showing-up the more expensive option. Lockin's Friend Challenge is that architecture. The friend's own money is staked against attendance, GPS-verified at the venue, with a deadline locked at creation. Showing up is suddenly the cheaper choice.

How Lockin verifies it

The sender opens Lockin and creates a Location challenge. On the first wizard step they pick "For a Friend" rather than "For Myself", which switches the contract into Friend Challenge mode and sets the recipientId to the chosen friend. The sender drops the geofence on the event venue — a 50m radius around the address — and sets a single instanceDate (the event date) plus a deadline by which the check-in must happen. The deadline is locked at creation and cannot be edited mid-contract. The sender then chooses a payment model: sender_pays (the sender funds the stake upfront) or recipient_pays (the friend is charged when they accept). A charity is selected from the vetted list — climate, mental health, animal welfare, or digital literacy — to receive any forfeit. The friend gets a push notification with an accept-or-reject screen. Status moves pending → payment_pending → active once they accept (and, if recipient_pays, are charged). On the day of the event the friend walks into the venue, waits for the check-in button to shimmer once their phone is inside the 50m geofence, and taps it to record the visit and start the dwell timer. If the dwell threshold and check-in complete before the deadline, status moves to completed. Miss the deadline and the contract expires, forfeiting the stake to charity. The sender just sees pass/fail; the per-instance tracking dashboard for sent challenges is a Lockin Pro feature.

Set up a getting a friend to actually show up contract in 5 minutes

  1. 1

    Install Lockin and create your account

    Download the app on iOS or Android, create an account, and connect a payment method. The whole flow takes under three minutes and is required even if you are using sender_pays so refunds and charges can settle cleanly.

  2. 2

    Tap New Challenge and choose For a Friend

    On the first step of the wizard, switch the recipient from For Myself to For a Friend. Pick the friend from your contacts or by username — this sets recipientId on the contract and unlocks the Friend Challenge fields.

  3. 3

    Set the venue geofence and event date

    Search for the venue, drop the 50m geofence on the exact address, and set instanceDates to the single event date. Pick a deadline — typically the event start time or shortly after — knowing the deadline is locked at contract creation and cannot be edited mid-contract.

  4. 4

    Choose the payment model

    Pick sender_pays (you fund the stake upfront — refundable if your friend rejects, forfeit to charity if they accept and no-show) or recipient_pays (your friend is charged on accept, with their own money on the line). Recipient_pays puts the skin in the game on the person whose behavior you want to change.

  5. 5

    Set the stake amount and pick a charity

    Choose how much money is on the line — $10 is a common default for one-time events, scaled up for higher-stakes plans like weddings or flights. Pick the charity that receives the forfeit if the friend no-shows: climate, mental health, animal welfare, or digital literacy.

  6. 6

    Send the challenge

    Hit send. Lockin fires a push notification to the friend with an accept-or-reject screen. The contract sits in pending status until they respond — if they reject or let it expire, no charge happens and any sender_pays funds are refunded.

  7. 7

    On the day, friend checks in at the geofence

    When the friend arrives at the venue, the check-in button on their contract card shimmers once their phone is inside the 50m geofence. They tap it to record the visit and start the dwell timer. Completing the check-in and dwell before the deadline closes the contract as completed; missing the deadline forfeits the stake to charity.

From Lockin's data

Among Lockin beta users running Friend Challenges for one-time events, recipient_pays contracts complete at meaningfully higher rates than sender_pays contracts — consistent with prospect-theory predictions that loss aversion is strongest when the money on the line is the recipient's own. Beta data also shows that single-event Friend Challenges with the deadline set at or just after the event start time outperform looser end-of-day deadlines for venue arrivals.

"I had a friend who flaked on three concerts in a row. The fourth time I sent him a recipient_pays Friend Challenge with a $10 stake and a Music Hall geofence — he showed up early and bought the first round. The contract did what no amount of guilt-tripping had managed."

— Anonymous beta user, sent Friend Challenge, concert venue

Common questions

Sender_pays vs recipient_pays — which payment model should I use? +

The trade-off is whose money is actually at risk. With sender_pays, you fund the stake upfront — if your friend rejects the challenge or it expires, you are refunded; if they accept and then no-show, your money goes to the charity, not theirs. With recipient_pays, your friend is charged when they accept the challenge, so it is their own money on the line if they fail to check in. Loss aversion is strongest against your own losses, which is why most users default to recipient_pays for accountability — it is the model where the friend has genuine skin in the game. Sender_pays is closer to a gift or a pledge made on their behalf, useful when you want to make the contract frictionless for the friend to accept (e.g., a bride covering bridesmaids). Note that recipient_pays only activates if the friend agrees to be charged — they have to actively accept.

What happens if my friend rejects the challenge or never responds? +

Friend Challenges follow a clean status flow: pending → payment_pending → active → completed/rejected/cancelled/expired. If your friend rejects it (using the respond_to_friend_challenge RPC under the hood) or simply lets the pending challenge expire without accepting, the contract never becomes active and nobody is charged a forfeit. With sender_pays, any funds you put up are refunded automatically. With recipient_pays, the friend was never charged in the first place because the charge only fires on accept. The contract has to be opted into to bind — without that, there is no commitment, no stake, no movement of money.

Can I track whether my friend actually showed up? +

Both sides receive push notifications at the key contract events: when you send the challenge, when the friend accepts or rejects, when the contract activates, when a check-in completes, and when the contract closes as completed or expired. On the free tier, the sender sees the headline pass/fail outcome of the contract. The full per-instance tracking dashboard for sent challenges — with timeline, geofence entry timestamps, dwell duration, and status changes — is a Lockin Pro feature. Most senders find the pass/fail plus the push notifications enough; Pro is for users sending multiple Friend Challenges and wanting a single dashboard view across all of them.

Can I send a Friend Challenge to multiple people for the same event? +

Each Friend Challenge is one-to-one — a single senderId paired with a single recipientId. There is no group-stake mode where one pot is shared across multiple recipients. For a group event like a wedding, a hike, or a dinner reservation, you send a separate Friend Challenge to each person, and each contract runs independently with its own stake, payment model, accept/reject decision, and check-in. One person rejecting does not affect the others; one person no-showing only forfeits their own stake. This keeps the accountability personal and avoids the diffusion-of-responsibility failure mode where everyone assumes someone else is on the hook.

Other habits people build

Stop deciding. Start staking.

Free to download. You set the target, the stake, and the charity.