In short
Every MiniApp binds to one healthy bot. Create with BotFather /newapp; manage with /myapps. Direct link shape: https://mp.net/{botUsername}/{shortName}, optional ?startapp=.
Overview
Registration lives in BotFather. Opening from messages still uses inline / menu web_app rules on core.mp.net/bots.
Prerequisite
You need a bot in a normal (active) state first.
Each MiniApp is owned by exactly one bot.
/newapp steps
Choose the bot.
Enter the title and description.
Upload an icon that meets the requirements shown by BotFather.
URL — must be HTTPS.
shortName is case-sensitive and unique under that bot. Use 3–30 ASCII letters, digits, or underscores.
Direct link after create
You get https://mp.net/{botUsername}/{shortName}. Deep-link into a screen with ?startapp=report_0528 (value flows to signed initData.start_param / frontend startParam). Do not bake startapp into the MiniApp entryUrl itself; put it on the direct link or button web_app.url.
https://mp.net/MyBot/shop
https://mp.net/MyBot/shop?startapp=report_0528
/myapps management
Edit title, description, link image, and URL.
Delete requires a second confirmation (same seriousness as deleting a bot).
Navigate back to the list when done.
After remove / take-down
Existing direct links and buttons follow the user-facing “MiniApp removed” experience (no productive actions; close only). Update or stop sending those URLs from your bot.
Client return still closed
web_app_data / sendData / answerWebAppQuery remain unavailable. Prefer message callbacks or server-side edits after the user finishes in the MiniApp.
Verify the entry point
After creating the app, test its direct link and the message button in private chat. For group sharing, follow the single-button request in the MiniApp opening guide.
