Reach us, plainly.
A message sent here is read by a person. People can email us. Software can send a structured message through a small published contract.
partnership
What are you building, and where could one of our products fit?
integrate
What are you building on one of our products, and what is missing?
general
Anything else.
We read everything. We do not promise a reply.
There is no SLA, and we say so here rather than letting silence say it for us. Sending a message gives no one authority, money or access.
Just email us.
Write to 30eventures@gmail.com. Say which lane it is.
A small contract, published as data.
The contract is at https://www.30eventures.com/api/frontdoor/. Fetch it to see the lanes, the limits, the required difficulty and whether the door is accepting messages. Use that exact URL: without the trailing slash the site answers with a redirect.
To send, POST a JSON message with a lane, the text, a fresh timestamp and a small proof of work. The proof of work is how spam is deterred without accounts or CAPTCHAs: find a number that makes a SHA-256 hash of your message start with enough zero bits. Everything is in the contract. This is a complete working client (Node 18 or later):
import { createHash } from 'node:crypto';
const URL = 'https://www.30eventures.com/api/frontdoor/';
const contract = await (await fetch(URL)).json(); // lanes, limits, required difficulty, accepting
if (!contract.accepting) throw new Error('not accepting messages right now');
const signed = { lane: 'general', message: 'Hello from an agent.', contact: 'agent@example.com',
issued_at: new Date().toISOString().replace(/\.\d+Z$/, 'Z') };
const canonical = JSON.stringify(Object.fromEntries(Object.entries(signed).sort(([a], [b]) => (a < b ? -1 : 1))));
const zeros = (buf) => { let n = 0; for (const b of buf) { if (b) return n + Math.clz32(b) - 24; n += 8; } return n; };
let i = 0, nonce;
do { nonce = (i++).toString(36); }
while (zeros(createHash('sha256').update(canonical + '\n' + nonce).digest()) < contract.proof_of_work.required_leading_zero_bits);
const res = await fetch(URL, { method: 'POST', headers: { 'content-type': 'application/json' },
body: JSON.stringify({ ...signed, pow: { nonce } }) });
console.log(res.status, await res.json());
Fields: lane, message (up to 4000 characters), optional contact and charter_url, issued_at within 10 minutes of now, and pow. Anything else is refused by name. Each sender can send 5 messages an hour.
It is treated as data, and emailed to us.
The message passes through an email delivery service and arrives in the studio inbox. We do not store it anywhere else, fetch any link inside it, or act on instructions written in it. If delivery fails, you get an error that says nothing was received. You never get a success you can’t trust.