PIPEBOX
Your files, without the code
Open PipeBox to upload, organize, and download files in your browser. Connect your Solana wallet and sign in, then add credit in Billing if you are getting started. PipeBox uses the same storage balance as your console.
- Open your files after signing in.
- Drag files into the window or choose Upload files.
- Create folders to organize your files.
- Select a file to download or delete it.
Uploads and downloads use the current storage rates. Deletion is permanent; PipeBox does not have a trash folder or version history. Keep a separate copy of files you need to recover.
01 · QUICKSTART
Upload your first file
Connect your wallet and sign in to the storage workspace. Add prepaid USDC credit, wait for payment confirmation, then create a scoped S3 API key. Configure your S3 client with the credentials and your storage endpoint, create a bucket, and upload a file. Your client must use path-style addressing, and your key must allow the bucket you choose.
https://api.pipedev.networkRegion: us-east-1 (or any explicit client region)AWS CLI
export PIPE_STORAGE_ENDPOINT='https://api.pipedev.network'
export AWS_ACCESS_KEY_ID='<access key>'
export AWS_SECRET_ACCESS_KEY='<secret shown once>'
export AWS_DEFAULT_REGION=us-east-1
export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
aws configure set default.s3.addressing_style path
aws --endpoint-url "$PIPE_STORAGE_ENDPOINT" \
s3api create-bucket --bucket example
aws --endpoint-url "$PIPE_STORAGE_ENDPOINT" \
s3 cp ./photo.jpg s3://example/photo.jpg
aws --endpoint-url "$PIPE_STORAGE_ENDPOINT" \
s3 cp s3://example/photo.jpg ./download.jpg02 · BILLING
How prepaid USDC credit works
Pipe credit is purchased with Circle USDC on Solana. Your wallet approves the amount shown at checkout. Once payment is confirmed and credit appears in your account, you can create an S3 key.
Open Billing for current service rates, available top-up amounts, and payment history. The dashboard shows available, spent, and reserved credit. If a payment is interrupted, return to Billing to resume or check its status before starting another.
03 · ACCESS
Scope every S3 key
Creating an S3 key requires purchased Pipe credit. Sign in with your wallet and fund your account. You can then create a key for your wallet or a linked storage identity and limit it to specific buckets and an optional object prefix.
Open the S3 API keys panel after credit appears in your account and choose Create API key. The panel also lets you rotate or revoke existing keys. Existing secret keys cannot be recovered; rotation issues a new secret before disabling the old key.
Link a CLI identity
Use Linked accounts to manage an existing CLI storage identity from your wallet. Linking requires signatures from both your connected wallet and the CLI identity. Enter its public key and signed proof; keep its private key in your CLI environment.
04 · S3 COMPATIBILITY
What works with standard clients
Use the credentials from your environment for the examples below. Configure optional request and response checksums only when required; checksum trailers are not supported.
Use SigV4 headers or presigned URLs for ordinary fixed-payload requests. Buckets are virtual namespaces constrained by each credential's scope.
Global bucket enumeration (ListBuckets) is not supported. Specify your bucket directly, for example aws s3 ls s3://example with the storage endpoint.
Python · boto3
import boto3
# AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY come from your environment.
s3 = boto3.client(
"s3",
endpoint_url="https://api.pipedev.network",
region_name="us-east-1",
config=boto3.session.Config(
signature_version="s3v4",
s3={"addressing_style": "path"},
request_checksum_calculation="when_required",
response_checksum_validation="when_required",
),
)
s3.put_object(Bucket="example", Key="hello.txt", Body=b"hello")JavaScript · AWS SDK v3
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
// Credentials are read from your server environment.
const s3 = new S3Client({
endpoint: "https://api.pipedev.network",
region: "us-east-1",
forcePathStyle: true,
requestChecksumCalculation: "WHEN_REQUIRED",
responseChecksumValidation: "WHEN_REQUIRED",
});
await s3.send(new PutObjectCommand({
Bucket: "example",
Key: "hello.txt",
Body: "Hello, Firestarter!",
}));05 · MULTIPART
Large objects, assembled on complete
Multipart uploads keep each part durable and replaceable, then materialize one final object when the completion list is accepted. The upload book survives router failover.
For files larger than 64 MiB, use multipart uploads with 8 MiB parts. A single large request can exceed the public gateway's request-size limit. With these settings, AWS CLI manages the multipart upload for aws s3 cp:
aws configure set default.s3.multipart_threshold 64MB
aws configure set default.s3.multipart_chunksize 8MB06 · STREAMING
AWS streaming-chunk signatures
PutObject and UploadPart accept AWS's chained streaming payload mode for clients that cannot precompute a fixed body hash. The router verifies each framed chunk before forwarding decoded bytes to storage.
x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD
content-encoding: aws-chunked
x-amz-decoded-content-length: <decoded bytes>Trailer signatures, checksum trailers, SigV4a, and presigned streaming requests are not part of the v1 contract.
07 · BOUNDARIES