Developers.
Build bots, chat invoices, x402 paid HTTP, and dApps on Obsidio L1 (Dilithium · mainnet-v2).
Public RPC: https://obsidio.network/rpc/
Quick start
JSON-RPC over HTTPS. Many read methods are public; writes that move funds need Dilithium signatures from the user wallet.
curl -sS https://obsidio.network/rpc/ \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"obsidio_getStatus","params":{}}'
Network id in x402 / signing: obsidio-mainnet-v2 (header network field: obsidio:obsidio-mainnet-v2).
Bots
Bot = name + pay address + API key + webhook. Logic runs on your server; the node delivers events and settles OBS/wUSDC.
- Open
bots.botin the Obsidio wallet (BotFather) or callobsidio_botRegister - Store the returned
api_keyonce - Expose HTTPS
/webhook; set it withobsidio_botSetWebhook - Handle
message/callback/payment/refund/escrow_released - Wallet open fires
obsidio_botOpen→ synthetic/startwebhook (greet without user typing) - Reply via
obsidio_botSendMessage/obsidio_botSendInvoice(from =*.botname) - Each bot should have its own pay address (
obsidio_botEnsureKeys)
Webhook
Node → you: POST JSON body, header X-Obsidio-Bot-Signature: blake3(api_key || body) (hex).
{
"type": "callback",
"bot": "shop.demo.bot",
"chat_id": "ons1…",
"callback_data": "buy:item",
"message_id": "…",
"ts": 1793000000
}
Payment event includes invoice_id, tx_hash, escrow / escrow_held, subscription fields when set.
Invoices, escrow, subscriptions, refunds
| Feature | How |
|---|---|
| Invoice | obsidio_botSendInvoice → wallet shows pay card ⟦invoice⟧…⟦/invoice⟧ |
| Escrow | "escrow": true → after pay escrow_held; release with obsidio_botReleaseEscrow |
| Subscription | "subscription_period_secs": 86400 → next_renew_ts; auto-renew ticker or obsidio_botRenewSubscription |
| Refund | obsidio_botEnsureKeys (force:true if pay address already set) → fund new address → obsidio_botRefundInvoice |
Example: send invoice
curl -sS https://obsidio.network/rpc/ \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc":"2.0","id":1,
"method":"obsidio_botSendInvoice",
"params":{
"api_key":"obs_bot_sk_…",
"chat_id":"ons1…",
"title":"Demo item",
"amount_obs":"5",
"memo":"order_42",
"expires_in":3600,
"escrow":false
}
}'
x402 (HTTP 402)
Same settlement as bot invoices. Demo:
GET https://obsidio.network/x402/demo/ping
# (also via /rpc/x402/demo/ping)
# → 402 + header PAYMENT-REQUIRED (base64 PaymentRequired v2)
# After L1 pay + confirm:
GET https://obsidio.network/x402/demo/ping
PAYMENT-SIGNATURE: base64({"x402Version":2,"payload":{"tx_hash":"…","invoice_id":"inv_…"}})
Facilitator check: obsidio_validatePayment (amount / pay_to / asset / tx reuse / travel-rule / sanctions).
Wallet Explore → Bots → Try x402 demo ping runs the full client flow.
dApps
In-app browser
Injected window.obsidio (same surface as the Chrome extension). Prefer user-signed txs: obsidio_walletSend with Dilithium sender_pk + signature.
What you need
- User address
ons1…or ONS name - Asset:
OBS(18 dec) orWUSDC(6) - Nonce from chain + sign with Dilithium-3
- Optional: Kyber for private chat / FHE paths
Common dApp RPCs
| Method | Use |
|---|---|
obsidio_getStatus | Height, tip, network |
obsidio_getBalance | OBS / WUSDC balances |
obsidio_dexPools / obsidio_dexSwap | AMM |
obsidio_getStaking | Stake UI |
obsidio_onsResolve | Name → address |
obsidio_walletSend | Signed transfer |
obsidio_botList | Discover bots |
Bot / payment RPC map
| Method | Auth |
|---|---|
obsidio_botRegister | Owner pays fee (OBS) |
obsidio_botList / Resolve | Public |
obsidio_botSendMessage | Bot api_key |
obsidio_botSendInvoice / createInvoice | api_key or bot name |
obsidio_botCallback | Wallet → node |
obsidio_confirmInvoicePayment / validatePayment | After L1 pay |
obsidio_botReleaseEscrow | api_key |
obsidio_botRenewSubscription | api_key |
obsidio_botEnsureKeys / botRefundInvoice | api_key + funded bot address |
obsidio_x402Quote | Public |
Specs in repo: docs/BOTS.md, docs/X402.md. Also mirrored under /docs/.
Live demo bots
bots.bot— BotFather (create / webhook / rotate)shop.demo.bot— catalog → invoice → code on paymentstake.bot— staking helperstatus.bot— chain status + tip invoice
Open them in the mobile wallet: Chats → Bots or Explore → Bots.
Get APK BOTS.md X402.md Bug bounty