{"name":"Totym","what":"Token-gated communities. A gate decision is made server-side, against the chain, and fails closed.","documentation":"https://www.totym.io/developers","proof":"https://www.totym.io/proof","status":"https://www.totym.io/api/health","sdk":{"package":"@totym/sdk","repository":"https://github.com/useTotym/TotymSDK"},"corsOpenCount":6,"endpoints":[{"path":"/api/sdk/challenge","chains":"Solana · EVM","returns":"A single-use nonce and the exact message to sign","cors":true,"params":[{"name":"POST body","required":true,"what":"address and chain"}],"example":"https://www.totym.io/api/sdk/challenge"},{"path":"/api/sdk/session","chains":"Solana · EVM","returns":"A short-lived token, in exchange for a signature over the challenge","cors":true,"params":[{"name":"POST body","required":true,"what":"address, chain, signature, nonce"}],"example":"https://www.totym.io/api/sdk/session"},{"path":"/api/sdk/access","chains":"Solana · EVM","returns":"A verified access decision — allow, deny or unknown","cors":true,"params":[{"name":"Authorization","required":true,"what":"Bearer <session token>"}],"example":"https://www.totym.io/api/sdk/access","caution":"No wallet parameter exists on this route. The token proves the address, which is the difference between this and the lookups below."},{"path":"/api/check-access","chains":"Solana","returns":"The balance an address holds of a mint, and whether it clears a minimum","cors":true,"params":[{"name":"wallet","required":true,"what":"the address to look up"},{"name":"mint","required":true,"what":"the token mint"},{"name":"minimum","required":false,"what":"the balance to compare against"},{"name":"network","required":false,"what":"mainnet (default) or devnet"},{"name":"gate_type","required":false,"what":"token (default) or nft"}],"example":"https://www.totym.io/api/check-access?wallet=6J8eyphbPTvvUtswqbcfxSdZJF88pbWFoeYmYcN7pD4c&mint=So11111111111111111111111111111111111111112&minimum=0","caution":"Answers about an address the CALLER supplied, so every response carries verified: false. Gating on it opens the door for anyone who pastes a whale's address. Use /api/sdk/access for a decision."},{"path":"/api/check-access-evm","chains":"Ethereum · Base · Robinhood Chain","returns":"The same, for EVM chains","cors":true,"params":[{"name":"wallet","required":true,"what":"the address to look up"},{"name":"contract","required":true,"what":"the token contract"},{"name":"chain_id","required":true,"what":"1, 8453 or 4663"},{"name":"gate_type","required":false,"what":"erc20 (default) or erc721"},{"name":"minimum","required":false,"what":"the balance to compare against"}],"example":"https://www.totym.io/api/check-access-evm?wallet=0x6262032b8a6f82d7c63897bc44288f76753f8442&contract=0x4200000000000000000000000000000000000006&chain_id=8453&gate_type=erc20&minimum=0","caution":"Same verified: false caveat as the Solana lookup."},{"path":"/api/token-metadata","chains":"Solana","returns":"Name, symbol, logo and supply for a mint","cors":true,"params":[{"name":"mint","required":true,"what":"the token mint"},{"name":"network","required":false,"what":"mainnet (default) or devnet"}],"example":"https://www.totym.io/api/token-metadata?mint=So11111111111111111111111111111111111111112"},{"path":"/api/token-metadata-evm","chains":"Ethereum · Base · Robinhood Chain","returns":"The same, for an ERC-20 or ERC-721 contract","cors":true,"params":[{"name":"contract","required":true,"what":"the token contract"},{"name":"chain_id","required":true,"what":"1, 8453 or 4663"}],"example":"https://www.totym.io/api/token-metadata-evm?contract=0x4200000000000000000000000000000000000006&chain_id=8453"},{"path":"/api/holder-count","chains":"Solana","returns":"How many addresses hold a mint","cors":true,"params":[{"name":"mint","required":true,"what":"the token mint"},{"name":"network","required":false,"what":"mainnet (default) or devnet"}],"example":"https://www.totym.io/api/holder-count?mint=So11111111111111111111111111111111111111112"},{"path":"/api/profile","chains":"Solana · EVM","returns":"A wallet's Totym profile, with ENS and .sol names where they resolve","cors":true,"params":[{"name":"wallet","required":true,"what":"the address to look up"}],"example":"https://www.totym.io/api/profile?wallet=6J8eyphbPTvvUtswqbcfxSdZJF88pbWFoeYmYcN7pD4c"},{"path":"/api/communities","chains":"Solana · EVM","returns":"Published communities, with each one's gate, chain and token","cors":false,"params":[{"name":"limit","required":false,"what":"how many rows, default 24"},{"name":"offset","required":false,"what":"where to start, default 0"},{"name":"search","required":false,"what":"matches name, slug or symbol"},{"name":"sort","required":false,"what":"newest (default)"},{"name":"network","required":false,"what":"all (default), mainnet or devnet"},{"name":"is_claimed","required":false,"what":"true to exclude unclaimed listings"}],"example":"https://www.totym.io/api/communities?limit=10"},{"path":"/api/communities/count","chains":null,"returns":"Population counts — published, paused, unclaimed listings, test, archived, total rows, and memberships","cors":false,"params":[],"example":"https://www.totym.io/api/communities/count","caution":"The populations are named, not partitioned — a devnet row can also be archived — so they deliberately do not sum to rows."},{"path":"/api/health","chains":null,"returns":"Every dependency with its state, latency and what breaks without it. No provider text reaches the caller.","cors":false,"params":[],"example":"https://www.totym.io/api/health"}]}