SOBTC.NET
SOBTC.NET
Bitcoin Donations Network
OIO AUTH

Login with SOBTC.NET

Zero-KYC identity verification. No passwords. No email. No data shared.

Allow your users to authenticate using their BTC ID and BTC KEY. Your site receives only: verified status and username. No personal data. No keys. No tracking.

HOW IT WORKS
01 User enters their BTC ID and BTC KEY on your site
02 Your server sends them to POST /auth/verify
03 SOBTC.NET verifies and returns verified: true/false + username
04 You store the username — never the key
RULES FOR DEVELOPERS
✓ Never store the BTC KEY — verify and discard it immediately
✓ Never transmit BTC KEY over unencrypted connections (use HTTPS)
✓ Never share verification results with third parties
✓ Inform users you are using OIO Auth before asking for credentials
✓ Store only the username — not the BTC ID or any other credential
Misuse of OIO Auth violates platform terms and will result in account suspension.
API REFERENCE
ENDPOINT
POST https://sobtc.net/auth/verify
REQUEST BODY (JSON)
{
  "btc_id": "OIO-xxxxxxxx",
  "btc_key": "BTC-KEY-xxxx-xxxx-..."
}
RESPONSE — SUCCESS
{"verified": true, "username": "btc", "btc_id": "OIO-xxxxxxxx"}
RESPONSE — FAILURE
{"verified": false, "error": "invalid credentials"}
CODE EXAMPLES
cURL
curl -X POST https://sobtc.net/auth/verify \
  -H "Content-Type: application/json" \
  -d '{"btc_id":"OIO-xxxxxxxx","btc_key":"BTC-KEY-..."}'
JavaScript / Node.js
const res = await fetch('https://sobtc.net/auth/verify', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({ btc_id, btc_key })
});
const { verified, username } = await res.json();
if (verified) {
  // login user with username only — discard btc_key
}
Python
import requests
r = requests.post('https://sobtc.net/auth/verify',
  json={'btc_id': btc_id, 'btc_key': btc_key})
data = r.json()
if data['verified']:
  username = data['username'] # store only this
EMBEDDABLE WIDGET
Copy and paste into any HTML page — works standalone:
<!-- SOBTC.NET Login Widget --> <div id="oio-auth" style="max-width:320px;background:#0a0a0a;border:1px solid #1e1e1e;padding:20px;font-family:monospace"> <a href="https://sobtc.net" rel="dofollow" style="display:flex;align-items:center;gap:8px;text-decoration:none;margin-bottom:16px"> <img src="https://sobtc.net/style/logo.png" width="28" height="28" style="border-radius:50%"> <div> <div style="font-size:12px;font-weight:bold;color:#f7931a">SOBTC.NET</div> <div style="font-size:9px;color:#888">Bitcoin Donations Network</div> </div> </a> <input id="oid" placeholder="OIO-xxxxxxxx" style="width:100%;background:#000;border:1px solid #1e1e1e;color:#fff;padding:8px;margin-bottom:8px;box-sizing:border-box"> <input id="okey" type="password" placeholder="BTC-KEY-..." style="width:100%;background:#000;border:1px solid #1e1e1e;color:#fff;padding:8px;margin-bottom:12px;box-sizing:border-box"> <button onclick="oioVerify()" style="width:100%;background:#f7931a;border:none;color:#000;padding:10px;font-weight:bold;cursor:pointer">LOGIN WITH SOBTC.NET</button> <div id="oio-result" style="margin-top:10px;font-size:11px"></div> </div> <script> async function oioVerify(){ const r=document.getElementById("oio-result"); const res=await fetch("https://sobtc.net/auth/verify",{ method:"POST",headers:{"Content-Type":"application/json"}, body:JSON.stringify({btc_id:document.getElementById("oid").value, btc_key:document.getElementById("okey").value}) }); const d=await res.json(); if(d.verified){ r.style.color="#0a0"; r.textContent="✅ Welcome, @"+d.username; // TODO: handle login — d.username is verified } else { r.style.color="#e55"; r.textContent="❌ "+d.error; } } </script>
LIVE DEMO
This demo calls POST /auth/verify directly from your browser. Your credentials are not stored.
API Docs API Reference Create Account →