Overview
Use the API to power Telegram and Discord bots, trading terminals, screeners and analytics. Data is indexed from the Dividr launchpads on every supported network, usually within seconds of a block.
Base URL & limits
https://www.dividr.fun/api/v1- Responses are cached at the edge for about 5 seconds.
- Please keep polling to one request per second per endpoint. Heavy users should cache on their side.
- All addresses are returned lowercase. Timestamps are ISO 8601 (UTC).
Chain keys
| Network | Key | Chain ID | Native |
|---|---|---|---|
| Robinhood Chain | robinhood | 4663 | ETH |
| Base | base | 8453 | ETH |
| BNB Chain | bnb | 56 | BNB |
| Arbitrum One | arbitrum | 42161 | ETH |
| Ethereum | ethereum | 1 | ETH |
List tokens
| Query | Type | Description |
|---|---|---|
chain | string | Optional chain key. Omit for all networks. |
sort | string | new (default) · trending · volume · rewards |
limit | number | 1–200, default 50 |
since | ISO date | Only tokens created after this time — ideal for new-launch alerts |
curl "https://www.dividr.fun/api/v1/tokens?chain=base&sort=trending&limit=10"{
"tokens": [
{
"chain": "base",
"chain_id": 8453,
"address": "0x…",
"name": "Example",
"symbol": "EXM",
"image": "https://…",
"creator": "0x…",
"creator_tax_bps": 500,
"holder_share_bps": 5000,
"real_eth": 1.82,
"target_eth": 4.2,
"ascended": false,
"last_price_eth": 0.0000000041,
"volume_eth": 12.4,
"holder_rewards_eth": 0.31,
"trade_count": 214,
"created_at": "2026-11-01T09:12:44Z",
"last_trade_at": "2026-11-01T10:03:10Z"
}
]
}Get a token
Returns the full token record, the top 20 holders and the latest 50 trades.
const res = await fetch("https://www.dividr.fun/api/v1/tokens/robinhood/0xTOKEN");
const { token, holders, trades } = await res.json();
console.log(token.symbol, token.real_eth / token.target_eth); // progress to AscendList trades
| Query | Type | Description |
|---|---|---|
chain | string | Optional chain key |
token | address | Optional token address. Omit for trades across all tokens. |
limit | number | 1–500, default 100 |
import requests
trades = requests.get("https://www.dividr.fun/api/v1/trades", params={"chain": "bnb", "limit": 20}).json()["trades"]
for t in trades:
print("BUY " if t["is_buy"] else "SELL", t["eth_amount"], t["token"])Objects
Token
| Field | Description |
|---|---|
creator_tax_bps | Creator tax in basis points (500 = 5%) |
holder_share_bps | Share of the creator tax paid to holders (5000 = 50%) |
real_eth / target_eth | Native coin raised on the curve and the Ascend target |
ascended | true once the token trades in its Uniswap v4 pool |
last_price_eth | Price of one token in the native coin |
holder_rewards_eth | Total paid to holders so far |
Trade
| Field | Description |
|---|---|
is_buy | true for buys, false for sells |
eth_amount / token_amount | Size of the trade |
on_curve | false if the trade went through the Uniswap pool |
ts | Block timestamp |
Errors
| Status | Meaning |
|---|---|
| 400 | Unknown chain key or bad parameter |
| 404 | Token not found on that chain |
| 500 | Temporary server error — retry with backoff |
Launchpad addresses
Trading from code
Bots can trade directly against the launchpad. Use the quote functions first, apply your slippage, and always pass a maxTaxBps so a tax change can't surprise your users. After Ascend, call the …Ascended variants.
function quoteBuy(address token, uint256 ethIn) view returns (uint256 tokensOut, uint256 ethUsed, uint256 fee);
function quoteSell(address token, uint256 tokensIn) view returns (uint256 ethOut, uint256 fee);
function buy(address token, uint256 minTokensOut, uint256 maxTaxBps, address referrer) payable returns (uint256);
function sell(address token, uint256 tokensIn, uint256 minEthOut, uint256 maxTaxBps, address referrer) returns (uint256);
function buyAscended(address token, uint256 minTokensOut, uint256 maxTaxBps, address referrer) payable returns (uint256);
function sellAscended(address token, uint256 tokensIn, uint256 minEthOut, uint256 maxTaxBps, address referrer) returns (uint256);
function claimRewards(address[] tokens) returns (uint256);import { parseAbi, parseEther } from "viem";
const abi = parseAbi([
"function quoteBuy(address,uint256) view returns (uint256,uint256,uint256)",
"function buy(address,uint256,uint256,address) payable returns (uint256)",
]);
const [out] = await client.readContract({ address: LAUNCHPAD, abi, functionName: "quoteBuy", args: [TOKEN, parseEther("0.05")] });
await wallet.writeContract({
address: LAUNCHPAD, abi, functionName: "buy",
args: [TOKEN, (out * 97n) / 100n, 1100n, YOUR_REFERRER_WALLET], // 3% slippage, accept up to 11% total tax
value: parseEther("0.05"),
});referrer and you earn 20% of the platform fee on every trade your bot routes — withdrawable from Rewards → Referrals.Selling requires an ERC-20 approve of the launchpad first.
Events
event TokenCreated(address indexed token, address indexed creator, string name, string symbol, string image, string info,
uint16 creatorTaxBps, uint16 holderShareBps, uint256 targetEth);
event Trade(address indexed token, address indexed trader, bool isBuy, uint256 ethAmount, uint256 tokenAmount,
uint256 platformFee, uint256 creatorFee, uint256 holderFee, uint256 ethReserve, uint256 tokenReserve, bool onCurve);
event Ascended(address indexed token, bytes32 poolId, uint256 ethLiquidity, uint256 tokenLiquidity, uint256 ascendFee);Subscribe to these on each launchpad for real-time alerts without polling the API.