OpenAffiliate: affiliate programs with no network in the money
Affiliate marketing runs through networks, and the networks are the problem. A merchant pays a third of every commission for a tracking pixel and a payout file. An affiliate applies to each program by hand, waits weeks for a decision, and ends up with ten dashboards that disagree with each other. The terms live in a PDF signed once. A conversion gets reversed with no reason. The payout arrives sixty days later, minus a fee. And none of it can be read by a machine, so an agent that could earn a commission by recommending the right product has no way to find out what the commission is.
The merchant already knows what it pays and what each sale was worth. So we wrote that down as a spec, and shipped it on CrawlProof.
The spec
OpenAffiliate is one file a merchant serves at /.well-known/openaffiliate.json: every program with what it pays (sale, subscription, signup, lead, install), percent or a flat amount, the attribution window, the hold before approval, and how the money leaves. Four calls do the rest.
- Join by POSTing an OpenProfile.md URL. Back comes a code, a link, a token and the terms as they stood. A person or an agent, no application form.
-
Link with the merchant's own URL plus
?oa=code. No redirect host, no shortener, no pixel. Deep links work on any page. - Ledger: every conversion with its status, hold and reason, every payout with its transaction hash, readable by the affiliate with the token. A reversal without a reason is not a reversal.
- Payout of the whole approved balance to the affiliate's own address on the schedule the file names. Nothing netted, because there is no network to pay one to.
Only a real navigation sets attribution. A parameter on an image, a frame or a script sets nothing, which is the whole defence against cookie stuffing, and it is the merchant's to enforce. A directory that lists programs never touches the money.
The implementation
CrawlProof now runs its own program and is the reference implementation. The terms are public at crawlproof.com/.well-known/openaffiliate.json: 30 percent of a credits purchase within 30 days of a click, a 30 day hold, paid in USDC on Polygon weekly from ten dollars. Sign in and your link exists at crawlproof.com/dashboard/affiliate.
It also works the other way. Every CrawlProof user gets a served OpenProfile, and the same dashboard reads other merchants' descriptors, joins their programs with that profile, holds the token for you and shows every ledger on one page. The directory is at crawlproof.com/affiliate/programs.
Everything the dashboard does, an agent can do. crawlproof affiliate link|ledger|pay|payout|programs|join|joined on the CLI, nine affiliate_* tools on the MCP server, and the API under /api/affiliate/v1/ that takes an affiliate token, a CrawlProof API token or a session.
Running one yourself
By hand, from the table that already exists. A merchant with a referral column on its orders has the ledger; the descriptor is the terms written down, the join call is an insert, and the payout is what it already does on a schedule. The spec is CC BY 4.0 at logicsrc.com/docs/openaffiliate.
Top comments (0)