The on-chain backbone of JoAi apps. Each contract powers a real user-facing feature — from issuing discount coupons to collecting verifiable signatures — all anchored on the blockchain.
| Contract | What it does |
|---|---|
coupon |
🎟️ Merchants issue discount coupons; customers redeem them by code. |
signature |
✍️ Multi-party document signing. Collect verifiable on-chain signatures from multiple people. |
challenge |
🏆 Create and resolve on-chain challenges and competitions. |
shop |
🛍️ On-chain shop registry. Register a shop and manage product listings. |
loyalty |
⭐ Reward customers with on-chain loyalty points redeemable in your shop. |
<contract>/
src/ # Rust contract source
output/ # Compiled artifacts (.wasm, .abi.json)
tests/ # Integration tests (where applicable)
sc-config.toml # Build config
meta/ # Build helper (auto-generated)
wasm/ # Wasm adapter (auto-generated, do not edit)
Requires the smart contract build tools:
cargo install multiversx-sc-metaBuild a single contract:
cd coupon
sc-meta all buildArtifacts land in <contract>/output/.
mxpy contract deploy \
--bytecode coupon/output/coupon.wasm \
--pem /path/to/deployer.pem \
--proxy https://devnet-gateway.multiversx.com \
--chain D \
--gas-limit 100000000 \
--sendFor upgrades, replace deploy with upgrade <contract-address>.
- Create
<app>/with the standard structure (copycoupon/as a starting point) - Add
"<app>"to workspace members in rootCargo.toml - Exclude
"<app>/meta"and"<app>/wasm"from the workspace - Define the warp in
joai--warps/warps/<app>/with abrand.tsand warp action JSONs - Register the deployed contract address in the brand's
contractsconfig
joai--warps— warp definitions and catalog (the off-chain interface to these contracts)joai--pwa— the apps that render warp UIs for end usersjoai--api— backend handling site resolution and agent auth