Technical Reference
API Reference
Send Notification
This endpoint lets you send notifications to users of your mini app and requires an api_key
.
Body Params
- Name
wallet_addresses
- Type
- string[]
- Required
- REQUIRED
- Description
The
wallet_addresses
is an array of wallet addresses to send the notification to. Users must have opted in to notifications for your app. Max 1000 users per call.
- Name
title
- Type
- string
- Required
- REQUIRED
- Description
The
title
is the title of the notification. It should be 30 characters or less.
- Name
message
- Type
- string
- Required
- REQUIRED
- Description
The
message
is the message of the notification. It should be 200 characters or less.
- Name
mini_app_path
- Type
- string
- Required
- REQUIRED
- Description
The
mini_app_path
is the url encoded path of the mini app where your notification should link to when the user clicks on it.
Should be of the formatworldapp://mini-app?app_id=[app_id]&path=[path]
(path is optional).
- Name
app_id
- Type
- string
- Required
- REQUIRED
- Description
The
app_id
is the identifier of the app initiating the transaction.
Request Headers
- Name
Authorization
- Type
- string
- Required
- REQUIRED
- Description
The
Authorization
header should be theapi_key
for your app from the Developer Portal. Make sure to prefix it withBearer {api_key}
.
Request
curl -X POST "https://developer.worldcoin.org/api/v2/minikit/send-notification" \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{"app_id": "app_id", "wallet_addresses": ["0x123", "0x456"], "title": "title", "message": "message", "mini_app_path": "mini_app_path"}'
Response
- Name
success
- Type
- boolean
- Description
Indicates if the API request was successful.
- Name
status
- Type
- number
- Description
The HTTP status code of the response.
- Name
result
- Type
- array
- Description
An array of notification delivery results for each wallet address, where each item contains:
walletAddress
(string): The wallet address that the notification was attempted to be sent tosent
(boolean): Whether the notification was successfully sent to this wallet addressreason
(string, optional): If the notification failed to send, this field contains the reason
Response
{
"success": true,
"status": 200,
"result": [
{
"walletAddress": "0x377da9cab87c04a1d6f19d8b4be9aef8df26fcdd",
"sent": true
},
{
"walletAddress": "0x444da9cab87c04a1d6f19d8b4be9aef8df26fcdd",
"sent": false,
"reason": "User has notification disabled for World App"
}
]
}
Get Transaction
This endpoint lets you query your apps transactions for their current status. You will only be able to
query for transactions of apps where you possess the api_key
.
Query Params
- Name
app_id
- Type
- string
- Required
- REQUIRED
- Description
The
app_id
corresponding to the transaction that is being queried.
- Name
type
- Type
- string
- Required
- REQUIRED
- Description
The
type
is either payment (pay) or transaction (sendTransaction) depending on the command you used.
Request
curl -X GET "https://developer.worldcoin.org/api/v2/minikit/transaction/{transaction_id}"
Response
- Name
reference
- Type
- string
- Description
The
reference
is your specified unique identifier for the transaction.
- Name
transaction_hash
- Type
- string
- Description
The
transaction_hash
is the hash of the transaction on the blockchain.
- Name
transaction_status
- Type
- string
- Description
The current
transaction_status
, can be either 'pending', 'mined', or 'failed'.
- Name
from
- Type
- string
- Description
The
from
is the address of the sender.
- Name
chain
- Type
- string
- Description
The
chain
is the name of the blockchain network.
- Name
timestamp
- Type
- string
- Description
The
timestamp
is the time when the transaction was created, in ISO 8601 format.
- Name
token_amount
- Type
- string
- Description
The
token_amount
is the amount of tokens transferred, in BigInt with 6 decimals.
- Name
token
- Type
- string
- Description
The
token
is the type of token transferred.
- Name
to
- Type
- string
- Description
The
to
is the address of the receiver.
- Name
app_id
- Type
- string
- Description
The
app_id
is the identifier of the app initiating the transaction.
Response
{
"reference": "1fa38f30-8ee1-4e4b-9988-0517a774f96c",
"transaction_hash": "0xfb25cb74b13d51deeb1a91460619c3d86a7637d40dd29831aa38dd6cbb05e880",
"transaction_status": "pending | mined | failed",
"from": "0x0c892815f0B058E69987920A23FBb33c834289cf",
"chain": "worldchain",
"timestamp": "2024-01-01T00:00:00.000Z", // ISO 8601
"token_amount": "100000000", // amount in BigInt with 6 decimals
"token": "USDCE",
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"app_id": "app_9a73963d73efdf2e7d9472593dc9dffd"
}
Get Transaction Debug URL
This endpoint lets you debug transactions that failed during the prepare stage. It provides Tenderly URLs for permit2 operations with expired permits.
You will only be able to query for transactions of apps where you possess the api_key
.
Note that the debug URLs provided by this endpoint typically expire after 1 hour.
Query Params
- Name
app_id
- Type
- string
- Required
- REQUIRED
- Description
The
app_id
corresponding to the transaction that is being queried.
Request Headers
- Name
Authorization
- Type
- string
- Required
- REQUIRED
- Description
The
Authorization
header should be theapi_key
for your app from the Developer Portal. Make sure to prefix it withBearer {api_key}
.
Request
curl -X GET "https://developer.worldcoin.org/api/v2/minikit/transaction/debug?app_id={app_id}" \
-H "Authorization: Bearer {api_key}"
Response
- Name
transactions
- Type
- array
- Description
An array of transaction debug information, where each item contains:
debugUrl
(string): The Tenderly URL for debugging the transactioncreatedAt
(string): The timestamp when the transaction was created, in ISO 8601 formatblock
(number): The block number where the transaction was attemptedsimulationRequestId
(string): The ID of the simulation requestsimulationError
(string): The error message from the simulation, if anywalletAddress
(string): The wallet address associated with the transaction
Response
{
"transactions": [
{
"debugUrl": "https://dashboard.tenderly.co/tx/...",
"createdAt": "2024-03-21T10:30:00.000Z",
"block": 12345678,
"simulationRequestId": "sim_abc123def456",
"simulationError": "Permit signature expired",
"walletAddress": "0x1234..."
}
]
}
Get Prices
This endpoint lets you query the latest prices of the Worldcoin token in various fiat currencies. We offer this as a service to make it easier to use WLD as a currency.
Query Params
- Name
fiatCurrencies
- Type
- string
- Required
- REQUIRED
- Description
The
fiatCurrencies
is a comma-separated list of fiat currencies following ISO4217 currency code. eg.USD,EUR,JPY,ARS
- Name
cryptoCurrencies
- Type
- string
- Required
- REQUIRED
- Description
The
cryptoCurrencies
is a comma-separated list of currencies we support. eg.USDCE,WLD
Request
curl -X GET "https://app-backend.worldcoin.dev/public/v1/miniapps/prices?cryptoCurrencies=WLD&fiatCurrencies=USD"
Response (abridged)
Detailed are a just a few values in the return that could be confusing. See the response object in the bottom right column for the full list of fields
- Name
prices
- Type
- string
- Description
The
prices
is an object where each key is the respective currency code
- Name
amount
- Type
- string
- Description
The
amount
represents the non converted value for the price of 1 WLD for a given currency
- Name
decimals
- Type
- string
- Description
The current
decimals
, should be used to calculate the converted price. ie an amount of 1000000 with 6 decimals would mean a price of $1.00 via, 1000000 * 10^-6
Response
{
"result": {
"prices": {
"WLD": {
"USD": {
"asset": "USD",
"amount": "1510763",
"decimals": 6,
"symbol": "USD"
},
},
"USDCE": {
"USD": {
"asset": "USD",
"amount": "1000058",
"decimals": 6,
"symbol": "USD"
},
}
}
}
}