build on royaltiz.
Everything a protocol needs to plug into Royaltiz: a public REST API, the pons v2 contracts we launch through on Robinhood Chain, and the social-account fee routing that powers creator rewards.
overview
Royaltiz launches fixed-supply tokens through the pons v2 protocol on Robinhood Chain. Every launch starts on a bonding curve and graduates into a Uniswap v4 pool with permanently locked liquidity once the curve sells out.
The twist: at launch, the creator fee recipient can be any X, GitHub or Twitch account. Royaltiz resolves the account to a wallet (creating an embedded wallet via Privy when needed), passes it as creatorFeeRecipient on-chain, and the account owner claims the accrued fees on pons after logging in with the same social account.
Everything is non-custodial: users' wallets submit every transaction, Royaltiz holds no funds and charges no platform fee.
network & contracts
| Chain | Robinhood Chain (EVM, Arbitrum-based L2) |
| Chain ID | 4663 |
| RPC | https://rpc.mainnet.chain.robinhood.com |
| Explorer | https://robinhoodchain.blockscout.com |
| Gas token | ETH |
pons v2 deployed addresses (resolve each launch's curve and token from the factory):
| Launch factory | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e |
| Launch & buy router | 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948 |
| Fee escrow | 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e |
| Meme hook (Uniswap v4) | 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044 |
| Buyback vault | 0x42df2a798f82289E177311362e8f5ccC45c1219c |
| Launch locker | 0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952 |
rest api
Base URL: https://royaltiz.app. All endpoints are read-oriented, require no authentication, return JSON, and send Access-Control-Allow-Origin: * so they can be called from any frontend. Please cache responses on your side where you can.
/api/v1/tokensLists every token launched through Royaltiz, newest first.
curl https://royaltiz.app/api/v1/tokens
{
"tokens": [
{
"mint": "0x1234...abcd", // token address on Robinhood Chain
"name": "Example",
"symbol": "EXMPL",
"imageUri": "https://gateway.pinata.cloud/ipfs/...",
"createdAt": 1788100000000,
"creator": { "wallet": "0x...", "username": "royaltizrh", "type": "x" }
}
]
}/api/v1/tokens/{address}Full detail for one token: metadata, beneficiaries, and live on-chain market data read from its pons bonding curve.
curl https://royaltiz.app/api/v1/tokens/0x1234...abcd
{
"mint": "0x1234...abcd",
"name": "Example",
"symbol": "EXMPL",
"beneficiaries": [
{ "type": "x", "value": "someuser", "walletAddress": "0x...", "percentage": 100 }
],
"priceEth": 0.0000000042, // marginal price on the curve
"priceUsd": 0.0000189,
"usdMarketCap": 18900,
"supply": 1000000000,
"phase": 0, // 0 curve · 1 swept · 2 Uniswap v4 · 3 rescued
"graduated": false,
"graduationProgress": 37.5, // % of the graduation threshold raised
"curve": "0x..." // bonding curve to trade against
}/api/v1/socials/resolve?platform={x|github|twitch}&username={handle}Resolves a social account to its Robinhood Chain wallet — the same resolution Royaltiz uses at launch. If the account has never been seen before, an embedded wallet is created for it (secured by Privy, claimable by the account owner via OAuth login). Use it to route fees, airdrops or payouts to any social account from your own protocol.
curl "https://royaltiz.app/api/v1/socials/resolve?platform=x&username=royaltizrh"
{
"verified": true,
"username": "RoyaltizRH",
"userId": "2094063734041743360", // platform-native user id
"platform": "x",
"wallet": "0x9b6a...f335", // their wallet on Robinhood Chain
"walletCreated": true
}on-chain integration
Royaltiz tokens are plain ERC-20s launched by the pons v2 factory — no Royaltiz-specific contract sits in the trust path. Index the factory, read each launch's record, and trade against its curve (pre-graduation) or its Uniswap v4 pool (post-graduation).
import { parseAbi } from "viem";
const FACTORY = "0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e";
const factoryAbi = parseAbi([
"struct LaunchedToken { address token; address curve; address deployer; address creatorFeeRecipient; address pairToken; uint256 graduationThreshold; uint24 poolFee; int24 tickSpacing; uint16 creatorTaxBps; bool buybackEnabled; uint8 phase; uint256 sweptQuote; uint256 sweptTokens; uint256 sweptAt; bool exists; }",
"function getLaunchedToken(address token) view returns (LaunchedToken)",
"event TokenLaunched(address indexed token, address indexed curve, address indexed deployer, address pairToken, uint256 launchConfigId, uint256 graduationThreshold)",
]);
const curveAbi = parseAbi([
"function buy(uint256 quoteIn, uint256 minTokensOut, address recipient) payable returns (uint256 tokensOut)",
"function sell(uint256 tokensIn, uint256 minQuoteOut, address recipient) returns (uint256 quoteOut)",
"function getReserves() view returns (uint256 quoteReserve, uint256 tokenReserve)",
]);
// launch.phase: 0 = trade on launch.curve · 2 = trade on the Uniswap v4 pool
const launch = await client.readContract({
address: FACTORY,
abi: factoryAbi,
functionName: "getLaunchedToken",
args: [token],
});Full protocol reference (quoting, snipe protection, graduation, fee claiming): pons v2 docs.
fee model
| Royaltiz platform fee | 0% |
| pons base fee | 1% per trade |
| Creator tax | 0–10%, chosen at launch, immutable |
The creator tax is charged on every trade — on the curve and in the pool — and accrues in full to the creatorFeeRecipient: the wallet of the tagged X, GitHub or Twitch account. Balances accumulate in the pons fee escrow and are withdrawn by the recipient at any time. Rates are fixed at launch and can never be raised afterwards.
Building an integration? Reach out on @RoyaltizRH — we're happy to help, add endpoints, or list your protocol.