01 · QUICKSTART
Upload your first object
Storage uses path-style addressing. Create credit and an S3 key from the storage workspace, then point your client at the endpoint below.
https://api.pipedev.networkRegion: us-east-1 (or any explicit client region)export AWS_ACCESS_KEY_ID='<access key>'
export AWS_SECRET_ACCESS_KEY='<secret shown once>'
export AWS_DEFAULT_REGION=us-east-1
aws --endpoint-url https://api.pipedev.network \
s3api create-bucket --bucket example
aws --endpoint-url https://api.pipedev.network \
s3 cp ./photo.jpg s3://example/photo.jpg
aws --endpoint-url https://api.pipedev.network \
s3 cp s3://example/photo.jpg ./photo.jpg02 · BILLING
Fund usage with prepaid USDC
Storage credit is purchased with Circle USDC on Solana. The wallet signs an exact x402 payment, Pipe settles it, and the credit becomes available after finalized confirmation.
The dashboard shows available, spent, and reserved credit. A retry of the same payment invoice cannot double-credit the account.
03 · ACCESS
Scope every S3 key
Authenticate to the dashboard by signing a short-lived message with your wallet. Create a key for a credit identity and limit it to specific buckets and an optional object prefix.
Open the storage workspace, sign in, and use the S3 access panel to create, rotate, or revoke credentials. Existing secret keys cannot be recovered; rotation issues a new secret before disabling the old key.
04 · S3 COMPATIBILITY
What works with standard clients
Use SigV4 headers or presigned URLs for ordinary fixed-payload requests. Buckets are virtual namespaces constrained by each credential's scope.
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://api.pipedev.network",
region_name="us-east-1",
aws_access_key_id="<access key>",
aws_secret_access_key="<secret>",
config=boto3.session.Config(
signature_version="s3v4",
s3={"addressing_style": "path"},
),
)
s3.put_object(Bucket="example", Key="hello.txt", Body=b"hello")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.
06 · 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