Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Seal

Seal is a decentralized secrets management (DSM) service that relies on access control policies defined and validated on [Sui](https://docs.sui.io/concepts/components). Application developers and users can use Seal to secure sensitive data at rest on decentralized storage like [Walrus](https://docs.walrus.site/index.html), or on any other onchain / offchain storage.
Seal is a decentralized secrets management (DSM) service that relies on access control policies defined and validated on [Sui](https://docs.sui.io/concepts/components). Application developers and users can use Seal to secure sensitive data at rest on decentralized storage like [Walrus](https://docs.wal.app/), or on any other onchain / offchain storage.

> [!IMPORTANT]
> Seal Beta is in Testnet. Refer to the [Seal Beta Terms of Service](TermsOfService.md).
Expand All @@ -19,8 +19,8 @@ Seal is a decentralized secrets management (DSM) service that relies on access c

There are a number of Web3 use cases that could utilize Seal to secure sensitive data in a safe and scalable manner. Some of those are:

- Secure personal data on [Walrus](https://docs.walrus.site/index.html) or some other storage, such that it’s only accessible by the user who uploaded it.
- Share secure content stored on [Walrus](https://docs.walrus.site/index.html) or some other storage with a specific allowlist of users.
- Secure personal data on [Walrus](https://docs.wal.app/) or some other storage, such that it’s only accessible by the user who uploaded it.
- Share secure content stored on [Walrus](https://docs.wal.app/) or some other storage with a specific allowlist of users.
- Share gated content on a content subscription application with a verified list of subscribers.
- Realize end-to-end private messages using Sui and Walrus.
- Implement secure voting and MEV resilient trading in Move.
Expand All @@ -39,7 +39,7 @@ We’re looking for community feedback on what other capabilities would make sen
Even though Seal is supposed to be a generic and flexible secret management service for a variety of use cases, following are not its supposed goals. We do not recommend using Seal for such use cases and instead ask that you look for a more relevant product / service.

- Seal is not a key management service like [AWS KMS](https://aws.amazon.com/kms/) or any other such Web2 service, in the sense that Seal backends do not store any application or user specific keys. A Seal key server only stores its specific master key pair, where the master public key is used by users to encrypt sensitive data, and the master private key is used to derive identity-based keys to decrypt the data.
- Seal is not a privacy preserving technology like [zkLogin](https://docs.walrus.site/index.html). Instead Seal is supposed to be a collection of components allowing application developers and users to secure sensitive data on- or off-chain by using the security properties of threshold encryption, Sui, and Move.
- Seal is not a privacy preserving technology like [zkLogin](https://docs.sui.io/concepts/cryptography/zklogin). Instead Seal is supposed to be a collection of components allowing application developers and users to secure sensitive data on- or off-chain by using the security properties of threshold encryption, Sui, and Move.
- Seal should not be used to store highly sensitive data like a user’s wallet keys, or regulated personal data like PHI (personal health information), or any local / state / federal government-level secret data, or other data of similar sensitivity. Some advanced capabilities may be added to Seal in future to allow using it for some of such use cases, but those do not exist yet.

### Contact Us
Expand Down
24 changes: 24 additions & 0 deletions examples/frontend/src/EncryptAndUpload.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ export function WalrusUpload({ policyObject, cap_id, moduleName }: WalrusUploadP
});

const services: WalrusService[] = [
{
id: 'service1',
name: 'walrus.space',
publisherUrl: '/publisher1',
aggregatorUrl: '/aggregator1',
},
{
id: 'service2',
name: 'staketab.org',
Expand All @@ -64,6 +70,24 @@ export function WalrusUpload({ policyObject, cap_id, moduleName }: WalrusUploadP
publisherUrl: '/publisher3',
aggregatorUrl: '/aggregator3',
},
{
id: 'service4',
name: 'nodes.guru',
publisherUrl: '/publisher4',
aggregatorUrl: '/aggregator4',
},
{
id: 'service5',
name: 'banansen.dev',
publisherUrl: '/publisher5',
aggregatorUrl: '/aggregator5',
},
{
id: 'service6',
name: 'everstake.one',
publisherUrl: '/publisher6',
aggregatorUrl: '/aggregator6',
},
];

function getAggregatorUrl(path: string): string {
Expand Down
3 changes: 1 addition & 2 deletions examples/frontend/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ export const downloadAndDecrypt = async (
setIsDialogOpen: (open: boolean) => void,
setReloadKey: (updater: (prev: number) => number) => void,
) => {
// TODO: add more aggregators
const aggregators = ['aggregator2', 'aggregator3'];
const aggregators = ['aggregator1', 'aggregator2', 'aggregator3', 'aggregator4', 'aggregator5', 'aggregator6'];
// First, download all files in parallel (ignore errors)
const downloadResults = await Promise.all(
blobIds.map(async (blobId) => {
Expand Down
20 changes: 18 additions & 2 deletions examples/frontend/vercel.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,15 @@
},
{
"source": "/aggregator4/:path*",
"destination": "https://https://walrus-testnet-aggregator.trusted-point.com/:path*"
"destination": "https://walrus-testnet-aggregator.nodes.guru/:path*"
},
{
"source": "/aggregator5/:path*",
"destination": "https://aggregator.walrus.banansen.dev/:path*"
},
{
"source": "/aggregator6/:path*",
"destination": "https://walrus-testnet-aggregator.everstake.one/:path*"
},
{
"source": "/publisher1/:path*",
Expand All @@ -30,7 +38,15 @@
},
{
"source": "/publisher4/:path*",
"destination": "https://walrus-testnet-publisher.trusted-point.com/:path*"
"destination": "https://walrus-testnet-publisher.nodes.guru/:path*"
},
{
"source": "/publisher5/:path*",
"destination": "https://publisher.walrus.banansen.dev/:path*"
},
{
"source": "/publisher6/:path*",
"destination": "https://walrus-testnet-publisher.everstake.one/:path*"
},
{
"source": "/(.*)",
Expand Down
34 changes: 29 additions & 5 deletions examples/frontend/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export default defineConfig({
target: 'https://aggregator.walrus-testnet.walrus.space',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/aggregator/, ''),
rewrite: (path) => path.replace(/^\/aggregator1/, ''),
},
'/aggregator2/v1': {
target: 'https://wal-aggregator-testnet.staketab.org',
Expand All @@ -24,10 +24,22 @@ export default defineConfig({
rewrite: (path) => path.replace(/^\/aggregator3/, ''),
},
'/aggregator4/v1': {
target: 'https://walrus-testnet-aggregator.trusted-point.com',
target: 'https://walrus-testnet-aggregator.nodes.guru',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/aggregator3/, ''),
rewrite: (path) => path.replace(/^\/aggregator4/, ''),
},
'/aggregator5/v1': {
target: 'https://aggregator.walrus.banansen.dev',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/aggregator5/, ''),
},
'/aggregator6/v1': {
target: 'https://walrus-testnet-aggregator.everstake.one',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/aggregator6/, ''),
},
'/publisher1/v1': {
target: 'https://publisher.walrus-testnet.walrus.space',
Expand All @@ -48,10 +60,22 @@ export default defineConfig({
rewrite: (path) => path.replace(/^\/publisher3/, ''),
},
'/publisher4/v1': {
target: 'https://walrus-testnet-publisher.trusted-point.com',
target: 'https://walrus-testnet-publisher.nodes.guru',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/publisher3/, ''),
rewrite: (path) => path.replace(/^\/publisher4/, ''),
},
'/publisher5/v1': {
target: 'https://publisher.walrus.banansen.dev',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/publisher5/, ''),
},
'/publisher6/v1': {
target: 'https://walrus-testnet-publisher.everstake.one',
changeOrigin: true,
secure: false,
rewrite: (path) => path.replace(/^\/publisher6/, ''),
},
},
},
Expand Down
Loading