DeFi & Liquidity Tools
Portfolio dashboards, liquidity analytics, pool monitoring, and wallet utilities.
Build · Integrate · Contribute · Grow — a developer-focused program for documentation, open-source tools, ecosystem applications, security research, and community contributions on Anubis Eska Chain.
Start with what exists on-chain right now, before the portal and SDKs ship.
OLGNS token and Origin Earn proxy, with live parameters read from chain.
Independently verify code, transactions and holders.
Post-quantum migration architecture and protocol research.
Every official OLGNS destination, checked live.
These values are fetched from the public Anubis RPC endpoint in your browser right now. Nothing on this page is a cached or hardcoded figure.
// Add Anubis Mainnet to any EIP-1193 wallet
await window.ethereum.request({
method: "wallet_addEthereumChain",
params: [{
chainId: "0x1a3a", // 6714
chainName: "Anubis Mainnet",
rpcUrls: ["https://rpc.anubispace.org"],
blockExplorerUrls: ["https://browser.anubispace.org"],
nativeCurrency: { name: "ANUBIS", symbol: "ANUBIS", decimals: 18 },
}],
});# Latest block number from the public Anubis RPC
curl -s https://rpc.anubispace.org \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'Copy the addresses, download the Origin Earn ABI, and verify every byte on the Anubis explorer before you integrate.
| Contract | Address | Notes |
|---|---|---|
| OLGNS token (ERC-20) | 0xa9E7EBA6D6A3aE6ca1286a0264a216EA36767e25Explorer | Standard ERC-20. Use for balances, allowances and approvals. |
| Origin Earn proxy (ERC-1967 / UUPS) | 0xe3E08782D6488F80aA909339EE8c338E3e58Eb1EExplorer | The only address user transactions should ever target. |
| Current implementation | 0xE9B6C8e8E804dD9E49E9DDEccDC22a466224e09cExplorer | Informational. Read the ERC-1967 slot at runtime instead of pinning this value. |
function STAKING_FEE_BPS() view returns (uint256)0xcd53bf53function WITHDRAWAL_FEE_BPS() view returns (uint256)0x3a4ae669function minimumStake(uint8) view returns (uint256)0x796a486cfunction rewardRate(uint8) view returns (uint256)0xabb19309function durationForPlan(uint8) view returns (uint256)0x0563385afunction calculateFixedReward(uint8,uint256) view returns (uint256)0xa85dabbefunction flexRewardOf(uint256) view returns (uint256)0x51ef72d1function getUserPositionIds(address) view returns (uint256[])0xeddf7570function getPosition(uint256) view returns (tuple)0xeb02c301function availableRewardLiquidity() view returns (uint256)0x6575a08ffunction fixedRewardLiability() view returns (uint256)0xb171daeefunction totalRewardCapacity() view returns (uint256)0xfb68b9cafunction paused() view returns (bool)0x5c975abbfunction owner() view returns (address)0x8da5cb5bfunction stakingFeeWallet() view returns (address)0x1ab7bddefunction withdrawalFeeWallet() view returns (address)0x3fea9c40function treasuryWallet() view returns (address)0x4626402bfunction olgns() view returns (address)0xf217de53function contractBalance() view returns (uint256)0x8b7afe2efunction version() view returns (string)0x54fd4d50function fixedMonthlyRateBps(uint8) view returns (uint256)0xffe8a724function fixedRewardPeriods(uint8) view returns (uint256)0x638b0678function fixedRewardClaimable(uint256) view returns (uint256)0x3affa522function fixedRewardClaimed(uint256) view returns (uint256)0xaa6bc93ffunction claimFixedReward(uint256) nonpayable0xe534c874function stake(uint8,uint256) nonpayable0xdd752e55function withdrawFixed(uint256) nonpayable0x38a9a686function claimFlexReward(uint256) nonpayable0xe7422bb0function withdrawFlexPrincipal(uint256,uint256) nonpayable0xb28bd119import { createPublicClient, http, defineChain, formatUnits } from "viem";
export const anubis = defineChain({
id: 6714,
name: "Anubis Mainnet",
nativeCurrency: { name: "ANUBIS", symbol: "ANUBIS", decimals: 18 },
rpcUrls: { default: { http: ["https://rpc.anubispace.org"] } },
blockExplorers: { default: { name: "Blockscout", url: "https://browser.anubispace.org" } },
});
const client = createPublicClient({ chain: anubis, transport: http() });
const balance = await client.readContract({
address: "0xa9E7EBA6D6A3aE6ca1286a0264a216EA36767e25",
abi: ["function balanceOf(address) view returns (uint256)"],
functionName: "balanceOf",
args: ["0xYourAddress"],
});
console.log(formatUnits(balance, 18), "OLGNS");// Live protocol parameters — never hardcode fees in your integration
const call = (data) => fetch("https://rpc.anubispace.org", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0", id: 1, method: "eth_call",
params: [{ to: "0xe3E08782D6488F80aA909339EE8c338E3e58Eb1E", data }, "latest"],
}),
}).then((r) => r.json()).then((r) => BigInt(r.result));
const stakingFeeBps = await call("0xcd53bf53");
const withdrawalFeeBps = await call("0x3a4ae669");A working example, not a snippet in a document. Connect below and the panel performs the same calls shown in the code.
This runs the exact flow in the code beside it: connect an EIP-1193 wallet, check the chain ID, and read live balances from the public RPC. Read-only — nothing is signed or sent.
const [account] = await window.ethereum.request({ method: "eth_requestAccounts" });
const chainId = await window.ethereum.request({ method: "eth_chainId" });
if (chainId !== "0x1a3a") {
await window.ethereum.request({
method: "wallet_switchEthereumChain",
params: [{ chainId: "0x1a3a" }],
});
}
// balanceOf(address) — the same read this panel performs
const data = "0x70a08231" + account.slice(2).toLowerCase().padStart(64, "0");
const raw = await window.ethereum.request({
method: "eth_call",
params: [{ to: "0xa9E7EBA6D6A3aE6ca1286a0264a216EA36767e25", data }, "latest"],
});
console.log("OLGNS:", Number(BigInt(raw)) / 1e18);Integration rules: always target the Origin Earn proxy, never the implementation; read fees and plan parameters from the contract instead of hardcoding them; use BigInt arithmetic; and treat the chain as the source of truth for every balance, timestamp and reward figure.
Dates show the planning sequence. A date passing does not mean the phase was delivered.
Four areas where OLGNS infrastructure is directly useful to independent builders.
Portfolio dashboards, liquidity analytics, pool monitoring, and wallet utilities.
Applications using OLGNS contracts, staking interfaces, and verified on-chain reads.
Research prototypes, cryptographic agility, and post-quantum migration experiments — clearly labeled as research until implemented and reviewed.
SDKs, documentation, developer APIs, monitoring tools, and community-maintained integrations.
Each program opens only once its rules, funding and verification process are published.
| Program | Purpose |
|---|---|
| OLGNS Builder Program | Help developers build and showcase applications |
| OLGNS Grants | Fund selected projects through transparent criteria and available funding |
| Bug Bounty | Encourage responsible vulnerability reporting |
| Developer Academy | Tutorials, workshops, and starter projects |
| Open-source Contributions | Reward useful documentation, code, testing, and tooling |
| Ecosystem Showcase | Publish projects with clear descriptions and verification links |
Funding principle: eligibility, selection criteria, reward amounts and payment conditions are published before applications are accepted. OLGNS does not promise grants or token rewards that are not funded or approved.
Planned navigation for the developer portal at olgns.org/developers.
Real activity is tracked instead of vanity metrics. Figures are published only once they can be measured and independently checked.
This developer roadmap describes OLGNS planning targets only. Programs, grants, bounties and tooling are published as planned until they are live and independently verifiable. OLGNS does not promise grants or token rewards that are not funded and approved, and eligibility, selection criteria, reward amounts and payment conditions will be published before any applications are accepted.
Reach the OLGNS team on Telegram