Build a front-end · fork a real template, point it at our RPC/APIs
You don't start from scratch. Every front-end in the ecosystem is open source — fork the one closest to what you want and repoint it. Below: the real templates, the two Hive-style app patterns people ask for (APPICS and PIZZA), and the minimal code to point any page at the MELEK / PRANA RPCs.
The templates — fork these
| Template | Repo | What it is |
|---|---|---|
| MELEK condenser (social front-end) | HinduTempleCoins/melek-condenser | The full MELEK web app — posts, votes, wallet. A condenser fork (the Hive/Steem web client). Point it at the MELEK RPC + chain id and it is your social front-end. |
| KulaSwap (DEX front-end) | HinduTempleCoins/KULASwap | The Uniswap-V2-style DEX UI + DeFi (swap, CDP, veKULA, farms). Fork it, point it at the PRANA RPC + the router/factory on /dev/contracts, and you have a DEX. |
| Nitrous (SCOT tribe front-end) | HinduTempleCoins/Bot | engine/nitrous/render.mjs — a per-token branded read-only site generator. Give it a symbol + theme; it renders that tribe. Reuses the engine read API. |
| Hathor chat embed | HinduTempleCoins/Bot | A client-side chat widget (in the Bot repo) — it runs live on pool.soapbox.community. Client-side; drop it into a page to add the AI Witness as a helper. |
Everything is under github.com/HinduTempleCoins. Hive's own front-ends (condenser, Nitrous) are open too — github.com/hive-engine.
Point a page at the chains — the minimum
EVM reads (PRANA) — viem in a plain HTML page
<script type="module">
import { createPublicClient, http, defineChain } from 'https://esm.sh/viem';
const prana = defineChain({
id: 712217, name: 'PRANA',
nativeCurrency: { name: 'PRANA', symbol: 'PRANA', decimals: 18 },
rpcUrls: { default: { http: ['https://rpc.prana.melek.salon'] } },
});
const client = createPublicClient({ chain: prana, transport: http() });
document.body.textContent = 'PRANA head block: ' + await client.getBlockNumber();
</script>
Social reads (MELEK) — one fetch, no SDK
// A read-only MELEK feed widget — no SDK, no key, works in any page.
const r = await fetch('https://melek.salon/rpc', {
method: 'POST', headers: { 'content-type': 'application/json' },
body: JSON.stringify({ jsonrpc: '2.0', id: 1,
method: 'condenser_api.get_discussions_by_created',
params: [{ tag: '', limit: 10 }] }),
});
for (const p of (await r.json()).result) render(p.author, p.title);
Writes: EVM → wallet-signed (MetaMask, see PRANA dev); MELEK → posting key or the keyless MELEK-Signer boundary (see MELEK dev). Reads never need a key.
APPICS-style — a tokenized social app
APPICS (on Hive) is a community-token social app with its own front-end. The path here uses our real building blocks:
- Launch a SCOT side-token on MELEK-Engine (/dev/scot) — your community coin that pays posters + curators.
- Point a Nitrous front-end (
engine/nitrous/render.mjs) at that symbol — a branded feed for your token, out of the box. - Users post on MELEK, your token rewards them, your front-end is the app. That's a tokenized social dApp with no custom chain and no Solidity.
PIZZA-style — a tipping / community-token bot
PIZZA (on Hive) is a bot that watches posts/comments
and tips its token. The building blocks we actually ship (in engine/):
- The streamer (
engine/lib/streamer.mjs) — reads MELEK L1 blocks and hands you posts, comments, and votes to react to. - The op-builder (
engine/lib/op-builder.mjs,scot-mint.mjs) — assembles thetokens.transfer/scotcustom_jsonfor a tip. Pure: it builds + validates, never signs. - The signing boundary — sign the built op with a posting key you hold, or through
MELEK-Signer with a scoped token. Track staked balances
off-chain from the engine's
/contracts/balances.
Honest: these are templates + building blocks in the repo, not a one-click hosted "tip bot" service. You run the bot; we give you every piece it needs and the signing boundary that keeps the key off the server.
SCOT side-tokens → · MELEK app dev → · PRANA contract dev → · All dev services →