degen.zonedegen.zone
HomeExploreProfile
Xdegen.zone on X
+ Launch▾

Launchpads

PONSETHpump.funSOL

Chains

SolanaSOLRobinhood ChainETHBNB Smart ChainBNBBaseETHEthereumETHArcUSDC
ExploreLiquidityWatchlistProfile
  • Overview & auth
  • Fee-claim API
  • Creator stats & widget
API

Fee-claim API

Creators and bots earn fees across several rails - the V4 hook's creator cut, locked-LP fees, equity-routed fees, referral and $DEGEN vouchers. This API lets a bot discover all of them for its wallet and claim each one, without the platform ever touching a private key: you get unsigned calldata back and submit it yourself.

What it does#

Two endpoints, both requiring a SIWE JWT:

  • GET /fees/claimable - what can this wallet claim right now, across every rail.
  • POST /fees/claim-tx - the unsigned transaction (or signed voucher) to claim one rail.
Non-custodial by construction

The platform holds no user keys. Every response is calldata your wallet signs and submits, and the recipient is always the address inside your JWT - never a value from the request. A valid token can only ever move money to its own wallet.

GET /fees/claimable#

Returns every claimable position for the caller. The address query param must equal the authenticated wallet (a mismatch is a 400). Each on-chain read is isolated: one token's failed RPC read is skipped, never allowed to fail the whole response.

GET /fees/claimable?address=0xYourWallet
curl -s "https://api.degen.zone/v1/fees/claimable?address=0xYourWallet" \
  -H 'authorization: Bearer <JWT>'
200 response
{
  "address": "0xYourWallet",
  "items": [
    {
      "type": "v4-hook-creator",
      "chain": "robinhood",
      "chainId": 4663,
      "token": "0xToken…",
      "amounts": [
        { "currency": "0x0000000000000000000000000000000000000000", "raw": "1234500000000000000" }
      ],
      "source": "0xHook…"
    },
    {
      "type": "referral-vault",
      "chain": "robinhood",
      "chainId": 4663,
      "amounts": [
        { "currency": "0x0000000000000000000000000000000000000000", "raw": "5000000000000000" }
      ],
      "source": "0xVault…"
    }
  ]
}

Item shape

  • type - one of the six rails below.
  • chain / chainId - where the position lives.
  • token - the launched token this position belongs to (absent for wallet-level rails like referral / $DEGEN).
  • amounts - one or more { currency, raw } pairs. currency is 0x000…000 for native ETH, else the ERC-20 (the launch token or an elected equity/USDG). raw is the base-unit amount as a string.
  • source - the contract the claim tx targets (hook / router / vault).

The six fee rails#

typeWhat it isNeeds
v4-hook-creatorThe creator's cut skimmed by the token's V4 fee hook (per generation, per pool currency).token
v4-lpFees on a locked full-range LP position you own.token
stockEquity-routed creator fees, claimed in the elected tokenized stock.token + currency
referral-vaultYour referral earnings, paid as an EIP-712 voucher (primary chain only).—
degen-holder$DEGEN holder rewards, paid as an EIP-712 voucher.—
dbc-creatorSolana DBC creator fees. Phase 2 - returns a clear "not yet" flag, not an error.—
Caps on the voucher rails

The referral vault enforces ≤ 10 ETH per claim and ≤ 100 ETH per day. These are contract-level guards, not API throttles.

POST /fees/claim-tx#

Returns the unsigned transaction to claim one rail. Rate-limited to 5/min - each referral/holder claim mints a fresh EIP-712 voucher (an RPC read + a signature), which the global limit is too loose for.

POST /fees/claim-tx
curl -s https://api.degen.zone/v1/fees/claim-tx \
  -H 'authorization: Bearer <JWT>' \
  -H 'content-type: application/json' \
  -d '{ "type": "v4-hook-creator", "chainId": 4663, "token": "0xToken…" }'

The response is one of three shapes, tagged by kind:

kind: 'evm' — a plain transaction

response
{
  "kind": "evm",
  "to": "0xHook…",
  "data": "0x…",
  "value": "0",
  "chainId": 4663
}

Sign it with your wallet and submit it. Fields map directly onto an EVM transaction.

kind: 'evm-voucher' — a signed-authorization transaction

response
{
  "kind": "evm-voucher",
  "to": "0xVault…",
  "data": "0x…",
  "value": "0",
  "chainId": 4663,
  "amountWei": "5000000000000000",
  "nonce": "7",
  "deadline": "1735689600",
  "signature": "0x…"
}

Used by the referral-vault and degen-holder rails. The platform's signer has authorized amountWei to your wallet via the EIP-712 signature; the data already encodes it, so you still just sign + send the transaction. The extra fields are surfaced for verification/logging.

kind: 'unsupported' — nothing to do

response
{ "kind": "unsupported", "reason": "dbc-creator claims are not yet available" }

End-to-end example#

A bot claiming its Robinhood-Chain creator fees, start to finish:

claim loop (pseudocode)
// 1. authenticate (see /docs/api#auth)
const { token } = await login(wallet)

// 2. discover
const { items } = await GET('/fees/claimable?address=' + wallet.address, token)

// 3. claim each position
for (const item of items) {
  const tx = await POST('/fees/claim-tx', token, {
    type: item.type,
    chainId: item.chainId,
    token: item.token,        // when the rail needs it
    currency: item.amounts[0].currency, // for the 'stock' rail
  })
  if (tx.kind === 'unsupported') continue
  const hash = await wallet.sendTransaction(tx) // you sign + submit
  console.log(item.type, '→', hash)
}

Status#

Live - the fee-claim API is live on Robinhood Chain. The EVM rails (v4-hook-creator, v4-lp, stock, referral-vault, degen-holder) return real, signable transactions today; dbc-creator (Solana) reports itself as not-yet-available so a bot can poll it without special-casing.

On this page
  • What it does
  • GET /fees/claimable
  • The six fee rails
  • POST /fees/claim-tx
  • End-to-end example
  • Status
PreviousCoin flipNextFee-claim API

Not answered here? Write to team@degen.zone. Include the chain, the token address and the transaction hash where there is one.