> For the complete documentation index, see [llms.txt](https://developers.ethos.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.ethos.network/api-documentation/api-v2/whuffies.md).

# Whuffies

## GET /whuffies/auction-allocation

> A profile’s WHUF auction allocation and referral rewards

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/auction-allocation":{"get":{"operationId":"whuffies-auctionAllocation","summary":"A profile’s WHUF auction allocation and referral rewards","tags":["whuffies"],"parameters":[{"in":"query","name":"profileId","schema":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"purchaseBase":{"type":"integer","format":"int64"},"xpBonusBase":{"type":"integer","format":"int64"},"validatorBonusBase":{"type":"integer","format":"int64"},"referralBonusBase":{"type":"integer","format":"int64"},"bonusTotalBase":{"type":"integer","format":"int64"},"totalBase":{"type":"integer","format":"int64"},"purchaseTxHash":{"anyOf":[{"type":"string","description":"0x-prefixed 32-byte transaction hash (keccak256)"},{"type":"null"}]},"bonusTxHash":{"anyOf":[{"type":"string","description":"0x-prefixed 32-byte transaction hash (keccak256)"},{"type":"null"}]},"referrals":{"type":"array","items":{"type":"object","properties":{"exclusion":{"anyOf":[{"type":"string","enum":["BELOW_SCORE_FLOOR","RECORDED_AFTER_CLOSE","REFERRED_DID_NOT_CLEAR","REFERRER_DID_NOT_CLEAR","REFERRER_EXCLUDED","SELF_REFERRAL"]},{"type":"null"}]},"user":{"anyOf":[{"type":"object","properties":{"id":{"type":"number"},"profileId":{"anyOf":[{"type":"number"},{"type":"null"}]},"displayName":{"type":"string"},"username":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"type":"string","format":"uri"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"score":{"type":"number"},"status":{"type":"string","enum":["ACTIVE","INACTIVE","MERGED"]},"userkeys":{"type":"array","items":{"type":"string"}},"xpTotal":{"type":"number"},"xpStreakDays":{"type":"number"},"xpRemovedDueToAbuse":{"type":"boolean"},"influenceFactor":{"type":"number"},"influenceFactorPercentile":{"type":"number"},"humanVerificationStatus":{"anyOf":[{"type":"string","enum":["REQUESTED","VERIFIED","REVOKED","PENDING"]},{"type":"null"}]},"validatorNftCount":{"type":"number"},"links":{"type":"object","properties":{"profile":{"type":"string","format":"uri"},"scoreBreakdown":{"type":"string","format":"uri"}},"required":["profile","scoreBreakdown"],"additionalProperties":false},"stats":{"type":"object","properties":{"holdingsWei":{"anyOf":[{"type":"integer","format":"int64"},{"type":"null"}],"description":"Total WHUF held across the user’s addresses, in wei. Null: never computed, or last recomputed while the user held no addresses — distinct from a computed balance of 0."},"review":{"type":"object","properties":{"received":{"type":"object","properties":{"negative":{"type":"number"},"neutral":{"type":"number"},"positive":{"type":"number"}},"required":["negative","neutral","positive"],"additionalProperties":false}},"required":["received"],"additionalProperties":false},"vouch":{"type":"object","properties":{"given":{"type":"object","properties":{"amountWeiTotal":{"type":"integer","format":"int64"},"count":{"type":"number"}},"required":["amountWeiTotal","count"],"additionalProperties":false},"received":{"type":"object","properties":{"amountWeiTotal":{"type":"integer","format":"int64"},"count":{"type":"number"}},"required":["amountWeiTotal","count"],"additionalProperties":false}},"required":["given","received"],"additionalProperties":false,"description":"@deprecated Native-currency lifetime totals only. Use stats.vouchTotals (per-token). Removed after 2026-10-20."},"vouchTotals":{"minItems":1,"type":"array","items":{"type":"object","properties":{"balance":{"type":"object","properties":{"given":{"type":"integer","format":"int64"},"received":{"type":"integer","format":"int64"}},"required":["given","received"],"additionalProperties":false},"count":{"type":"object","properties":{"given":{"type":"integer","minimum":0,"maximum":9007199254740991},"received":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["given","received"],"additionalProperties":false},"token":{"type":"object","properties":{"address":{"anyOf":[{"type":"string","description":"Ethereum address (0x-prefixed, 20 bytes)"},{"type":"null"}]},"decimals":{"type":"integer","minimum":0,"maximum":9007199254740991},"id":{"type":"string","enum":["eth","whuf"],"description":"Lowercase token identifier"}},"required":["address","decimals","id"],"additionalProperties":false}},"required":["balance","count","token"],"additionalProperties":false}},"whufGuarantee":{"anyOf":[{"type":"object","properties":{"asOf":{"type":"string"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"guaranteedWei":{"type":"integer","format":"int64"},"status":{"type":"string","enum":["active","enrolling","expired"]}},"required":["asOf","expiresAt","guaranteedWei","status"],"additionalProperties":false},{"type":"null"}],"description":"The profile’s WHUF price guarantee, summed across its wallets. Null when the profile holds no guarantee account, whether because the accounting has not reached it yet or because it was not eligible; the price-guarantee endpoint tells those apart. Enrolling coverage is provisional until the token unlocks and fixes it. asOf is when the accounting last changed this profile’s coverage or enrollment — not when it last ran."}},"required":["holdingsWei","review","vouch","vouchTotals","whufGuarantee"],"additionalProperties":false}},"required":["id","profileId","displayName","username","avatarUrl","description","score","status","userkeys","xpTotal","xpStreakDays","xpRemovedDueToAbuse","influenceFactor","influenceFactorPercentile","validatorNftCount","links","stats"],"additionalProperties":false},{"type":"null"}]},"wallet":{"type":"string","description":"Ethereum address (0x-prefixed, 20 bytes)"},"whufBase":{"type":"integer","format":"int64"}},"required":["exclusion","user","wallet","whufBase"],"additionalProperties":false}}},"required":["purchaseBase","xpBonusBase","validatorBonusBase","referralBonusBase","bonusTotalBase","totalBase","purchaseTxHash","bonusTxHash","referrals"],"additionalProperties":false},{"type":"null"}]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## GET /whuffies/balance/{address}

> Get WHUF balance for an address

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/balance/{address}":{"get":{"operationId":"whuffies-balance","summary":"Get WHUF balance for an address","tags":["whuffies"],"parameters":[{"in":"path","name":"address","schema":{"type":"string","description":"Ethereum address (0x-prefixed, 20 bytes)"},"required":true,"description":"Ethereum address (0x-prefixed, 20 bytes)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"integer","format":"int64"}},"required":["balance"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## Get WHUF circulating supply

> Total supply less every wallet held out of circulation, as an exact decimal token amount. Add \`?format=plain\` for the bare number as text/plain. The excluded wallets and the formula are published at <https://whitepaper.ethos.network>.

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/circulating-supply":{"get":{"operationId":"whuffies-circulatingSupply","summary":"Get WHUF circulating supply","description":"Total supply less every wallet held out of circulation, as an exact decimal token amount. Add `?format=plain` for the bare number as text/plain. The excluded wallets and the formula are published at https://whitepaper.ethos.network.","tags":["whuffies"],"parameters":[{"in":"query","name":"format","schema":{"type":"string","enum":["plain"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}},"required":["result"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## Get a profile’s WHUF price guarantee

> The amount of WHUF purchased in the auction that is eligible for the 85% guarantee. This amount must remain continuously vouched during the guarantee period to maintain the guarantee.

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/price-guarantee":{"get":{"operationId":"whuffies-priceGuarantee","summary":"Get a profile’s WHUF price guarantee","description":"The amount of WHUF purchased in the auction that is eligible for the 85% guarantee. This amount must remain continuously vouched during the guarantee period to maintain the guarantee.","tags":["whuffies"],"parameters":[{"in":"query","name":"profileId","schema":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"anyOf":[{"type":"string"},{"type":"null"}]},"asOfBlock":{"anyOf":[{"type":"integer","format":"int64"},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"guaranteedWei":{"anyOf":[{"type":"integer","format":"int64"},{"type":"null"}]},"initialGuaranteedWei":{"anyOf":[{"type":"integer","format":"int64"},{"type":"null"}]},"payoutTxHashes":{"type":"array","items":{"type":"string","description":"0x-prefixed 32-byte transaction hash (keccak256)"}},"purchasedWei":{"anyOf":[{"type":"integer","format":"int64"},{"type":"null"}]},"status":{"type":"string","enum":["active","enrolling","expired","not_eligible","pending"]},"unlockedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"vouchedWei":{"anyOf":[{"type":"integer","format":"int64"},{"type":"null"}]}},"required":["asOf","asOfBlock","expiresAt","guaranteedWei","initialGuaranteedWei","payoutTxHashes","purchasedWei","status","unlockedAt","vouchedWei"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## Get the current WHUF reward rate and pool state

> The contract’s current reward rate in basis points (rewardRateBps) with the pool-wide accounting behind it, read at one block and cached for 60 seconds.

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/reward-pool":{"get":{"operationId":"whuffies-rewardPoolState","summary":"Get the current WHUF reward rate and pool state","description":"The contract’s current reward rate in basis points (rewardRateBps) with the pool-wide accounting behind it, read at one block and cached for 60 seconds.","tags":["whuffies"],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"accountedRewardBalance":{"type":"integer","format":"int64"},"blockNumber":{"type":"integer","format":"int64"},"emissionRateBps":{"type":"integer","minimum":0,"maximum":9007199254740991},"rewardRateBps":{"type":"integer","minimum":0,"maximum":9007199254740991},"timestamp":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalAccruedNotPaid":{"type":"integer","format":"int64"},"totalCommitted":{"type":"integer","format":"int64"}},"required":["accountedRewardBalance","blockNumber","emissionRateBps","rewardRateBps","timestamp","totalAccruedNotPaid","totalCommitted"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## GET /whuffies/token-metadata

> Get WHUF token metadata

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/token-metadata":{"get":{"operationId":"whuffies-tokenMetadata","summary":"Get WHUF token metadata","tags":["whuffies"],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"decimals":{"type":"integer","minimum":0,"maximum":9007199254740991},"name":{"type":"string"},"symbol":{"type":"string"}},"required":["decimals","name","symbol"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## GET /whuffies/token-sale-state

> Get the current phase of the WHUF token sale

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/token-sale-state":{"get":{"operationId":"whuffies-tokenSaleState","summary":"Get the current phase of the WHUF token sale","tags":["whuffies"],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"phase":{"type":"string","const":"pre-distribution"}},"required":["phase"],"additionalProperties":false},{"type":"object","properties":{"phase":{"type":"string","const":"price-guarantee-window"},"projectedEndsAt":{"type":"string"}},"required":["phase","projectedEndsAt"],"additionalProperties":false},{"type":"object","properties":{"phase":{"type":"string","const":"post-unlock"},"unlockedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["phase","unlockedAt"],"additionalProperties":false}],"type":"object"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```

## Get WHUF total supply

> Every WHUF in existence, as an exact decimal token amount. Add \`?format=plain\` for the bare number as text/plain. The formula is published at <https://whitepaper.ethos.network>.

```json
{"openapi":"3.1.0","info":{"title":"Ethos API","version":"v2"},"tags":[{"name":"whuffies"}],"servers":[{"url":"https://api.ethos.network/api/v2"}],"paths":{"/whuffies/total-supply":{"get":{"operationId":"whuffies-totalSupply","summary":"Get WHUF total supply","description":"Every WHUF in existence, as an exact decimal token amount. Add `?format=plain` for the bare number as text/plain. The formula is published at https://whitepaper.ethos.network.","tags":["whuffies"],"parameters":[{"in":"query","name":"format","schema":{"type":"string","enum":["plain"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}},"required":["result"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}}}
```
