Skip to main content

Submit your Mini App

CrackPay's team decides which Mini Apps every user can open. You submit a listing; the team reviews it, records your app's URL and the contracts it may call, and switches it on.

What a listing enforces from then on:

  • Your URL. Your app's page in CrackPay can show that site and no other.
  • Your contracts. Your app can send transactions to those and nothing else.
  • Your token allowances. Which tokens your app may ask users to approve, and only towards one of your own contracts.

:::tip Let your assistant write it The list-crackpay-miniapp skill checks your project and writes the listing file for you. :::

Submission form​

www.crackpay.xyz/developers/submit

Paste your listing file and an email address the team can reply to. The form checks the file and tells you which field is wrong.

The listing file​

crackpay-listing.json
{
"name": "KashLink",
"tagline": "Send USDC or EURC as a link.",
"publisher": "Cracked Studios",
"category": "finance",
"url": "https://arc.kashlink.live/",
"icon": "https://arc.kashlink.live/icon-512.png",
"supportUrl": "https://t.me/your-support",
"termsUrl": "https://arc.kashlink.live/terms",
"privacyUrl": "https://arc.kashlink.live/privacy",
"network": "arc-mainnet",
"contracts": [
{
"address": "0x4d6c05Fe69ECCB3fDd882D4e915d77ff29159C62",
"name": "KashLinkEscrow",
"purpose": "Holds the funds for each link until it is claimed or refunded.",
"explorerUrl": "https://explorer.arc.io/address/0x4d6c05Fe69ECCB3fDd882D4e915d77ff29159C62",
"sampleTransactions": []
}
],
"tokenApprovals": ["EURC"],
"origins": ["https://arc.kashlink.live"]
}
FieldRule
name2 to 40 characters
taglineUp to 160 characters, one or two sentences
publisherYou or your organisation, up to 80 characters
categoryfinance, shopping, utility, games, social, rewards, education or entertainment
urlhttps://. Where your app loads from. One per listing.
iconhttps://. Square PNG, 512 × 512.
supportUrlhttps:// or mailto:
termsUrl, privacyUrlhttps://
networkarc-testnet or arc-mainnet. One listing per network.
contractsEvery contract your app sends transactions to, up to 20. Each needs address, name, purpose, explorerUrl; sampleTransactions is a list of explorer links.
tokenApprovalsUSDC and/or EURC, if your contracts need an allowance. Leave empty if you only take native USDC.
originsEvery origin your app loads scripts, styles or data from

Requirements​

Technical​

  • ✅ Connects on load: no connect button, no sign-in signature
  • ✅ Served over HTTPS and allows framing by CrackPay
  • ✅ Works at 360 × 640, single column
  • ✅ Handles cancelled, refused and failed transactions with clear messages
  • ✅ Uses USDC decimals correctly
  • ✅ A PageSpeed Insights result for your URL

Contracts​

  • ✅ Source verified on the Arc explorer for its network (mainnet, testnet)
  • ✅ A sample transaction for each function users can trigger
  • ✅ Accepts smart-account callers (no tx.origin or "no code" checks)
  • ✅ Token calls are only approve of your own listed contracts

Ownership and support​

  • ✅ Your name and logo are clear; it is obvious the app is yours, not CrackPay's
  • ✅ Terms of Service, Privacy Policy and support are linked inside the app
  • ✅ You fix critical issues within 24 hours

Dependencies​

  • ✅ Exact versions pinned and lockfile committed
  • ✅ No package version installed within 7 days of its release

What happens after submission​

  1. Review. The team checks your listing against these requirements.
  2. Testing. The team runs your app in CrackPay.
  3. Feedback, if anything needs changing.
  4. Listing. Your app appears on CrackPay's Apps page.

After you are listed​

  • Changing your URL or adding a contract needs a new review. Until it is approved, calls to a new contract are refused.
  • CrackPay can switch a listing off at any time, for example if a contract proves unsafe. It takes effect immediately.

Common rejection reasons​

  • A connect button, or a signature request on load
  • A contract missing from the listing, or not verified
  • Tokens transferred directly instead of through your own contract
  • Amounts wrong by 10¹²
  • The server refuses to be framed
  • Unusable at phone width