{"storefront":"APEX Faucet / Citizens City","chain":"X1","rpc":"https://rpc.mainnet.x1.xyz","asOf":"2026-11-12T21:57:58.411Z","rates":{"xntUsd":0.22319801028240474,"apexXnt":0.000004124966603118642,"apexUsd":9.206843382974507e-7,"note":"Derived, not a quote. XNT/USD from the on-chain USDCx pool; APEX/XNT from our screener. Both move."},"payment":{"currencies":["XNT","APEX"],"custodial":false,"note":"Every purchase is build -> you sign -> confirm. We never ask for a private key.","dataApiPayments":"Paid data endpoints use x402. See /.well-known/x402 and /api/x402/discovery."},"counts":{"total":65,"inStock":65,"outOfStock":0,"unknown":0,"returned":65},"products":[{"id":"nft-listing:nft_3","type":"nft","market":"pixel-arcade","name":"Ok","description":"A one-of-one NFT listed at a fixed price by its owner. Buying transfers the mint to you.","mint":"9HB8XHdqtRfwCCbLkdaJP3kzYZM7VTE1mXrdzX8XrUTa","seller":"4zGbuYScnzb4Xe4ffiyfjufvpr6W1AN8jQdTyJV7Ly1M","price":{"amount":1,"currency":"XNT","usdEstimate":0.223198},"availability":"in_stock","inventory":1,"purchase":{"custodial":false,"steps":[{"step":0,"action":"Fund your wallet first. This endpoint checks your balance before it will build anything, and refuses if you cannot cover price + fees."},{"step":1,"method":"POST","url":"/api/nft-market/buy","body":{"listingId":"nft_3","buyer":"<your wallet>"},"returns":"unsignedTx — base64, sign this"},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-market/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"nft-listing:nft_8","type":"nft","market":"pixel-arcade","name":"The Hat","description":"A one-of-one NFT listed at a fixed price by its owner. Buying transfers the mint to you.","mint":"87UuLHJu23ARE5WndsCUYDWQUgK6epzrJPRG1TH8xBdJ","seller":"4zGbuYScnzb4Xe4ffiyfjufvpr6W1AN8jQdTyJV7Ly1M","price":{"amount":100000,"currency":"XNT","usdEstimate":22319.8},"availability":"in_stock","inventory":1,"purchase":{"custodial":false,"steps":[{"step":0,"action":"Fund your wallet first. This endpoint checks your balance before it will build anything, and refuses if you cannot cover price + fees."},{"step":1,"method":"POST","url":"/api/nft-market/buy","body":{"listingId":"nft_8","buyer":"<your wallet>"},"returns":"unsignedTx — base64, sign this"},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-market/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"nft-listing:nft_9","type":"nft","market":"pixel-arcade","name":"Hi Momo","description":"A one-of-one NFT listed at a fixed price by its owner. Buying transfers the mint to you.","mint":"zH7oe1pfYDLJ35FyoG7iuZxbHF4fFJb4ocHHNHaVRy9","seller":"EstEe5fw1jkbCg7ReNMJWEsTQWxuV7ucuDQdvxBbQtRW","price":{"amount":1,"currency":"XNT","usdEstimate":0.223198},"availability":"in_stock","inventory":1,"purchase":{"custodial":false,"steps":[{"step":0,"action":"Fund your wallet first. This endpoint checks your balance before it will build anything, and refuses if you cannot cover price + fees."},{"step":1,"method":"POST","url":"/api/nft-market/buy","body":{"listingId":"nft_9","buyer":"<your wallet>"},"returns":"unsignedTx — base64, sign this"},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-market/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"nft-pool:nftpool_794bf0e73cdd66f7","type":"nft-pool","market":"nft-amm","name":"X1 Memes","description":"Buy a random NFT from this collection at the current bonding-curve price. The price rises as the pool empties.","collectionMint":"4YZmm8n4fUmJUChnv4w2J8xe8fYRK1PbrmF1bjddy9Za","price":{"amount":0.515,"currency":"XNT","usdEstimate":0.114947},"availability":"in_stock","inventory":131,"sellsBackAt":{"amount":0.49724999999999997,"currency":"XNT"},"purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/nft-amm/buy","body":{"pool_id":"nftpool_794bf0e73cdd66f7","wallet":"<your wallet>"},"returns":"unsignedTx — base64, sign this. Also tells you which nftMint you drew, plus price, fee and total."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-amm/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"nft-pool:nftpool_0a519fdc0dc69347","type":"nft-pool","market":"nft-amm","name":"Neurogenesis","description":"Buy a random NFT from this collection at the current bonding-curve price. The price rises as the pool empties.","collectionMint":"HSSCEBMh2uQcWPRXHpKCZqSLjwskEBRqgXNdH6tjPmRs","price":{"amount":0.015,"currency":"XNT","usdEstimate":0.00334797},"availability":"in_stock","inventory":8,"sellsBackAt":{"amount":0.00975,"currency":"XNT"},"purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/nft-amm/buy","body":{"pool_id":"nftpool_0a519fdc0dc69347","wallet":"<your wallet>"},"returns":"unsignedTx — base64, sign this. Also tells you which nftMint you drew, plus price, fee and total."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-amm/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"nft-pool:nftpool_ca7fc06fb435aa1f","type":"nft-pool","market":"nft-amm","name":"X1 Community","description":"Buy a random NFT from this collection at the current bonding-curve price. The price rises as the pool empties.","collectionMint":"Be3wkFaz6UgZEWd1PCyg9cy8wyE7siKhs11VnZwXv4zE","price":{"amount":0.05,"currency":"XNT","usdEstimate":0.0111599},"availability":"in_stock","inventory":107,"sellsBackAt":{"amount":0.0475,"currency":"XNT"},"purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/nft-amm/buy","body":{"pool_id":"nftpool_ca7fc06fb435aa1f","wallet":"<your wallet>"},"returns":"unsignedTx — base64, sign this. Also tells you which nftMint you drew, plus price, fee and total."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-amm/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"nft-pool:nftpool_c495183755884ae1","type":"nft-pool","market":"nft-amm","name":"Capy X1 Memes","description":"Buy a random NFT from this collection at the current bonding-curve price. The price rises as the pool empties.","collectionMint":"AnvCcvnY4DLRW42EZBEAb1QeU6Pt9aab3r3D75GtgJUU","price":{"amount":30,"currency":"XNT","usdEstimate":6.69594},"availability":"in_stock","inventory":206,"sellsBackAt":{"amount":28.5,"currency":"XNT"},"purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/nft-amm/buy","body":{"pool_id":"nftpool_c495183755884ae1","wallet":"<your wallet>"},"returns":"unsignedTx — base64, sign this. Also tells you which nftMint you drew, plus price, fee and total."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"method":"POST","url":"/api/nft-amm/confirm-buy","body":{"txSignature":"<signature>"}}]}},{"id":"commodity:TOMATO","type":"commodity","market":"commodity-amm","name":"Tomato","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"CK8tcvqatWja2zZNrrm5Xk87S71ZSPZ94QBZfHRGcW7W","poolAddress":"8M49LtdcD1ojSPTaczxiy3mt7m9RdnnctqYDzbnUeNKp","price":{"amount":103.62,"currency":"APEX","usdEstimate":0.0000954013,"spotPriceApex":101.0088,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (101.0088) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":45,"liquidity":{"amount":4545.396,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:21.619Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Tomato","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:LETTUCE","type":"commodity","market":"commodity-amm","name":"Lettuce","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"2PyAqCwey9gtm1sSFaqCUArJgZE3tjpwzG3NVdmRcFzd","poolAddress":"EPF1k9ydQHC9RGSv51mMyt18sbKZkAEfyn2ckzwiPnZc","price":{"amount":55.73,"currency":"APEX","usdEstimate":0.0000513097,"spotPriceApex":50,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (50) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":500,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:22.338Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Lettuce","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:HOTPEPPER","type":"commodity","market":"commodity-amm","name":"Hot Pepper","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"HFCGhHJHpDcv5zS69pHg5Kn66aM1taBK2sTSSn4z4tVL","poolAddress":"6TGw93xoe8Hew6ATYA1k23kLbkYwX8CE1NSB12g89xSF","price":{"amount":133.74,"currency":"APEX","usdEstimate":0.000123132,"spotPriceApex":120,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (120) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":1200,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:23.053Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Hot Pepper","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:MIXEDHERBS","type":"commodity","market":"commodity-amm","name":"Mixed Herbs","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"GiZJxA2RyY1WNH1ftpN3fXhPRaB6zYTZX5TGxC1RLCfG","poolAddress":"8ZfrLQVaomvMNtKnMFbbdgSLHek5iwSzvVAKn1PPo22M","price":{"amount":66.87,"currency":"APEX","usdEstimate":0.0000615662,"spotPriceApex":60,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (60) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":600,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:23.765Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Mixed Herbs","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:MUSHROOM","type":"commodity","market":"commodity-amm","name":"Mushroom","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"3vgxXMjcMtKWDpPDsdDzdmTSFuuBLTFy1rhctigis7PC","poolAddress":"8JHrPnjp32q5uT8Vz8NoDKHqSxWcVLPERazkJTHgytpS","price":{"amount":167.17,"currency":"APEX","usdEstimate":0.000153911,"spotPriceApex":150,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (150) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":1500,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:24.484Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Mushroom","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:SUNFLOWER","type":"commodity","market":"commodity-amm","name":"Sunflower","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"8d2V71BWtkDJnHX6gjCSk8bP7hGBp68M3exBv6A6Dygj","poolAddress":"7DREhxtXt9uSFx5V1zuBkxxE6fu8vUN6Lsvn5coEyrZy","price":{"amount":78.02,"currency":"APEX","usdEstimate":0.0000718318,"spotPriceApex":70,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (70) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":700,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:25.199Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Sunflower","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:CACTUS","type":"commodity","market":"commodity-amm","name":"Cactus","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"EejvLNZ9pYyLFtqZEHkYFT7P5W6Co3fAp7pdLtXaAvrc","poolAddress":"9GfFSdqdk1VG4PJHGCbUNiPhzzHPFN2eRnK4Yjt3CLqj","price":{"amount":222.9,"currency":"APEX","usdEstimate":0.000205221,"spotPriceApex":200,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (200) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:25.919Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Cactus","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:LAVENDER","type":"commodity","market":"commodity-amm","name":"Lavender","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"Epwv69mzJVcwoUgBjvMmdhamSxa3eiYaqQK7syc9MnwV","poolAddress":"3juQFoN65XLA4SZSbGACAi95Y9b2i4cCAnCpF3RT7Ssz","price":{"amount":313.45,"currency":"APEX","usdEstimate":0.000288589,"spotPriceApex":250,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (250) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":1250,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:26.633Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Lavender","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:ALOEVERA","type":"commodity","market":"commodity-amm","name":"Aloe Vera","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"8JtVtEHv5T1dYVgyqoJ58rFf3txxtVyG7vfVqeXz7Xt5","poolAddress":"5wZnGKaxyw6xzMTC79iLHc9kM4kCW7xAfq5Up364Lhr","price":{"amount":275.83,"currency":"APEX","usdEstimate":0.000253952,"spotPriceApex":220,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (220) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":1100,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:27.350Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Aloe Vera","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:MINT","type":"commodity","market":"commodity-amm","name":"Mint","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"A6SD11gbpvbzcyQGqjoV7MsbzvUfKTag3R3bTztxkWiM","poolAddress":"dkNb8NZcAVF9fKdWVBBLySiuiQBjM8EhP7RY7hJ9JUJ","price":{"amount":156.03,"currency":"APEX","usdEstimate":0.000143654,"spotPriceApex":140,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (140) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":1400,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:28.067Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Mint","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:BONSAI","type":"commodity","market":"commodity-amm","name":"Bonsai","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"GWE7eRHzaWsaR2MRbgMyLPWwCFG7YWkkeazYQcnnrius","poolAddress":"6sHwBgG4VgcNJ4GMQtUYTEBQhZ6uiKXAR2b56MuSrWfG","price":{"amount":626.89,"currency":"APEX","usdEstimate":0.000577168,"spotPriceApex":500,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (500) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":2500,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:28.780Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Bonsai","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:CANNABIS","type":"commodity","market":"commodity-amm","name":"Cannabis","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"3M3GVnFjcE5YYRdZyT2dQB9a6Mzja9yWNSybqiNhXu2V","poolAddress":"FwW6HMRRUuRUKPmXKFSP1AFkfzzywh9qaHiTMrpykuaF","price":{"amount":501.51,"currency":"APEX","usdEstimate":0.000461732,"spotPriceApex":400,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (400) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:29.491Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Cannabis","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:POPPIES","type":"commodity","market":"commodity-amm","name":"Poppies","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"4Mki1hCd9Sd9R9uQcaDm2nZNRALX3MWNymE9NxTr6SZ1","poolAddress":"AR9mJCumHWRG7j6KTb3gXZs5HhZ9NhiM1baxjMge5A4T","price":{"amount":438.82,"currency":"APEX","usdEstimate":0.000404015,"spotPriceApex":350,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (350) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":1750,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:30.207Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Poppies","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:COCAPLANT","type":"commodity","market":"commodity-amm","name":"Coca Plant","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"GaNK2siqk348K5AJAMjToqkf2ncF43cqomh8a9xzbpz9","poolAddress":"3Q9TKbXTZQe7Weaq9ssezHq6WBD85uD4eRdjf94gxXm5","price":{"amount":626.89,"currency":"APEX","usdEstimate":0.000577168,"spotPriceApex":500,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (500) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":2500,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:30.922Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Coca Plant","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:GHOSTPEPPER","type":"commodity","market":"commodity-amm","name":"Ghost Pepper","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"AUHHDFGrBwsbNNJCoSk4bns23KTU4sWs3DjXWsemecdn","poolAddress":"Dy44FywkxVGTazf35n5MnwkDC9p7bm95ziVSpJstS9St","price":{"amount":1003.01,"currency":"APEX","usdEstimate":0.000923456,"spotPriceApex":900,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (900) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":9000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:31.650Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Ghost Pepper","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:TRUFFLE","type":"commodity","market":"commodity-amm","name":"Truffle","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"6DqEtw9TvZiBex4Sp41Dd1yWUJncKjzUReh8B3SdxeNb","poolAddress":"BWUDQhepFzXeh5B2yKHbTvhyjo5ttjqPX3ADtXwjYAEc","price":{"amount":1671.69,"currency":"APEX","usdEstimate":0.0015391,"spotPriceApex":1500,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1500) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":15000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:32.365Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Truffle","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:MOONFLOWER","type":"commodity","market":"commodity-amm","name":"Moonflower","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"5G2WrybnCzRxfuTnJzkA1XGPNhRWX1C3DGD5JHt8iqor","poolAddress":"Bw6afUXA8WHpWxWwaAjfRG7vQ6p416hEjkhiQRLbsh3i","price":{"amount":1337.35,"currency":"APEX","usdEstimate":0.00123128,"spotPriceApex":1200,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1200) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":12000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:33.075Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Moonflower","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:AYAHUASCAVINE","type":"commodity","market":"commodity-amm","name":"Ayahuasca Vine","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"6bHPSDXxFoDoppTGnTnH4BWy5K5QPPpctCQaNhFruLHU","poolAddress":"6AhvppToFJTGX3b8Nn3DxL1Pk8nfKf3jtomJtCtDZW5M","price":{"amount":2228.91,"currency":"APEX","usdEstimate":0.00205212,"spotPriceApex":2000,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (2000) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":20000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:33.788Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Ayahuasca Vine","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:BLUELOTUS","type":"commodity","market":"commodity-amm","name":"Blue Lotus","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"5FskrUMzXKzes1ch139MwbWeFNPxauuuTVgtEXDTKDEU","poolAddress":"4ey35s33gNUb3aTGwkPQoumvij5y465PL5kutfx1Jd4S","price":{"amount":1783.13,"currency":"APEX","usdEstimate":0.0016417,"spotPriceApex":1600,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1600) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":16000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:34.497Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Blue Lotus","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:GOLDLEAF","type":"commodity","market":"commodity-amm","name":"Goldleaf","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"HqpozKrBe6ur4xqJ7aGrW982iuuzBwSybfH4YMuegJHH","poolAddress":"4K6sC7EaT8tWv1FHdd4wFzkw5vtWarhwN9RwJFFM2Azt","price":{"amount":6268.81,"currency":"APEX","usdEstimate":0.0057716,"spotPriceApex":5000,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (5000) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":5,"liquidity":{"amount":25000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:35.208Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Goldleaf","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:VOIDBLOOM","type":"commodity","market":"commodity-amm","name":"Voidbloom","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"5KXVHRz5LVCkshA6ehWiUbsxQJyz4K8fMmR8cDUpb9iv","poolAddress":"DzwRSp3RLXQ5yXtAkGbpXDVgRbkp3QcVuAJ41Utbe2rv","price":{"amount":50090.28,"currency":"APEX","usdEstimate":0.0461173,"spotPriceApex":24970,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (24970) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":2,"liquidity":{"amount":49940,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:35.918Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Voidbloom","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:FLUXMINTTEA","type":"commodity","market":"commodity-amm","name":"Flux Mint Tea","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"tFPsggn8bRK7CmnyXSR5fBQ7f5GeAZc9c1HcUgTYzD7","poolAddress":"68anquMRcnHnrVaVmVYqEtS5Eafm58wXuqwEBE9D2ui2","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:36.628Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Flux Mint Tea","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:HERBALBLEND","type":"commodity","market":"commodity-amm","name":"Herbal Blend","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"4t6PzDGJ2ncWCWUEsM7ipxNxqcQhmWUEmzmH1rQU5vsn","poolAddress":"BBnun4jLpv63UbNEtB7PMjRzGu3ArGtEDkPBtuNi11NH","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:37.338Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Herbal Blend","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:LAVENDERCALMTEA","type":"commodity","market":"commodity-amm","name":"Lavender Calm Tea","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"FxoAA1W7Q3CzzJ7HMih2uWvgKjDkdca3yXQbq6DYshrx","poolAddress":"6UHDN6HNSDtM5Eofqx53g6eHgAuZYSoXfR66VGyL87fj","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:38.050Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Lavender Calm Tea","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:ZENBLEND","type":"commodity","market":"commodity-amm","name":"Zen Blend","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"HhQKySJnwVXbHPD5mJXSU2xda4MsEv2Pz53EvPmxyvWU","poolAddress":"G7AzMHnvWSG4AUZG9PCk6cv3RVY7R9hgxWngBFx5EcMi","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:38.779Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Zen Blend","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:FOCUSELIXIR","type":"commodity","market":"commodity-amm","name":"Focus Elixir","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"Csq4zrowo91QAarXvzvv86HsM3943TcueQA6TjT1cwfM","poolAddress":"AT2jZoJ5gaqRMf15ttVJ1w9UaUnnoRNw6Z931ZfTjPFX","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:39.489Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Focus Elixir","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:CITYKETCHUP","type":"commodity","market":"commodity-amm","name":"City Ketchup","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"3bZEgXEav8huCAimgbYNdeAg9idY2y1ktFvnDAbmT5g5","poolAddress":"CoQQBzHgTp2eqFvc8p7zraKmrq2zkfPAArqyNZEHKY3r","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:40.218Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"City Ketchup","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:CITYSALADMIX","type":"commodity","market":"commodity-amm","name":"City Salad Mix","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"DB1hrnSp8ZMBGxzPzhugMe1TeQzJCcnrhHXjEERCPBSe","poolAddress":"FKbhjNCHejgaLDJD3cx9baZt8LMZPkTSV4HHRGCdaVq1","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:40.929Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"City Salad Mix","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:POPPYSEEDOIL","type":"commodity","market":"commodity-amm","name":"Poppy Seed Oil","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"9N4Ws6U8mgKRqGPYYTFAicXae4VPoCbaSKvu1xP2nVfo","poolAddress":"7XCJmv72fdXyhn2vnVF7swi47CXWjdtRqCo6SST3LJPi","price":{"amount":105.58,"currency":"APEX","usdEstimate":0.0000972059,"spotPriceApex":100,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (100) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":20,"liquidity":{"amount":2000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:41.649Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Poppy Seed Oil","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:COMPOST","type":"commodity","market":"commodity-amm","name":"Compost","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"9fz3yirzrFDQmeH2Rj6fjEZdaehdEAdsUf395mF6iyEm","poolAddress":"12Pefb7pojxjzCpQVk7aBiCo5od8MEhJSZcTtWJoAqxf","price":{"amount":241.6,"currency":"APEX","usdEstimate":0.000222437,"spotPriceApex":238,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (238) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":84,"liquidity":{"amount":19992,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:42.402Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Compost","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:EMBERASH","type":"commodity","market":"commodity-amm","name":"Ember Ash","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"6EXMsq7gpsnv2YaYTCdsCSF8FzdTihvey866oQ66fGns","poolAddress":"9x1ETDG57z1eLigfmNdYF9Yv36cbQvPdB15D16Fy18Tu","price":{"amount":884.4,"currency":"APEX","usdEstimate":0.000814253,"spotPriceApex":845,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (845) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":24,"liquidity":{"amount":20280,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:43.110Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Ember Ash","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:ADOBEBRICK","type":"commodity","market":"commodity-amm","name":"Adobe Brick","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"7SE1zjy8KWZQ5XfJxHwCANWdKGkPMct29GZAgqkWeKwo","poolAddress":"3VZBehPRQigEWmHPmVieoZDP25LrG3AAV32bt8Loh2nt","price":{"amount":435.55,"currency":"APEX","usdEstimate":0.000401004,"spotPriceApex":425,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (425) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":47,"liquidity":{"amount":19975,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:43.826Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Adobe Brick","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:HEMPCRETE","type":"commodity","market":"commodity-amm","name":"Hempcrete","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"GmMwKWM5As3hZRW3EezeAoFNW3U4umzpYdGosqxaQw8U","poolAddress":"CQqZiSXjYgvAMNBKGsHn11dHypjuuZ1Ypvc5r94zEC1R","price":{"amount":1394.9,"currency":"APEX","usdEstimate":0.00128426,"spotPriceApex":1298,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1298) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":15,"liquidity":{"amount":19470,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:44.547Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Hempcrete","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:BONSAIPLANTER","type":"commodity","market":"commodity-amm","name":"Bonsai Planter","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"94oMSJ9qpuKfMdLXiX2seHr6GcCCtuVbSnGSV3BnR8ZE","poolAddress":"14qCRLN6CvMiJwCmKzG8zunSJf1RjorqpHzYYihhWKUu","price":{"amount":2205.51,"currency":"APEX","usdEstimate":0.00203058,"spotPriceApex":1979,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1979) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":10,"liquidity":{"amount":19790,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:45.260Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Bonsai Planter","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:CITYBURGER","type":"commodity","market":"commodity-amm","name":"City Burger","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"Go9qVkZiQ6tPiu7yDZapE2ovjzzXfdqSf2FPsnYoMzbh","poolAddress":"81mM9eVigX1KjUZtcwovhdhKwT2VtRRiwDdMjyt7mcME","price":{"amount":1570.56,"currency":"APEX","usdEstimate":0.00144599,"spotPriceApex":1454,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1454) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":14,"liquidity":{"amount":20356,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:45.985Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"City Burger","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:FIRESALSA","type":"commodity","market":"commodity-amm","name":"Fire Salsa","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"7UU5QpUbM7aWgFz15JdHxTUoPQsFGnjgstqLCfarswqo","poolAddress":"HusrGntSA5SebJg8GDaAfHvqAbUCEP4nCiGL1tncddiB","price":{"amount":1657.06,"currency":"APEX","usdEstimate":0.00152563,"spotPriceApex":1525,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1525) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":13,"liquidity":{"amount":19825,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:46.703Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Fire Salsa","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:ALOESALVE","type":"commodity","market":"commodity-amm","name":"Aloe Salve","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"4BQ692KQa19aiQ4LgWfAEHKoF93dkoqJ8EXodjKCFABE","poolAddress":"GHRDccY1zMVzWYjU95cMbvHDszdqppVMTzwumDs682D","price":{"amount":904.95,"currency":"APEX","usdEstimate":0.000833173,"spotPriceApex":863,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (863) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":23,"liquidity":{"amount":19849,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:47.448Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Aloe Salve","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:CALMBALM","type":"commodity","market":"commodity-amm","name":"Calm Balm","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"QCqwCgbpag7WvBjEiRbGdi4ts8hmP1cH186Aj1qkiqa","poolAddress":"stEcYjDPhxH4AvGiRBgsGdx3JuED9NoXAn42Xh3NqK4","price":{"amount":808.43,"currency":"APEX","usdEstimate":0.000744309,"spotPriceApex":775,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (775) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":26,"liquidity":{"amount":20150,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:48.275Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Calm Balm","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:MOUNTAINLEAFTEA","type":"commodity","market":"commodity-amm","name":"Mountain Leaf Tea","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"Aar2yxqzGQbEHhpzyaMLmiLY5sjGv3PraVyZgMtS21z5","poolAddress":"EW7ssEZLD5By3DHABhyZL3TjwWcviqGUuEqtYm9SPMAx","price":{"amount":835.85,"currency":"APEX","usdEstimate":0.000769554,"spotPriceApex":800,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (800) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":25,"liquidity":{"amount":20000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:48.991Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Mountain Leaf Tea","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:TRUFFLEOIL","type":"commodity","market":"commodity-amm","name":"Truffle Oil","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"2698J7A8m2XbBuvUL3XNzjtLvyJYcoZyoQrwedbsjvSp","poolAddress":"HvBASqmsDuXUm9DN879fE7UVKqvXxvvToXyVxAdDMRmW","price":{"amount":6165.17,"currency":"APEX","usdEstimate":0.00567618,"spotPriceApex":4610,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (4610) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":4,"liquidity":{"amount":18440,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:49.722Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Truffle Oil","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:MOONPERFUME","type":"commodity","market":"commodity-amm","name":"Moon Perfume","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"6EgwCqJEm4uqgrFzP6EEvpsNEBWN2e9Vu4KdsQKhirmj","poolAddress":"TcrjV38L4Q47kF5Mi36gZgvANFcM3bBXncwdVzhskRa","price":{"amount":2000.31,"currency":"APEX","usdEstimate":0.00184165,"spotPriceApex":1813,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (1813) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":11,"liquidity":{"amount":19943,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:50.433Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Moon Perfume","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:VISIONBREW","type":"commodity","market":"commodity-amm","name":"Vision Brew","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"4dDdq8AvFTRc6MSgFwCgbh78MtXBA8LJCDyVx1QfAjWd","poolAddress":"EcsTT8mpARVJdEmRAuccPoHAnuWZk1KpcsxP1AbWPfWU","price":{"amount":6018.06,"currency":"APEX","usdEstimate":0.00554073,"spotPriceApex":4500,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (4500) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":4,"liquidity":{"amount":18000,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:51.146Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Vision Brew","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:GOLDTONIC","type":"commodity","market":"commodity-amm","name":"Gold Tonic","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"4Kh2jRA6CJAW6k1HrVhCkQecSTnc4MxQvLgHABQqM2Ys","poolAddress":"4YeWvgEqA2HWEYqg2herMqWURK6jnihU9Ecj8ftRZ3LP","price":{"amount":12412.24,"currency":"APEX","usdEstimate":0.0114278,"spotPriceApex":8250,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (8250) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":3,"liquidity":{"amount":24750,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:51.858Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Gold Tonic","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"commodity:VOIDINK","type":"commodity","market":"commodity-amm","name":"Void Ink","icon":"📦","description":"A farmed commodity token traded against APEX on a constant-product pool.","mint":"DuYQsGsHMaakNFk1RrrmPCtGCgAnVGMX2JfbitrvAvoY","poolAddress":"D7bdtUDBy62chEq7vJzCvxUt4BDpqTC5H21fWuv6Esgf","price":{"amount":27476.94,"currency":"APEX","usdEstimate":0.0252976,"spotPriceApex":18263,"note":"Smallest APEX spend that actually yields 1 unit (fee + curve included). spotPriceApex (18263) is the raw curve price and will be rejected as too small."},"availability":"in_stock","inventory":3,"liquidity":{"amount":54789,"currency":"APEX"},"feeBps":30,"observedAt":"2026-11-12T21:50:52.570Z","purchase":{"custodial":false,"steps":[{"step":1,"method":"POST","url":"/api/commodity/build-swap","body":{"wallet":"<your wallet>","commodity":"Void Ink","side":"buy","amount":"<APEX to spend>"},"returns":"unsignedTransactionBase64 — sign this. If your amount is below what the curve can fill, the error carries minimumRaw."},{"step":2,"action":"sign the transaction with your own key"},{"step":3,"action":"submit it to https://rpc.mainnet.x1.xyz yourself"}]}},{"id":"city-land:plot","type":"land","market":"citizens-city","name":"Land deed — Citizens City","description":"Claim one (x, z) slot of the city grid as an on-chain deed. You can build on it, transfer it, or list it for sale. The deed is a PDA on program GQnfUevzd1HAkJ2xoHGmZ6ogpnf2jDyz8YcjPHxYrkwn — it is yours on chain, not an entry in our database.","price":{"amount":0.05,"currency":"XNT","usdEstimate":0.0111599,"note":"One-time claim fee paid to the Flux treasury."},"availability":"in_stock","inventory":263,"supply":{"gridSlotsTotal":264,"claimed":1,"remaining":263,"reserved":"centre ±2 (25 slots) is not claimable"},"resale":{"listedForSale":0,"feeOnSaleBps":300,"minListPriceXnt":0.01,"note":"You may resell a deed. We take 3% on a sale. We make no claim about what a deed will be worth — there is no resale market yet."},"programId":"GQnfUevzd1HAkJ2xoHGmZ6ogpnf2jDyz8YcjPHxYrkwn","purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/land/deeds","note":"Read which (x, z) slots are already taken."},{"step":2,"method":"GET","url":"/api/citizens/land/catalog","note":"Confirm the current claim fee and the grid bounds."},{"step":3,"action":"Build and sign the claim transaction against program GQnfUevzd1HAkJ2xoHGmZ6ogpnf2jDyz8YcjPHxYrkwn, paying the fee to BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF. Deed PDA seeds: [\"deed\", x as i8, z as i8]."}]}},{"id":"city-build:cabin","type":"building","market":"citizens-city","name":"Build a cabin — Citizens City","description":"Raise a cabin on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.025,"currency":"XNT","usdEstimate":0.00557995,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":1000}],"footprint":{"w":1.6,"h":2,"d":1.6,"floors":1},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 25000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|cabin|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:garden","type":"building","market":"citizens-city","name":"Build a garden — Citizens City","description":"Raise a garden on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.05,"currency":"XNT","usdEstimate":0.0111599,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":2500},{"token":"IBOGAINS","amount":1000},{"token":"Lavender","amount":1},{"token":"Adobe Brick","amount":2}],"footprint":{"w":3,"h":1.2,"d":3,"floors":0},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 50000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|garden|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:workshop","type":"building","market":"citizens-city","name":"Build a workshop — Citizens City","description":"Raise a workshop on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.08,"currency":"XNT","usdEstimate":0.0178558,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":5000},{"token":"IBOGAINS","amount":2500},{"token":"Ember Ash","amount":2},{"token":"Sunflower","amount":1},{"token":"Adobe Brick","amount":3}],"footprint":{"w":2,"h":2.4,"d":2.6,"floors":1},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 80000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|workshop|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:lounge","type":"building","market":"citizens-city","name":"Build a lounge — Citizens City","description":"Raise a lounge on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.15,"currency":"XNT","usdEstimate":0.0334797,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":10000},{"token":"IBOGAINS","amount":5000},{"token":"Ember Ash","amount":3},{"token":"Cannabis","amount":1},{"token":"Hempcrete","amount":2}],"footprint":{"w":2.4,"h":3.8,"d":2.4,"floors":2},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 150000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|lounge|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:bazaar","type":"building","market":"citizens-city","name":"Build a bazaar — Citizens City","description":"Raise a bazaar on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.2,"currency":"XNT","usdEstimate":0.0446396,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":25000},{"token":"IBOGAINS","amount":10000},{"token":"Ember Ash","amount":4},{"token":"Mint","amount":2},{"token":"Hempcrete","amount":3}],"footprint":{"w":3.6,"h":2.5,"d":3.6,"floors":1},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 200000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|bazaar|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:dome","type":"building","market":"citizens-city","name":"Build a dome — Citizens City","description":"Raise a dome on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.3,"currency":"XNT","usdEstimate":0.0669594,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":50000},{"token":"IBOGAINS","amount":25000},{"token":"Ember Ash","amount":5},{"token":"Bonsai","amount":1},{"token":"Blue Lotus","amount":1},{"token":"Hempcrete","amount":4}],"footprint":{"w":3.2,"h":3.5,"d":3.2,"floors":1},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 300000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|dome|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:arch","type":"building","market":"citizens-city","name":"Build a arch — Citizens City","description":"Raise a arch on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.35,"currency":"XNT","usdEstimate":0.0781193,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":100000},{"token":"IBOGAINS","amount":50000},{"token":"Ember Ash","amount":7},{"token":"Goldleaf","amount":1},{"token":"Moonflower","amount":1}],"footprint":{"w":3.4,"h":4.2,"d":1.3,"floors":2},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 350000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|arch|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:cube","type":"building","market":"citizens-city","name":"Build a cube — Citizens City","description":"Raise a cube on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.5,"currency":"XNT","usdEstimate":0.111599,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":250000},{"token":"IBOGAINS","amount":100000},{"token":"Ember Ash","amount":8},{"token":"Bonsai","amount":1},{"token":"Voidbloom","amount":1}],"footprint":{"w":2.2,"h":4.8,"d":2.2,"floors":3},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 500000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|cube|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:pyramid","type":"building","market":"citizens-city","name":"Build a pyramid — Citizens City","description":"Raise a pyramid on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":0.8,"currency":"XNT","usdEstimate":0.178558,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":500000},{"token":"IBOGAINS","amount":500000},{"token":"Ember Ash","amount":11},{"token":"Voidbloom","amount":1},{"token":"Goldleaf","amount":1},{"token":"Truffle","amount":1}],"footprint":{"w":3.2,"h":5.2,"d":3.2,"floors":1},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 800000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|pyramid|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:tower","type":"building","market":"citizens-city","name":"Build a tower — Citizens City","description":"Raise a tower on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":1,"currency":"XNT","usdEstimate":0.223198,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":1000000},{"token":"IBOGAINS","amount":1000000},{"token":"Ember Ash","amount":14},{"token":"Voidbloom","amount":2},{"token":"Goldleaf","amount":1},{"token":"Void Ink","amount":1}],"footprint":{"w":1.4,"h":11,"d":1.4,"floors":8},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 1000000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|tower|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"city-build:spire","type":"building","market":"citizens-city","name":"Build a spire — Citizens City","description":"Raise a spire on the city grid. It is rendered in the 3D city and stays there. You pay a fee in XNT and burn the recipe tokens — the burn is permanent and is most of the real cost.","price":{"amount":2,"currency":"XNT","usdEstimate":0.446396,"note":"Fee only. The token burn below is additional."},"burnRequired":[{"token":"APEX","amount":5000000},{"token":"IBOGAINS","amount":2000000},{"token":"Ember Ash","amount":18},{"token":"Voidbloom","amount":3},{"token":"Goldleaf","amount":2},{"token":"P21","amount":0.001},{"token":"Void Ink","amount":2}],"footprint":{"w":1,"h":16,"d":1,"floors":12},"availability":"in_stock","inventory":null,"limits":{"maxPerWallet":10,"gridHalf":24},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/citizens/build/check?x=<x>&z=<z>","note":"Check the slot is free."},{"step":2,"action":"Sign ONE transaction: SystemProgram.transfer(you -> BRBgaxdmMsgfWNj8BtutcF7CVcrhF2u2xnw2j58aLjtF, 2000000000 lamports), plus an spl-token Burn for each recipe entry, plus a Memo \"CITY|BUILD|<x>|<z>|spire|<palette>|<houseName>\"."},{"step":3,"method":"POST","url":"/api/citizens/build","note":"Submit the signature to register the building."}],"palettes":["neon-violet","jade","amber-dusk","cobalt","rose-gold","plasma","copper","ice-mint","sunset","void-silver"]}},{"id":"sponsorship:banner","type":"sponsorship","market":"apexfaucet","name":"Sponsored message — site-wide banner","description":"Your message and link in the rotating banner that runs on the homepage, the screener, the city and the docs. Sold by impressions, not by time, and not as a subscription — you buy a block of impressions once and it runs until they are used.","price":{"amount":4.4803,"currency":"XNT","usdEstimate":0.999994,"unit":"per 1,000 impressions","payableIn":[{"asset":"XNT","chain":"x1","amount":4.4803,"receiver":"HYiepS7mNCVVKoaDmZLQ6rNtMWHTQqKheM1NLGn1x8kJ"},{"asset":"USDC","chain":"solana","amount":1,"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","receiver":"8rBj4n3D2txBhqj6HTjomZhBfCHiypfax4VytwN8dtrw"}]},"bundles":[{"name":"Starter","impressions":1000,"priceXnt":4.4803,"usdEstimate":0.999994},{"name":"Standard","impressions":5000,"priceXnt":22.4015,"usdEstimate":4.99997},{"name":"Feature","impressions":13000,"priceXnt":58.2439,"usdEstimate":12.9999},{"name":"Takeover","impressions":100000,"priceXnt":448.03,"usdEstimate":99.9994}],"availability":"in_stock","inventory":null,"activeSponsors":0,"constraints":{"maxMessageLength":100,"minImpressions":1000,"maxImpressions":100000},"purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/sponsor/pricing","note":"Read the live rate and the current demand multiplier."},{"step":2,"action":"Send the XNT to HYiepS7mNCVVKoaDmZLQ6rNtMWHTQqKheM1NLGn1x8kJ on X1 and keep the signature."},{"step":3,"method":"POST","url":"/api/sponsor/purchase-xnt","body":{"wallet":"<your wallet>","message":"<up to 100 chars>","impressions":"<how many>","payment_tx":"<signature>","link_url":"<optional>"},"note":"The payment is verified on chain before the banner goes live."}],"alternativeUsdc":{"note":"Paying in USDC on Solana instead — no bridge, and you never have to source XNT. X1 is a Solana fork, so the same address works on both chains.","steps":[{"step":1,"method":"GET","url":"/api/sponsor/pricing","note":"Read per_1k_impressions_usdc."},{"step":2,"action":"Send that many USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) to 8rBj4n3D2txBhqj6HTjomZhBfCHiypfax4VytwN8dtrw on Solana mainnet, and keep the signature."},{"step":3,"method":"POST","url":"/api/sponsor/purchase","body":{"wallet":"<your wallet>","message":"<your message>","impressions":"<how many>","payment_tx":"<solana signature>","payment_type":"usdc"},"note":"The transfer is verified against Solana mainnet before the banner goes live."}]}}},{"id":"wall:tile","type":"wall-tile","market":"apexfaucet","name":"The Wall — one tile","description":"One tile of a 10,000-tile grid at /wall/. Attach a label and a link and it stays there. You pay once; it does not expire and there is nothing to renew. Buy up to 100 tiles in a single claim.","price":{"amount":1,"currency":"USD","unit":"per tile","usdEstimate":1,"payableIn":[{"asset":"XNT","chain":"x1","amount":4.4803},{"asset":"USDC","chain":"solana","amount":1}]},"availability":"in_stock","inventory":9999,"supply":{"total":10000,"sold":1,"remaining":9999},"terms":{"oneTime":true,"subscription":false,"expires":false,"note":"You pay once. The tile does not expire and there is nothing to renew.","pricing":"Priced in US dollars. Pay XNT on X1 or USDC on Solana — same price, same receiving address.","links":"Outbound links carry rel=\"sponsored nofollow noopener\" — they pass no search ranking. This protects the site from search-engine link-spam penalties, which would hurt every tile owner here.","moderation":"We will remove a tile that points at malware, impersonates someone, or targets a person. No refund in that case. Nothing else gets touched.","noResaleClaim":"We make no claim that a tile will be worth anything later. There is no resale market. Buy it to be seen, not as an investment."},"view":"https://apexfaucet.xyz/wall/","purchase":{"custodial":false,"steps":[{"step":1,"method":"GET","url":"/api/wall","note":"See which tiles are taken. Any free [x, y] works; they need not touch."},{"step":2,"method":"GET","url":"/api/wall/quote?count=<n>","note":"Returns the exact total on both rails — XNT on X1 and USDC on Solana — and the address to pay. The quoted XNT rate is honoured for 30 minutes."},{"step":3,"action":"Pay HYiepS7mNCVVKoaDmZLQ6rNtMWHTQqKheM1NLGn1x8kJ either way and keep the signature: send the quoted XNT on X1, or send the same dollar amount in USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) on Solana mainnet. It is the same address on both chains — X1 is a Solana fork — so no bridge is involved."},{"step":4,"method":"POST","url":"/api/wall/claim","body":{"wallet":"<the address that paid>","payment_tx":"<X1 signature — or use payment_tx_sol for USDC>","tiles":[[12,34]],"label":"<up to 32 chars>","link":"https://your-site","color":"#111111"},"note":"Payment is verified on chain before the tile is written, and a signature cannot be reused. On the USDC rail the tile is recorded to the address that sent the USDC, so pass that address as wallet."}]}}]}