Mobil3 Hackathon Guide
Build mobile-first crypto applications for Latin America using 0x APIs
Event Overview
Mobil3 Hackathon - Building the Mobile Future of Web3 in Latin America
- Dates: August 20–24, 2025
- Location: Mexico City, Mexico
- Venue: Publi.co Reforma
- Focus: Mobile-first crypto solutions for real-world challenges
- Blockchain: Monad
Prizes: $90,000 USD in total cash prizes + 1-week fully sponsored Monad Builder Residency in NYC
Apply: https://mobil3.xyz/
0x Bounty: $4,000 USD
- Challenge: Build mobile-first crypto applications for Latin America using 0x Swap API, Gasless API, or both.
- Winners: Up to 4 teams
- Tracks: Choose Track 1: Payments, Track 2: Consumer Fintech, or both
Track 1: Payments
Faster, cheaper, borderless payments
Use cases:
- Remittance apps with instant crypto-to-stablecoin swaps
- Cross-border mobile wallets for local currency ↔ USD stablecoin conversion
- Gasless payment flows (no native token required)
Track 2: Consumer Fintech
Accessible financial tools for the unbanked/underbanked
Use cases:
- Savings apps with stablecoin/asset diversification
- AI-powered swap recommendations and execution
- Gasless Web3 onboarding (no wallet funding needed)
- Mobile investment platforms with portfolio swaps
Requirements
- Integrate Swap API or Gasless API (or both) into a mobile-first app targeting one/both tracks
- Integration must execute a transaction (not just fetch quotes/prices)
- Gasless API submissions must show at least one end-to-end gasless flow
- Optimize for mobile UX in Latin America: low bandwidth, varying device capabilities, need for stablecoins
Judging Criteria
- Technical Excellence – Clean, complete, robust API integration
- Mobile Optimization – Smooth UX on mobile devices; handles constraints like slow networks and low storage.
- Relevance & Impact – Clear value to Latin American users in Payments or Consumer Fintech.
- Adoption Potential – Demonstrates market fit and scalability.
- Presentation – A clear, compelling demo showing the app in a real-world use case.
What is 0x?
0x offers professional-grade APIs that aggregate and enable swaps at the best price on 9+ million tokens across 130+ DEXes on your favorite EVM-compatible chains.
- Swap API → Easily embed swaps with best-execution pricing.
- Gasless API → Simplify DeFi with end-to-end gasless transactions.
Trusted by: Base App (formerly Coinbase Wallet), Matcha, Phantom, DefiLlama, Robinhood Wallet, Definitive, TrustWallet, deBridge, Socket, Li.Fi, MetaMask, Rainbow, Interface, Burner, and many more.
Test the API
curl --request GET \
--url "https://api.0x.org/swap/permit2/quote?sellAmount=100000000000000000000&chainId=10143&sellToken=0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701&buyToken=0xfBC2D240A5eD44231AcA3A9e9066bc4b33f01149&taker=0xb2d64FA9A19eD9b653b70ae648AA70D1e9547e06" \
--header "0x-api-key: API_KEY" \
--header "0x-version: v2"
You will receive a response that looks like this (see API Reference for details):
Expand to see response
{
"blockNumber": "4207992",
"buyAmount": "34084",
"buyToken": "0xfbc2d240a5ed44231aca3a9e9066bc4b33f01149",
"fees": {
"integratorFee": null,
"zeroExFee": {
"amount": "51",
"token": "0xfbc2d240a5ed44231aca3a9e9066bc4b33f01149",
"type": "volume"
},
"gasFee": null
},
"issues": {
"allowance": {
"actual": "0",
"spender": "0x000000000022d473030f116ddee9f6b43ac78ba3"
},
"balance": null,
"simulationIncomplete": false,
"invalidSourcesPassed": []
},
"liquidityAvailable": true,
"minBuyAmount": "33744",
"permit2": {
"type": "Permit2",
"hash": "0x150733c60db8fdd8b0a069202a468461f0f2c8b2ea1c3841fe7de7140246b3b1",
"eip712": {
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"PermitTransferFrom": [
{
"name": "permitted",
"type": "TokenPermissions"
},
{
"name": "spender",
"type": "address"
},
{
"name": "nonce",
"type": "uint256"
},
{
"name": "deadline",
"type": "uint256"
}
],
"TokenPermissions": [
{
"name": "token",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
}
]
},
"domain": {
"name": "Permit2",
"chainId": 10143,
"verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3"
},
"message": {
"permitted": {
"token": "0x760afe86e5de5fa0ee542fc7b7b713e1c5425701",
"amount": "100000000000000000000"
},
"spender": "0x07f37e56bc55b7f927807171647c2eee95c78f31",
"nonce": "2241959297937691820908574931991589",
"deadline": "1740090601"
},
"primaryType": "PermitTransferFrom"
}
},
"route": {
"fills": [
{
"from": "0x760afe86e5de5fa0ee542fc7b7b713e1c5425701",
"to": "0xfbc2d240a5ed44231aca3a9e9066bc4b33f01149",
"source": "Uniswap_V2",
"proportionBps": "10000"
}
],
"tokens": [
{
"address": "0x760afe86e5de5fa0ee542fc7b7b713e1c5425701",
"symbol": "WMON"
},
{
"address": "0xfbc2d240a5ed44231aca3a9e9066bc4b33f01149",
"symbol": "USDT"
}
]
},
"sellAmount": "100000000000000000000",
"sellToken": "0x760afe86e5de5fa0ee542fc7b7b713e1c5425701",
"tokenMetadata": {
"buyToken": {
"buyTaxBps": "0",
"sellTaxBps": "0"
},
"sellToken": {
"buyTaxBps": "0",
"sellTaxBps": "0"
}
},
"totalNetworkFee": "14851462500000000",
"transaction": {
"to": "0x07f37e56bc55b7f927807171647c2eee95c78f31",
"data": "0x1fff991f000000000000000000000000b2d64fa9a19ed9b653b70ae648aa70d1e9547e06000000000000000000000000fbc2d240a5ed44231aca3a9e9066bc4b33f0114900000000000000000000000000000000000000000000000000000000000083d000000000000000000000000000000000000000000000000000000000000000a0a0816374f4eca88cea608f3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000c4103b48be00000000000000000000000007f37e56bc55b7f927807171647c2eee95c78f31000000000000000000000000760afe86e5de5fa0ee542fc7b7b713e1c5425701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035b74531e11bdf8f8dbdce2bfccee186ca55c6d80000000000000000000000000000000000000000000000000000000000001e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012438c9c147000000000000000000000000fbc2d240a5ed44231aca3a9e9066bc4b33f01149000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000fbc2d240a5ed44231aca3a9e9066bc4b33f01149000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ad01c20d5886137e056775af56915de824c8fce500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffc1fb425e00000000000000000000000035b74531e11bdf8f8dbdce2bfccee186ca55c6d8000000000000000000000000760afe86e5de5fa0ee542fc7b7b713e1c54257010000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000006e898131631616b1779bad70bc250000000000000000000000000000000000000000000000000000000067b7ace900000000000000000000000000000000000000000000000000000000000000c0",
"gas": "264026",
"gasPrice": "56250000000",
"value": "0"
},
"zid": "0xa0816374f4eca88cea608f3c"
}
Resources
Swap API
Gasless API
Gasless + Swap Fallback
FAQs
Below are some commonly asked questions at hackathons. For a full list of 0x FAQs, see here.
What is the chain ID for Monad Testnet?
Monad Testnet's chain ID is 10143. See all our supported chains.
What's the Monad Testnet Explorer?
What tokens can I use for testing on Monad Testnet?
Try one of the top tokens listed here: https://testnet.monadexplorer.com/tokens
Note the following:
- Testnet liquidity is more limited than on mainnet
- Liquidity sources are also different between mainnets and testnets
- Not all pairs on mainnet are deployed on testnet, so the token pair availability is more limited
- Be aware that token you want to use for testing must have liquidity on at least one of the liquidity /sources; otherwise, you will receive an error.
Which other chains does 0x support?
See here for a list of all our supported chains.
Help, my 0x transaction reverted! How can I troubleshoot?
If your 0x quote is reverting, besides the standard revert issues related to ETH transactions, we recommend checking the following are set correctly:
- Are allowances properly set for the user to trade the
sellToken
? - Does the user have enough
sellToken
balance to execute the swap? - Do users have enough to pay the gas?
- The slippage tolerance may be too low if the liquidity is very shallow for the token the user is trying to swap. Read here for how to handle this.
For more details on addressing common issues, read 0x FAQ & Troubleshooting
In my app flow, the transaction will need to be signed by a smart contract rather than an EOA. Do you have recommendations for how to implement this?
Try using the swap/permit2
endpoint. Read more the difference between Permit2 and AllowanceHolder for Swap API.
Job Opportunities
We’re hiring! https://0x.org/careers