APM User Documentation

This FAQ is the user-facing source of truth for how to participate in APM. It is written for people who have no prior knowledge of this platform, wallets, prediction markets, or the current testing setup.

Use this guide to understand how to create an account, fund your wallet, browse markets, buy predictions, track positions, claim eligible winnings or refunds, and ask support for help.

1. What APM Is

APM, Asian Prediction Market, is a prediction-market application where users can participate in markets by choosing between two possible outcomes.

In a simple market, a question has two sides:

  • Yes
  • No

Example:

  • Question: Will Bitcoin close above a certain price by a certain date?
  • You may buy Yes if you think the outcome will happen.
  • You may buy No if you think the outcome will not happen.

APM is not a bank, broker, exchange, investment adviser, legal adviser, tax adviser, or guaranteed-profit platform. Users are responsible for understanding the market, the rules, the token they use, and the risk of losing their prediction amount.

2. Production Network and Supported Token

APM runs on Polygon mainnet for production use.

The supported production token is Polygon USDT as shown inside the app. Use only the network and token displayed by APM when depositing, buying predictions, claiming, refunding, or withdrawing.

Sending unsupported tokens or using the wrong network may result in funds not appearing in the app.

3. Basic User Journey

The normal user journey is:

1. Sign in with an APM in-app wallet. 2. Add the supported token to the wallet. 3. Browse available markets. 4. Open a market detail page. 5. Choose Yes or No. 6. Enter the prediction amount. 7. Confirm the wallet transaction. 8. Wait for the app to sync the transaction. 9. Track the position in Dashboard. 10. Wait for the market to end and be resolved. 11. Claim winnings or refunds if eligible. 12. Withdraw supported funds to an external wallet when withdrawal is available for the active network.

4. Account Creation and Login

Users sign in through the APM in-app wallet flow powered by Thirdweb.

The app may support login methods such as:

  • email;
  • Google;
  • Apple;
  • Facebook;
  • passkey.

Phone login is intentionally disabled.

After login, APM creates or restores an app session for the active wallet. The app session is what allows private pages such as Dashboard, Profile, and support chat to recognize the signed-in user.

If the wallet is connected but the app still looks logged out, refresh the page once. If it still does not work, open the wallet menu and sign in again.

5. Wallet Address Basics

Your APM account is tied to the active Thirdweb wallet address used by the app session.

On production, the active wallet may be a smart-account address rather than a traditional externally owned wallet address. This is normal for the current gas-sponsored testing setup.

Use the wallet address shown inside the app when asking support about:

  • deposits;
  • predictions;
  • claims;
  • refunds;
  • withdrawals;
  • transaction sync issues.

Never share your seed phrase, private key, password, one-time code, API key, or recovery phrase with support or the chatbot.

6. Supported Tokens

The active supported token depends on the deployment network.

For production use:

  • network: Polygon mainnet;
  • token: Polygon USDT;
  • purpose: predictions, claims, refunds, and withdrawals inside APM.

Only use the token and network shown by the app. Sending unsupported tokens or using the wrong network may result in funds not appearing in the app.

7. Deposits

Use Deposit from the desktop navbar or mobile bottom navigator to open Manage Funds, then choose Deposit.

For Polygon mainnet production testing, deposits are locked to the configured Polygon USDT token and the active APM wallet address. The Thirdweb BuyWidget is temporarily hidden while APM tests Manual Deposit Beta. The Deposit tab has two modes:

  • Wallet deposit: connects MetaMask, Trust Wallet, or Binance Wallet as the external source wallet. No source wallet is selected by default. Select one wallet first, then Show Tokens becomes available. Selecting the same wallet again turns it off, and selecting another wallet replaces the previous selection. The source amount/token fields appear only after tokens are shown.
  • Manual deposit: shows the active APM wallet address for direct Polygon USDT deposits. This address must be used only for Polygon-chain USDT deposits. Sending funds from the wrong chain can permanently lose the deposit.

Manual Deposit Beta supports only MetaMask, Trust Wallet, and Binance Wallet as source wallets, and only these source assets: Ethereum USDT / USDT / ETH, Arbitrum USDT / USDT / ETH, BNB Chain USDT / USDT / BNB, and Polygon USDT / USDT / POL. Choose and connect the external wallet first. When the wallet returns to APM, APM loads supported balances automatically, shows only tokens with a non-zero balance, and selects Polygon USDT first when available. If Polygon USDT is not available, APM selects the first supported non-zero token. After entering an amount, use the single blue action button; it changes between reconnect, get route, confirm, and continue depending on the current step. If you change to a source asset on another chain after connecting, APM keeps available balances visible and changes the main action button to reconnect the external wallet before route preparation. On mobile, return to APM after each wallet prompt; after an approval step, APM may ask you to reconnect the external wallet and get a fresh route before continuing to the bridge transaction. After a successful Manual Deposit Beta bridge, APM shows a deposited amount success stage, locks the completed deposit, and clears the previous wallet, amount, balances, and route; use Close or Start another deposit instead of repeating the same route. You can also use the Manual deposit option and send only Polygon USDT directly to the active APM wallet address. Do not use unsupported chains or tokens unless the app explicitly supports them. Any deposit to the wrong Chain will be forever lost.

If a Deposit flow gets stuck after returning from an external wallet, open Deposit diagnostics in the Deposit modal and tap Copy to copy the full diagnostic history. Also save any wallet transaction hash; if the external wallet shows no transaction hash, the on-chain transaction was probably not submitted. If APM says Binance Wallet or another external wallet did not return a transaction hash, check the wallet history first. This points to the external wallet or WalletConnect not completing the handoff back to APM. When there is no transaction hash, reconnect the external wallet and get a fresh route. If Binance Wallet repeatedly fails at the final bridge handoff, try MetaMask or Trust Wallet with the same source asset and account if available, or use direct Polygon transfer and send only Polygon USDT to the active APM wallet address.

Before depositing, check:

  • the wallet address is your active APM wallet;
  • the network is Polygon when using Manual deposit;
  • the token is correct;
  • the amount is correct;
  • you are not sending from an unsupported chain.

If a deposit transaction succeeds on-chain but does not appear in the app, keep the transaction hash and ask support to review it.

8. Withdrawals

Use Deposit from the desktop navbar or mobile bottom navigator to open Manage Funds, then choose Withdraw. Withdrawals are intended to move supported funds from the APM wallet to an external wallet.

For Polygon mainnet production testing, the Withdraw tab has two modes:

  • Manual withdrawal: sends Polygon USDT directly from the APM in-app wallet to a manually entered Polygon wallet address. Use this only for a Polygon-chain destination address. Sending to the wrong chain can permanently lose the withdrawal.
  • Wallet withdrawal: connects MetaMask, Trust Wallet, or Binance Wallet to prefill the destination address. No external wallet is selected by default. Select one wallet first; selecting the same wallet again turns it off, and selecting another wallet replaces the previous selection. The Which chain? section appears only after an external wallet is selected and resets when the wallet is deselected or the user leaves the tab. Select one destination chain only. Connect destination wallet is available only after one external wallet and one chain are selected. The external wallet is used only as the receiving address. The APM in-app wallet sends the withdrawal. Users can choose Polygon, Ethereum, Arbitrum, or BNB Chain USDT. Polygon uses a direct transfer; other chains use a bridge route when available.

Withdrawal behavior depends on the active production routes shown inside the app.

Before withdrawing, check:

  • the destination wallet address is correct;
  • the destination network is correct;
  • the destination token is supported;
  • the amount is correct;
  • you understand that blockchain transfers usually cannot be reversed.
  • Any deposit or withdrawal to the wrong chain may be permanently lost.

The chatbot cannot withdraw for you. If withdrawal fails, save the transaction hash or error message and ask support whether to review it.

9. Browsing Markets

The public app lets users browse markets from pages such as Home, Browse, and market detail pages.

Markets may be organized by categories and taxonomy paths such as topic, sector, or subtopic.

On desktop, the navbar search can show matching markets while you type. Results may match market titles, market links, categories, answer labels, or description text. Selecting a result opens that market's detail page directly. Pressing Enter or submitting the search opens Browse with the search term applied.

On mobile, use the bottom navigator Search item or the search field on Browse/Home to search available markets.

Market cards may show:

  • market title;
  • image;
  • Yes/No buttons;
  • market volume;
  • probability or current market display values;
  • favourite controls;
  • market status.

Public pages should load without requiring login. Wallet and private user information should load separately after the public page is visible.

10. Single-Answer Markets

A single-answer market is one binary question with Yes and No sides.

Example:

  • Will a specific event happen by a specific deadline?
  • Yes means you think it will happen.
  • No means you think it will not happen.

When buying a prediction, choose the side that matches your view.

11. Multi-Answer Market Groups

A multi-answer market group displays several possible answers under one topic.

Each answer is still handled as its own binary Yes/No child market.

Example:

  • Topic: Which team will win?
  • Child answer: Team A
  • Child answer: Team B
  • Child answer: Team C

Buying Yes on Team A means you are buying the binary market for Team A. Buying No on Team A means you are buying against that specific Team A outcome. It does not automatically buy every other answer.

For multi-answer markets, always check that the selected answer label is correct before confirming the transaction.

12. Buying a Prediction

To buy a prediction:

1. Open the market. 2. Select the answer or side. 3. Enter the amount. 4. Click the buy button. 5. Review the confirmation screen showing the market title, selected answer, Yes/No side, and amount. 6. Click Confirm or Confirm Buy Shares when the app asks you to confirm the buy. 7. Confirm any wallet prompt shown by the app wallet. 8. Wait for the screen to finish processing and finalizing. 9. Wait for the app to verify and sync the transaction.

The app should write the position only after the server verifies the transaction receipt and the expected on-chain purchase event.

If the wallet transaction is rejected, no prediction is bought.

If the chain transaction succeeds but the app does not show the position, keep the transaction hash and ask support to review it.

If the screen keeps loading for a long time after clicking Yes/No and entering an amount, wait briefly without closing or refreshing the page. The app may still be preparing the buy, waiting for wallet confirmation, waiting for chain confirmation, or finalizing the app record. If it stays stuck, if the wallet shows a successful transaction but the Dashboard does not update, or if you cannot find a transaction result, ask support and include the market, side, amount, wallet address, and transaction hash if available.

13. Prediction Amounts and Limits

Markets may enforce minimum and maximum prediction amounts.

The current contract expects 6-decimal supported tokens such as USDT or USDT-style tokens.

If an amount is rejected, common causes include:

  • amount is below the minimum;
  • amount is above the maximum;
  • wallet has insufficient token balance;
  • market is closed;
  • market is already resolved;
  • unsupported network or token is active.

14. Buy Screen Loading States

When buying a prediction, the app may show loading states such as processing, preparing the buy, buying, or finalizing.

From the user's point of view, these are part of the buy flow. The user should follow the visible app prompts and wallet prompts, then wait for the buy to finish.

If the screen keeps loading for too long, do not keep clicking repeatedly. Wait briefly, then check:

  • whether the wallet shows a transaction prompt waiting for confirmation;
  • whether the wallet shows a transaction hash;
  • whether the Dashboard position or Activity updated after the transaction;
  • whether the market is still open.

If the buy still does not complete, ask support and include the market, selected answer, Yes/No side, amount, and transaction hash if available.

15. Market Closing Time

Each market has an end time.

Before the end time:

  • users may buy predictions if the market is open and unresolved.

After the end time:

  • buying should be blocked;
  • the market waits for resolution;
  • users cannot claim until the market is resolved or cancelled.

Markets use an exact closing time. The app should display user-friendly dates and times, but the blockchain closing time is the rule.

16. Market Resolution

After a market ends, it can be resolved to one of the supported outcomes.

Possible outcomes are:

  • Yes wins;
  • No wins;
  • cancelled.

If the market is cancelled, eligible users should be able to claim a refund of their prediction amount for that market.

The chatbot cannot resolve markets and cannot change outcomes.

17. Winnings

If your selected side wins, you may be eligible to claim:

  • your original winning-side amount;
  • plus a pro-rata share of the losing-side pool after platform fees.

If your selected side loses, you normally do not receive a payout for that position.

If the market is cancelled, the flow is refund-based rather than winner-payout-based.

The general winning payout formula is:

payout = winning-side amount + ((winning-side amount x (losing-side pool - platform fee)) / total winning-side pool)

Your profit before any network, wallet, or third-party fees is:

profit = payout - winning-side amount

Example: if Yes wins, the total Yes pool is 300 USDT, the total No pool is 200 USDT, and the platform fee is 5%, the platform fee is 10 USDT from the losing No pool. The remaining losing-side pool is 190 USDT. If you staked 30 USDT on Yes, your payout is 30 + ((30 x 190) / 300) = 49 USDT. Your profit before any network, wallet, or third-party fees is 19 USDT.

The exact payout is determined by the smart contract and verified claim transaction, not by the chatbot.

18. Platform Fee

For non-cancelled resolved markets, a platform fee is taken from the losing side only.

Cancelled markets should not charge the platform fee.

The chatbot can explain the general fee concept, payout formula, and example calculations. It cannot guarantee a final payout for a specific wallet unless the approved app records already show the result.

19. Claiming Winnings or Refunds

To claim:

1. Open Dashboard. 2. Find the claimable position. 3. Click the claim or refund action shown by the app. 4. Confirm the wallet transaction. 5. Wait for the app to verify and sync the claim or refund. 6. Check Dashboard Activity for the recorded claim or refund.

You can claim only when:

  • the market is resolved or cancelled;
  • your position is eligible;
  • you have not already claimed;
  • the claim period has not expired;
  • the app and contract both allow the claim.

If the claim transaction succeeds on-chain but the dashboard does not update, keep the transaction hash and ask support to review it.

20. Claim Period

The current contract includes a claim period after resolution.

Users should claim winnings or refunds promptly after a market is resolved. Waiting too long may make funds unavailable through the normal claim flow.

If you think you missed a claim window, ask support. The chatbot cannot reopen an expired claim.

21. Dashboard

Dashboard is the private user area for account-specific records.

Dashboard may show:

  • active positions;
  • claimable positions;
  • closed positions;
  • activity history;
  • favourites;
  • profit/loss style summaries;
  • total prediction amounts.

Dashboard records come from verified app database records. The smart contract remains the source of truth for on-chain token transfers and claim eligibility.

22. Activity History

Activity history shows user actions recorded by the app, such as:

  • buys;
  • claims;
  • refunds.

Each activity row shows the market title first. The next row shows the action, the Yes/No side, the selected answer label when applicable, and the amount.

If an activity row has a transaction hash, use that hash when asking support about the transaction.

If a transaction happened on-chain but is missing from Activity, ask support to review it.

23. Favourites

Favourites are a user convenience feature for saving markets you want to revisit.

Favouriting a market does not buy a prediction, reserve a price, or change your payout.

24. Profile

Profile lets users manage user-facing identity details such as username or avatar when available.

Do not put private keys, seed phrases, passwords, API keys, or personal secrets into profile fields.

25. Transaction Hashes

A transaction hash is the blockchain reference for a submitted transaction.

Support may ask for a transaction hash when investigating:

  • deposits;
  • buys;
  • claims;
  • refunds;
  • withdrawals;
  • missing dashboard records.

A transaction hash is safe to share with support. It is not the same as a private key or seed phrase.

26. Pending Transactions

A pending transaction means the wallet or blockchain has not finished processing it yet, or the app is still waiting for confirmation.

Normal steps:

1. Wait a short time. 2. Refresh the page. 3. Check wallet activity. 4. Check Dashboard Activity. 5. If it remains stuck, save the transaction hash and ask support to review it.

Do not submit duplicate transactions unless you understand the effect.

27. Failed Buy

A buy can fail for several reasons:

  • rejected wallet prompt;
  • insufficient token balance;
  • buy confirmation was not completed;
  • wallet confirmation was not completed;
  • wrong network;
  • wrong token;
  • market closed;
  • market already resolved;
  • transaction reverted;
  • app sync error after a successful transaction.

If the wallet transaction failed or was rejected, no prediction was bought.

If the transaction succeeded on-chain but the app does not show the position, ask support to review the transaction hash.

28. Failed Claim or Refund

A claim or refund can fail for several reasons:

  • market is not resolved or cancelled yet;
  • position is not eligible;
  • claim was already completed;
  • claim period expired;
  • wallet rejected the transaction;
  • transaction reverted;
  • app sync failed after a successful transaction.

If the transaction succeeded on-chain but the app does not show the claim or refund, ask support to review the transaction hash.

29. Missing Funds or Wrong Balance

If funds appear missing:

1. Check that you are signed into the correct APM wallet. 2. Check that you are on the correct network. 3. Check that the token is supported. 4. Check wallet activity. 5. Check Dashboard Activity. 6. Save any transaction hash. 7. Ask support to review the account history.

The AI support agent cannot move funds, correct balances, retry sync jobs, or issue refunds. When AI-only support is enabled, it can inspect approved APM records for the signed-in user and flag real operational issues for internal admin review.

30. App Sync and Support Review

The app verifies blockchain activity before showing buys, claims, and refunds in your account records.

Some actions may take time while the app verifies blockchain activity.

If records are pending, failed, stale, missing, or inconsistent, the AI support agent should not guess. When AI-only support is enabled, it should explain the visible state and create or reuse an internal admin review task when the issue needs staff action.

31. What the Chatbot Can Do

The chatbot can:

  • explain how the platform works;
  • explain account and wallet basics;
  • explain how to browse markets;
  • explain how to buy predictions;
  • explain Dashboard records;
  • explain claim and refund flows;
  • explain common error messages;
  • check approved user-scoped support records through the trusted server route;
  • flag complex operational issues for internal admin review when AI-only support is enabled.

32. What the Chatbot Cannot Do

The chatbot cannot:

  • buy predictions for you;
  • claim winnings for you;
  • withdraw funds for you;
  • refund funds;
  • retry failed jobs;
  • change balances;
  • resolve markets;
  • change market outcomes;
  • provide financial advice;
  • provide legal advice;
  • provide tax advice;
  • provide investment advice;
  • provide regulatory advice;
  • provide passwords, private keys, seed phrases, API keys, bearer tokens, JWTs, or one-time codes.

33. When Support Should Flag Internal Review

When AI-only support is enabled, the support agent should flag an internal admin review when:

  • funds are missing;
  • a buy failed;
  • a claim or refund failed;
  • a transaction succeeded but the app does not reflect it;
  • a transaction hash has no matching support record;
  • a sync job is pending, verified but not applied, or failed;
  • records conflict with each other;
  • a market has ended but remains unresolved for the signed-in user;
  • you ask the agent to perform an action it is not allowed to perform.

The support agent may ask a clarifying question when multiple records match. If one operational issue is clear, it may tell you the issue has been flagged for admin review. It cannot promise a resolution time or perform the action itself.

Legacy human-support handoff may still appear only where the older n8n support workflow is enabled. In the AI-only support path, the user-facing chat remains with the AI support agent while internal review tasks are handled by staff separately.

34. What to Send Support

When asking support for help, provide:

  • your APM wallet address;
  • the transaction hash if available;
  • the market title;
  • the selected answer or side;
  • the amount;
  • what you expected to happen;
  • what actually happened;
  • a screenshot if helpful.

Never send:

  • seed phrase;
  • private key;
  • password;
  • one-time code;
  • API key;
  • bearer token;
  • JWT;
  • recovery phrase.

35. Common Error Meanings

Support is unavailable right now:

  • the chatbot feature may be disabled;
  • the support workflow may be temporarily unavailable;
  • the app could not safely reach the support workflow.

Message is required:

  • the chat input was empty.

Message is too long:

  • shorten the question and try again.

Sign in from your app wallet:

  • you need an active app session before using support chat.

Market trading is closed:

  • the market end time has passed or the market is no longer open for buying.

Unsupported market or token:

  • the app is not configured to use that contract, token, or network.

We could not verify this purchase yet:

  • wait briefly, refresh, and ask support with the transaction hash if the position remains missing.

36. Security Rules for Users

Never share secrets with anyone, including the chatbot.

APM support should never need:

  • private key;
  • seed phrase;
  • recovery phrase;
  • wallet password;
  • email one-time code;
  • 2FA code;
  • API key;
  • bearer token;
  • JWT.

If you accidentally paste a secret, rotate it where possible and stop using that exposed secret.

37. Practical Checklist Before Buying

Before buying a prediction, confirm:

  • you are signed into the correct APM wallet;
  • the market title is correct;
  • the selected answer is correct;
  • the Yes/No side is correct;
  • the amount is correct;
  • the network is correct;
  • the token is supported;
  • the market is still open;
  • you understand you can lose the prediction amount.

38. Practical Checklist Before Claiming

Before claiming, confirm:

  • the market is resolved or cancelled;
  • the Dashboard shows the position as claimable;
  • the wallet prompt is for the expected action;
  • you are using the correct APM wallet;
  • you wait for the app to sync after transaction confirmation.

39. Practical Checklist Before Withdrawing

Before withdrawing, confirm:

  • destination wallet address is correct;
  • for Manual withdrawal, destination chain is Polygon only;
  • for Wallet withdrawal, the connected external wallet address and selected destination chain are correct;
  • token is supported;
  • amount is correct;
  • you understand blockchain transfers usually cannot be reversed.
  • sending a Manual withdrawal to a non-Polygon destination may permanently lose the funds.