Skip to content

For apps

Fewer bots, without holding your users' data.

You have a bot problem, and you don't want to collect IDs to fix it. That's who this is for.

The problem

A bot farm can pretend to be a crowd for almost nothing.

The usual fixes ask your real users for more: a phone number, a puzzle, an ID.

How it works

Ask for something a bot can't fake cheaply.

  1. 01

    Sign one message

    A user signs one message with their Bitcoin address. Nothing else to fill in.
  2. 02

    You set the bar

    Your app checks the address held a minimum of sats, unspent, for a minimum number of days.
  3. 03

    Nothing moves

    No sats change hands. Nobody holds them. Anyone can check the result against Bitcoin.
@orangecheck/gate, in Express. Next, Fastify, Hono and Workers have their own.
import { ocGate } from '@orangecheck/gate';

// Only addresses holding at least 100,000 sats,
// unspent for 30 days, may post.
app.post(
  '/post',
  ocGate({ minSats: 100_000, minDays: 30, address: { from: 'header' } }),
  postHandler
);

A thousand fake accounts means bitcoin parked across a thousand addresses. Honest users only wait.

What you get

Open packages for the stack you already run.

A drop-in gate

@orangecheck/gate

Middleware for Express, Next, Fastify, Hono and Workers.

A Nostr relay filter

@orangecheck/relay-filter

For strfry. Turns away events from npubs with no bitcoin behind them.

Sign in with Bitcoin

<OcSignInButton />

A sign-in popup, and session checks for Next, Express and Hono.

Pay your users

@orangecheck/me-client

Report the events you value. Users get their share. You get a receipt.

All of it is open: MIT code, open specs, TypeScript and Python SDKs. github.com/orangecheck

What it costs

An afternoon of integration. The open layer is free.

The gate, the relay filter and the sign-in components are MIT-licensed. Paying your users is per event, with no minimum: you set each event's price, orangecheck keeps 20%, and you choose how much goes to your users, up to 80%.

We help you wire it up and answer technical questions directly.

For your users

Sign in. Earn. Own.

  1. 01

    Sign inlive

    The way they always do. Email or a wallet. Nothing new to learn.
  2. 02

    Earnin testing

    Small amounts for things they already do online, shared by your app: up to 80% of each event.
  3. 03

    Ownon the path

    Over time, it moves into a wallet they hold themselves.

The payout rail is in bring-up, so no sats move yet. OrangeCheck holds what accrues until a federation takes over. Who holds what

The honest version

What's true today.

  • YesOpen source. Every receipt checks against Bitcoin, offline.
  • YesNo token. No ads. No KYC.
  • In testingEarning in sats. The payout rail is in bring-up, so no sats move yet.
  • In testingCustody. OrangeCheck holds your accrued sats during bring-up — it is operating every role until independent operators take them. Federation custody and graduation to your own keys are what replace it.
  • Not yetMoving sats to a wallet you hold. Graduation to your own keys is not live: no federation is bound yet.
StatusWhat
YesOpen source. Every receipt checks against Bitcoin, offline.
YesNo token. No ads. No KYC.
In testingEarning in sats. The payout rail is in bring-up, so no sats move yet.
In testingCustody. OrangeCheck holds your accrued sats during bring-up — it is operating every role until independent operators take them. Federation custody and graduation to your own keys are what replace it.
Not yetMoving sats to a wallet you hold. Graduation to your own keys is not live: no federation is bound yet.

Who holds what, computed from the live state: ochk.app/custody

Why partner now

We're building it with a few apps before it opens up.

  1. You shape it

    What your integration needs gets built. Real needs, not guesses.
  2. A direct line

    You talk to the person who built it. Not a sales team.
  3. Ready when it opens

    Integrate during testing. Be live when it opens.

Start on your own

Everything is ready to try today.

Read the quickstart

Nine steps from a new project to your first receipt, with the real code.

Create a project

Your orangecheck sign-in is your developer account. The wizard has three steps.

Model your costs

Pick a preset and a traffic tier, and see a month of the split.

A 20-minute call. Tell us about your spam problem.

Nothing more than a conversation. If it fits, we build the integration together during testing.

The open layer is supported by an OpenSats grant · github.com/orangecheck