{"version":1,"pages":[{"id":"XDJFyvtq5X4e1l5EpCba","title":"Welcome to 4thTech","pathname":"/","siteSpaceId":"sitesp_NQ3fQ","icon":"hand-wave","description":"Documentation for 4thTech's products, AgentLink, OCC v1, the 4thTech SDK and white-label apps, and Encryptor.","breadcrumbs":[{"label":"Home"}]},{"id":"n23h8xvPX1lFNFIJlRmQ","title":"The product family","pathname":"/home/product-family","siteSpaceId":"sitesp_NQ3fQ","description":"How OCC v1, the SDK, the white-label apps, Encryptor, OCC v2 and AgentLink relate to each other.","breadcrumbs":[{"label":"Home"}]},{"id":"BgWfg78Ug8rBzGraKuzW","title":"Deployments","pathname":"/home/deployments","siteSpaceId":"sitesp_NQ3fQ","description":"Where 4thTech contracts are deployed, by network, with status, audit state and addresses.","breadcrumbs":[{"label":"Home"}]},{"id":"rM77haXQv8VOw3pPp5ZL","title":"Glossary","pathname":"/home/glossary","siteSpaceId":"sitesp_NQ3fQ","description":"Terms used across the 4thTech documentation, tagged by product.","breadcrumbs":[{"label":"Home"}]},{"id":"ozXVmVdtiRJzn7ib0CKe","title":"News and changelog","pathname":"/home/news","siteSpaceId":"sitesp_NQ3fQ","description":"Releases and milestones across 4thTech products, newest first.","breadcrumbs":[{"label":"Home"}]},{"id":"r081hl9XZjPAUeob03Os","title":"Licences","pathname":"/home/licences","siteSpaceId":"sitesp_NQ3fQ","description":"The licence of each 4thTech product, who grants it and whether commercial use is allowed.","breadcrumbs":[{"label":"Home"}]},{"id":"PDCHii9pBbKwk37lSZ2R","title":"Security and disclosure","pathname":"/home/security","siteSpaceId":"sitesp_NQ3fQ","description":"How to report a security problem in a 4thTech product.","breadcrumbs":[{"label":"Home"}]},{"id":"DLEDOfBqGFNNfiofDU2S","title":"Brand and media","pathname":"/home/brand","siteSpaceId":"sitesp_NQ3fQ","description":"4thTech logos, schematics and documents to download.","breadcrumbs":[{"label":"Home"}]},{"id":"l2zag9URzFfGAA346IIH","title":"Contact and community","pathname":"/home/contact","siteSpaceId":"sitesp_NQ3fQ","description":"Where to find 4thTech, ask questions and report problems.","breadcrumbs":[{"label":"Home"}]},{"id":"hHaiYh9k16wb83r0DbGQ","title":"Overview","pathname":"/occ-v1/occ-v1","siteSpaceId":"sitesp_NQ3fQ","description":"OCC v1 is the first-generation 4thTech protocol for on-chain communication between wallets.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"LfVLkzOiZOusFN4OPxsH","title":"Core concepts","pathname":"/occ-v1/core-concepts","siteSpaceId":"sitesp_NQ3fQ","description":"The few ideas that explain OCC v1: one exchange is one record, identity is an account, and your keys decide who can read.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"0tcS4euytHtXmufEaYn6","title":"Architecture","pathname":"/occ-v1/architecture","siteSpaceId":"sitesp_NQ3fQ","description":"OCC v1 is four layers connected by the SDK: protocol contracts, a blockchain, encryption and storage.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"I0SEkY11rZzeW30gfDQi","title":"Blockchain layer","pathname":"/occ-v1/blockchain","siteSpaceId":"sitesp_NQ3fQ","description":"OCC v1 uses a blockchain as the network that keeps a tamper-evident record of each exchange.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"5vo6qZGq5IuCrzMvdS4Z","title":"Storage","pathname":"/occ-v1/storage","siteSpaceId":"sitesp_NQ3fQ","description":"Where OCC v1 keeps data: on chain, in remote storage and in the user's local storage.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"zOIJMNVk6sJD6mbBGw2R","title":"Encryption options","pathname":"/occ-v1/encryption","siteSpaceId":"sitesp_NQ3fQ","description":"OCC v1 offers three encryption options: custom, AES with a random key, and AES with a key from ECDH.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"XhLYLkYpHoLycR9gdY4o","title":"Protocol contracts","pathname":"/occ-v1/contracts","siteSpaceId":"sitesp_NQ3fQ","description":"The OCC v1 contracts the SDK uses: mail, chat, user and app fee manager.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"n4pF4ZTk6bNzaa2enaZh","title":"Fees and app registration","pathname":"/occ-v1/fees","siteSpaceId":"sitesp_NQ3fQ","description":"How fees work in OCC v1: a base fee, an app owner fee, and app registration through an app ID.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"pwD0HRPuoICkGWG2gTwZ","title":"Message flows","pathname":"/occ-v1/message-flows","siteSpaceId":"sitesp_NQ3fQ","description":"Step-by-step flows for sending and reading a BlockMail and a BlockChat message on OCC v1.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"YYDMZ8WvjgD70EnOPjyx","title":"Supported networks","pathname":"/occ-v1/networks","siteSpaceId":"sitesp_NQ3fQ","description":"The blockchain networks configured in SDK 0.5.13 for OCC v1, with a link to the deployments page.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"Jo4It63XTZF3vz7FBWrF","title":"Integration paths","pathname":"/occ-v1/integration-paths","siteSpaceId":"sitesp_NQ3fQ","description":"Ways to build on OCC v1: the SDK or the white-label apps, and the two integrator licence levels.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"egQhvdhNW3RsJG6IFfy3","title":"From OCC v1 to OCC v2","pathname":"/occ-v1/occ-v1-to-v2","siteSpaceId":"sitesp_NQ3fQ","description":"What changed between OCC v1 and OCC v2, and what did not carry over.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"mMHQADWrFFv8ijukYzl6","title":"FAQ","pathname":"/occ-v1/faq","siteSpaceId":"sitesp_NQ3fQ","description":"Short answers about OCC v1.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"RN5wVG7hTWsJZMoi1XAV","title":"Status and roadmap","pathname":"/occ-v1/status","siteSpaceId":"sitesp_NQ3fQ","description":"The current status of OCC v1: legacy, reference documentation, with network support to be confirmed.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"qQmfSyXfK1X9qCmJH8X4","title":"Licence","pathname":"/occ-v1/licence","siteSpaceId":"sitesp_NQ3fQ","description":"OCC v1 smart contracts are under EUPL-1.2 with a non-commercial derogation; commercial use needs a separate licence.","breadcrumbs":[{"label":"OCC v1"}]},{"id":"0MaDKAmo3D2qaoDemP1p","title":"Overview","pathname":"/sdk-and-white-label/sdk","siteSpaceId":"sitesp_NQ3fQ","description":"What the 4thTech SDK and the BlockMail & BlockChat white-label apps are, who they are for, and their status.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"bsLTPaEhxmy8UyyB4vph","title":"How the SDK fits together","pathname":"/sdk-and-white-label/how-it-fits","siteSpaceId":"sitesp_NQ3fQ","description":"How the SDK clients, envelopes, app IDs, encryption handler, storage providers and the Encryptor connector fit together.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"GLRNPvib2rSSKNkwZe6D","title":"Get started","pathname":"/sdk-and-white-label/get-started","siteSpaceId":"sitesp_NQ3fQ","description":"Connect your wallet to BlockMail & BlockChat and choose a network.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"ilQkgVSXbGWHeMPEnwfI","title":"Set up encryption","pathname":"/sdk-and-white-label/encryption","siteSpaceId":"sitesp_NQ3fQ","description":"Install and set up the Encryptor extension so the app can send and read encrypted mail and chat.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"znu8YB0eG330i5F0RUZK","title":"Set up storage","pathname":"/sdk-and-white-label/storage","siteSpaceId":"sitesp_NQ3fQ","description":"Connect PollinationX storage so you can send mail with attachments.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"FcEqgBtBX4KvOv1brEDq","title":"Send and read mail","pathname":"/sdk-and-white-label/mail","siteSpaceId":"sitesp_NQ3fQ","description":"Write, send, read, reply to and delete mail in BlockMail.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"hDquJUkaUx5llI2BvGco","title":"Choose who can mail you","pathname":"/sdk-and-white-label/whitelist","siteSpaceId":"sitesp_NQ3fQ","description":"Whitelist the accounts you want to receive mail from.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"M5LmeF9mg4aIrJvVer7j","title":"Chat","pathname":"/sdk-and-white-label/chat","siteSpaceId":"sitesp_NQ3fQ","description":"Start one-to-one and group conversations in BlockChat, add members and send messages.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"S9hUqFDkXwKGNAFtkBLZ","title":"Settings and themes","pathname":"/sdk-and-white-label/settings","siteSpaceId":"sitesp_NQ3fQ","description":"The Settings page and the light and dark themes in BlockMail & BlockChat.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"OJnWimSq8WxG1dv0xe0h","title":"Fork, configure and run locally","pathname":"/sdk-and-white-label/run-locally","siteSpaceId":"sitesp_NQ3fQ","description":"Fork the white-label app, set its environment values and run it on your own computer.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"CkzfmSvdA30Nd8UixCPw","title":"Brand it","pathname":"/sdk-and-white-label/branding","siteSpaceId":"sitesp_NQ3fQ","description":"Change the title, links, navigation and look of the white-label app using app.config.ts and the theme.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"hkhjWdq4rxcW30KSHTlc","title":"Build and deploy","pathname":"/sdk-and-white-label/deploy","siteSpaceId":"sitesp_NQ3fQ","description":"Build the white-label app for production and preview it locally before you deploy.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"vBIomdonurPcNeUYtlzg","title":"SDK quickstart","pathname":"/sdk-and-white-label/quickstart","siteSpaceId":"sitesp_NQ3fQ","description":"Send your first encrypted mail with the 4thTech SDK 0.5.x: build the clients, listen for new mail, send.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"aAPiq25VCspKEdbBnwxR","title":"SDK architecture","pathname":"/sdk-and-white-label/architecture","siteSpaceId":"sitesp_NQ3fQ","description":"How the SDK packages, the white-label app and a typical integration are put together.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"AI42mJXiGUx1PQMbz5Up","title":"Ethereum","pathname":"/sdk-and-white-label/ethereum","siteSpaceId":"sitesp_NQ3fQ","description":"Documentation for the @4thtech-sdk/ethereum package","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"EynchWBERgCw2WMY0OzP","title":"Mail","pathname":"/sdk-and-white-label/ethereum/mail","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"}]},{"id":"OE2twrr66WvI59o7Ke8U","title":"send","pathname":"/sdk-and-white-label/ethereum/mail/send","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"Nt8E0hP1iEuI6izD6N2v","title":"setOpenedAt","pathname":"/sdk-and-white-label/ethereum/mail/setopenedat","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"clgzDZ7775HLnsQEhxuU","title":"deleteMail","pathname":"/sdk-and-white-label/ethereum/mail/deletemail","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"2iUe5fGnuyAXSYcIMibC","title":"deleteMails","pathname":"/sdk-and-white-label/ethereum/mail/deletemails","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"tDh23STRCZZtMOgI4qDB","title":"fetch","pathname":"/sdk-and-white-label/ethereum/mail/fetch","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"E3YStaO8bpU0a6JRjloW","title":"fetchAll","pathname":"/sdk-and-white-label/ethereum/mail/fetchall","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"yMQa0SzB4MmYKmnw2I5C","title":"fetchPaginated","pathname":"/sdk-and-white-label/ethereum/mail/fetchpaginated","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"A2UI6QEp154bFQFRuMnI","title":"fetchByTransactionHash","pathname":"/sdk-and-white-label/ethereum/mail/fetchbytransactionhash","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"R9UxkHVTSgnD056J4Sxt","title":"count","pathname":"/sdk-and-white-label/ethereum/mail/count","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"fSZYrmtSf0XzyhkRSKPf","title":"getUserAppIds","pathname":"/sdk-and-white-label/ethereum/mail/getuserappids","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"teRGvxm7GcFl9R4YyzhB","title":"downloadAttachment","pathname":"/sdk-and-white-label/ethereum/mail/downloadattachment","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"xs34pAKp4SdrS4AxWhl1","title":"onNew","pathname":"/sdk-and-white-label/ethereum/mail/onnew","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"zuzgi2u1LN3LnPd0LfL8","title":"onOpened","pathname":"/sdk-and-white-label/ethereum/mail/onopened","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"jUglFJs4rY26MiONYSSK","title":"onDeleted","pathname":"/sdk-and-white-label/ethereum/mail/ondeleted","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Mail"}]},{"id":"nQSgQHkf0a6iY54371AV","title":"Chat","pathname":"/sdk-and-white-label/ethereum/chat","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"}]},{"id":"OQU2VWOlQ7NrL7CINqJK","title":"sendMessage","pathname":"/sdk-and-white-label/ethereum/chat/sendmessage","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"S93UobkGPgCYtPpdMIVx","title":"addMessageToConversation","pathname":"/sdk-and-white-label/ethereum/chat/addmessagetoconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"HTV9gWfkxjWgBLYuxNO4","title":"deleteMessage","pathname":"/sdk-and-white-label/ethereum/chat/deletemessage","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"4ehHjDxY23DuZKrkzoKs","title":"createGroupConversation","pathname":"/sdk-and-white-label/ethereum/chat/creategroupconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"h8Y5mWRct3BLFUB4jSsS","title":"removeConversation","pathname":"/sdk-and-white-label/ethereum/chat/removeconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"JdjXb7NYp7FgHIAJ19sw","title":"addMembersToGroupConversation","pathname":"/sdk-and-white-label/ethereum/chat/addmemberstogroupconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"woBavmmEd5gMSsUrCnzK","title":"removeMemberFromGroupConversation","pathname":"/sdk-and-white-label/ethereum/chat/removememberfromgroupconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"YoegaU6EvyuimdxOadj8","title":"removeMembersFromGroupConversation","pathname":"/sdk-and-white-label/ethereum/chat/removemembersfromgroupconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"FqDqL2pze5l3NqyAhta2","title":"calculateConversationHash","pathname":"/sdk-and-white-label/ethereum/chat/calculateconversationhash","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"Bd4oVqGA8rHXv810LUJa","title":"countMessages","pathname":"/sdk-and-white-label/ethereum/chat/countmessages","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"PN6aVw23sKLFmXZQxtD7","title":"fetchConversationHashes","pathname":"/sdk-and-white-label/ethereum/chat/fetchconversationhashes","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"5reCMRT8czQX3Zwndi3K","title":"fetchConversation","pathname":"/sdk-and-white-label/ethereum/chat/fetchconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"60lU2RWtkAFl9InxdCWS","title":"fetchConversations","pathname":"/sdk-and-white-label/ethereum/chat/fetchconversations","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"7dNVzHQ74vsxAqtPESqA","title":"fetchConversationMessagesPaginated","pathname":"/sdk-and-white-label/ethereum/chat/fetchconversationmessagespaginated","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"hAWfJeCWzeBa2d5N53B7","title":"getUserAppIds","pathname":"/sdk-and-white-label/ethereum/chat/getuserappids","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"1ifCxO1MyxAvbjSB2U7A","title":"onMessageSent","pathname":"/sdk-and-white-label/ethereum/chat/onmessagesent","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"b3Be0BxyJ07nFfudiG15","title":"onMessageDeleted","pathname":"/sdk-and-white-label/ethereum/chat/onmessagedeleted","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"xsCChBClbF0aBkxIA9TC","title":"onGroupConversationCreated","pathname":"/sdk-and-white-label/ethereum/chat/ongroupconversationcreated","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"Em5aX5dgLdYCjI2BqGbi","title":"onConversationRemoved","pathname":"/sdk-and-white-label/ethereum/chat/onconversationremoved","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"NrqobJPDy23GesOatAGp","title":"onMemberAddedToConversation","pathname":"/sdk-and-white-label/ethereum/chat/onmemberaddedtoconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"PUdsPRUGM0mzyZMkiOB0","title":"onMemberRemovedFromConversation","pathname":"/sdk-and-white-label/ethereum/chat/onmemberremovedfromconversation","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Chat"}]},{"id":"MtjjlXpRRQJDDq2mCxkF","title":"Encryptor","pathname":"/sdk-and-white-label/ethereum/encryptor","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"}]},{"id":"H9CgTimcybZMU9qGNgdA","title":"isUserAddressInitialized","pathname":"/sdk-and-white-label/ethereum/encryptor/isuseraddressinitialized","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"CxQMn8XJBow1k0mFL0S4","title":"retrieveUserPublicKey","pathname":"/sdk-and-white-label/ethereum/encryptor/retrieveuserpublickey","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"Ofych8izcowJDLa4Uly0","title":"storePublicKey","pathname":"/sdk-and-white-label/ethereum/encryptor/storepublickey","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"Cbp0foGZ6XgzJXKvsthh","title":"getState","pathname":"/sdk-and-white-label/ethereum/encryptor/getstate","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"pncqa2PfpqZgUt8UZzuz","title":"getPublicKey","pathname":"/sdk-and-white-label/ethereum/encryptor/getpublickey","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"1mo23NaXgAipNoyIXr83","title":"getPublicKeyType","pathname":"/sdk-and-white-label/ethereum/encryptor/getpublickeytype","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"KN5bUGmwK9VLZQwAk8VQ","title":"computeSharedSecretKey","pathname":"/sdk-and-white-label/ethereum/encryptor/computesharedsecretkey","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"},{"label":"Encryptor"}]},{"id":"njvpOtW8ewfaWh1pPf2d","title":"Fee collector","pathname":"/sdk-and-white-label/ethereum/fee-collector","siteSpaceId":"sitesp_NQ3fQ","description":"How app fees are handled by the Mail and Chat clients in SDK 0.5.x.","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Ethereum"}]},{"id":"z1zNpwolWntgH2dYSEkI","title":"Encryption","pathname":"/sdk-and-white-label/encryption-1","siteSpaceId":"sitesp_NQ3fQ","description":"Documentation for the @4thtech-sdk/encryption package","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"rEOB4tbz0PbhNLDNEKyt","title":"EncryptionHandler","pathname":"/sdk-and-white-label/encryption-1/encryption-handler","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"}]},{"id":"KFgBjCZXR2WsWHGG2vgd","title":"addEncryptionInstance","pathname":"/sdk-and-white-label/encryption-1/encryption-handler/addencryptioninstance","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"},{"label":"EncryptionHandler"}]},{"id":"pCButbf8VSm9HZ9CUiBi","title":"encrypt","pathname":"/sdk-and-white-label/encryption-1/encryption-handler/encrypt","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"},{"label":"EncryptionHandler"}]},{"id":"CCdDssP85EFsZTi4YeWe","title":"decrypt","pathname":"/sdk-and-white-label/encryption-1/encryption-handler/decrypt","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"},{"label":"EncryptionHandler"}]},{"id":"Oz5c95N8gyrxns7FPTxn","title":"getEncryption","pathname":"/sdk-and-white-label/encryption-1/encryption-handler/getencryption","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"},{"label":"EncryptionHandler"}]},{"id":"jkDneBAbK9E21cTTbxyN","title":"AES Encryption","pathname":"/sdk-and-white-label/encryption-1/aes-encryption","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"}]},{"id":"hMv0jBQVMGD7Hw1lINEe","title":"Encryptor AES Encryption","pathname":"/sdk-and-white-label/encryption-1/encryptor-aes-encryption","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryption"}]},{"id":"QWnIIm2URiOMb3IKbfo0","title":"Encryptor","pathname":"/sdk-and-white-label/encryptor","siteSpaceId":"sitesp_NQ3fQ","description":"Documentation for the @4thtech-sdk/encryptor package","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"aLo0TSbgzE5CNkMfPtTl","title":"isInstalled","pathname":"/sdk-and-white-label/encryptor/isinstalled","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"NkzvoZnfbz9eg4kv5rvW","title":"isInitialized","pathname":"/sdk-and-white-label/encryptor/isinitialized","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"AoSgdHXTZOh3poyvGA96","title":"isLocked","pathname":"/sdk-and-white-label/encryptor/islocked","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"qVUL9sv1mzPgVHrq6Umv","title":"isUnlocked","pathname":"/sdk-and-white-label/encryptor/isunlocked","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"PUjGG3MxBlm6DrhCHAhq","title":"getState","pathname":"/sdk-and-white-label/encryptor/getstate","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"Xbe9TXjNNyHMOZtcv81W","title":"getPublicKey","pathname":"/sdk-and-white-label/encryptor/getpublickey","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"GOw95j7TjXnhPnpMwZnH","title":"getPublicKeyType","pathname":"/sdk-and-white-label/encryptor/getpublickeytype","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"cRiix6eFGVVQn5zRirT8","title":"computeSharedSecretKey","pathname":"/sdk-and-white-label/encryptor/computesharedsecretkey","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Encryptor"}]},{"id":"MMn1YPztWtUvY0iyEcHT","title":"Storage","pathname":"/sdk-and-white-label/storage-1","siteSpaceId":"sitesp_NQ3fQ","description":"Documentation for the @4thtech-sdk/storage package","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"8bzHwTwxHjg1k6fulKbL","title":"Remote Storage Provider","pathname":"/sdk-and-white-label/storage-1/remote-storage-provider","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"}]},{"id":"zqI9xbz220A7whHxWpuS","title":"upload","pathname":"/sdk-and-white-label/storage-1/remote-storage-provider/upload","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"},{"label":"Remote Storage Provider"}]},{"id":"b3c8xaESiHxHmAfW267w","title":"download","pathname":"/sdk-and-white-label/storage-1/remote-storage-provider/download","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"},{"label":"Remote Storage Provider"}]},{"id":"3EH7s6wopIgZhzIWubAc","title":"onUploadProgress","pathname":"/sdk-and-white-label/storage-1/remote-storage-provider/onuploadprogress","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"},{"label":"Remote Storage Provider"}]},{"id":"UyRkvxJNUDx1QtgPTDu1","title":"offUploadProgress","pathname":"/sdk-and-white-label/storage-1/remote-storage-provider/offuploadprogress","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"},{"label":"Remote Storage Provider"}]},{"id":"x67PGc5RLFOLO8HH7MkI","title":"emitUploadProgress","pathname":"/sdk-and-white-label/storage-1/remote-storage-provider/emituploadprogress","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"},{"label":"Remote Storage Provider"}]},{"id":"nNrdlFCOG4i8FhhS7bex","title":"PollinationX Storage Provider","pathname":"/sdk-and-white-label/storage-1/pollination-x","siteSpaceId":"sitesp_NQ3fQ","description":"","breadcrumbs":[{"label":"SDK & White-label"},{"label":"Storage"}]},{"id":"m2zlVhhkkC4ZY2wIK8cU","title":"Types","pathname":"/sdk-and-white-label/types","siteSpaceId":"sitesp_NQ3fQ","description":"Documentation for the @4thtech-sdk/types package","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"pQVYtWWmfEfdXIiZHorw","title":"Utils","pathname":"/sdk-and-white-label/utils","siteSpaceId":"sitesp_NQ3fQ","description":"Helper functions exported by the @4thtech-sdk/utils package.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"1ULDluaglCnuIykCU9DD","title":"Supported networks","pathname":"/sdk-and-white-label/networks","siteSpaceId":"sitesp_NQ3fQ","description":"The 12 networks supported by SDK 0.5.13 and the white-label apps, by name and chain ID.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"wqMeTqM2Fi7xCvE39Shm","title":"FAQ","pathname":"/sdk-and-white-label/faq","siteSpaceId":"sitesp_NQ3fQ","description":"Answers to common questions about the 4thTech SDK and the BlockMail & BlockChat white-label apps.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"8J859kBqmZS8vyAgaqLD","title":"Status","pathname":"/sdk-and-white-label/status","siteSpaceId":"sitesp_NQ3fQ","description":"Status, package versions and maintenance policy of the 4thTech SDK and the white-label apps.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"HCCPF0qGHRkCTvPLUOys","title":"Licence","pathname":"/sdk-and-white-label/licence","siteSpaceId":"sitesp_NQ3fQ","description":"The licence of the 4thTech SDK and the white-label apps, in plain words.","breadcrumbs":[{"label":"SDK & White-label"}]},{"id":"YTmv3ipLwLp2Pidee3J0","title":"Overview","pathname":"/encryptor/encryptor","siteSpaceId":"sitesp_NQ3fQ","description":"Encryptor is a Chrome extension that holds an encryption key for Web3 apps, which wallets do not provide.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"QeE3Or3wuXSqDTixDVzP","title":"How Encryptor works","pathname":"/encryptor/how-it-works","siteSpaceId":"sitesp_NQ3fQ","description":"How Encryptor holds your encryption key and lets apps compute shared secrets with it.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"8N0our1w16hHWXZNkCew","title":"Install Encryptor","pathname":"/encryptor/install","siteSpaceId":"sitesp_NQ3fQ","description":"Install the Encryptor extension from the Chrome Web Store.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"fCCkrCapRemqcBmQIsMt","title":"Create your key","pathname":"/encryptor/create","siteSpaceId":"sitesp_NQ3fQ","description":"Create a new Encryptor key, protect it with a password and write down the recovery phrase.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"cf9RSUHURntcHIwwDB9q","title":"Restore your key","pathname":"/encryptor/restore","siteSpaceId":"sitesp_NQ3fQ","description":"Restore an Encryptor key from your recovery phrase, for example in a new browser.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"8HX9JDmJvNe3TSm9PaEm","title":"Lock and unlock","pathname":"/encryptor/lock-unlock","siteSpaceId":"sitesp_NQ3fQ","description":"Lock Encryptor with Logout and unlock it with your password.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"sE0A1P33MVoww2lCp6fQ","title":"Use Encryptor with an app","pathname":"/encryptor/use-with-apps","siteSpaceId":"sitesp_NQ3fQ","description":"Use Encryptor with BlockMail & BlockChat: set up, unlock and register your public key.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"tIDDT2ISTD4j7hTTJ7pV","title":"Troubleshooting","pathname":"/encryptor/troubleshooting","siteSpaceId":"sitesp_NQ3fQ","description":"Fixes for common Encryptor problems: not detected, locked, wrong password, invalid phrase.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"OsOO6xKvQ18V9c2S6Irf","title":"Architecture and data flow","pathname":"/encryptor/architecture","siteSpaceId":"sitesp_NQ3fQ","description":"How the Encryptor extension is built: popup, background service worker, storage and permissions.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"iF2dJ8bDbcpP91xsaK2s","title":"App integration API","pathname":"/encryptor/integration-api","siteSpaceId":"sitesp_NQ3fQ","description":"How an app talks to Encryptor: the four requests, the two events and the SDK connector.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"wRJz6JL7GogtHnrAZho9","title":"Security notes","pathname":"/encryptor/security","siteSpaceId":"sitesp_NQ3fQ","description":"What Encryptor stores, where, how it is protected and what each permission is used for.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"IJDmGECtuc6sM5UkFwKH","title":"Build from source","pathname":"/encryptor/build","siteSpaceId":"sitesp_NQ3fQ","description":"Build the Encryptor extension from source and load it in Chrome.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"zFf4KoRFz34aKJ4u8GHo","title":"FAQ","pathname":"/encryptor/faq","siteSpaceId":"sitesp_NQ3fQ","description":"Short answers about Encryptor.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"BQDx6DjjUPT5xwSQKQPy","title":"Status and changelog","pathname":"/encryptor/status","siteSpaceId":"sitesp_NQ3fQ","description":"Version, dates and change history of Encryptor.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"ejpHUWwG00I7aUVvFCiB","title":"Licence","pathname":"/encryptor/licence","siteSpaceId":"sitesp_NQ3fQ","description":"Licence summary for the Encryptor extension.","breadcrumbs":[{"label":"Encryptor"}]},{"id":"9n5S15Y3FdnsZg8pSZP8","title":"AgentLink by 4thTech","pathname":"/agentlink/agentlink","siteSpaceId":"sitesp_NQ3fQ","description":"AgentLink by 4thTech lets AI agents exchange messages and files privately and keep proof. Version 0.1.0 is released.","breadcrumbs":[{"label":"AgentLink"}]},{"id":"EwHr7Ui6vPSiftFfLhhF","title":"Get started","pathname":"/agentlink/get-started","siteSpaceId":"sitesp_NQ3fQ","description":"Install AgentLink v0.1.0 in Claude Code, Codex, Gemini CLI, OpenCode or Antigravity, protect your approvals and pair with another agent.","breadcrumbs":[{"label":"AgentLink"}]},{"id":"qTmTJRB1C7EAypiWDLLK","title":"Status and roadmap","pathname":"/agentlink/status","siteSpaceId":"sitesp_NQ3fQ","description":"What exists of AgentLink today and what comes next, as of 16 Oct 2026 (v0.1.0 released).","breadcrumbs":[{"label":"AgentLink"}]}]}