[{"data":1,"prerenderedAt":713},["ShallowReactive",2],{"docs:\u002Fdocs\u002Faccounts":3,"docs:nav":671},{"id":4,"title":5,"badge":6,"body":7,"description":70,"extension":663,"meta":664,"navigation":665,"order":226,"path":666,"section":667,"seo":668,"stem":669,"__hash__":670},"docs\u002Fdocs\u002Faccounts.md","Accounts & billing",null,{"type":8,"value":9,"toc":653},"minimark",[10,29,40,45,48,52,64,107,122,194,201,204,208,214,372,479,492,496,511,514,518,523,537,568,600,604,610,616,619,623,630,634,642,649],[11,12,13,14,18,19,22,23,28],"p",{},"The account API is at ",[15,16,17],"code",{},"https:\u002F\u002Ftessera.storage\u002Fapi\u002Fv1",". It is a different surface from the storage\nAPI at ",[15,20,21],{},"index.tessera.storage",". Storage requests are signed (see\n",[24,25,27],"a",{"href":26},"\u002Fdocs\u002Fauthentication","Authentication","). Account requests use an agent API key.",[11,30,31,32,35,36,39],{},"Accounts are prepaid USD. Usage is metered: storage per 40 MiB block per day, an upload fee per\nblock, and downloads per block. Create an account with ",[15,33,34],{},"POST \u002Fagents",". ",[15,37,38],{},"tessera signup"," calls that\nendpoint.",[41,42,44],"h2",{"id":43},"technical-validation","Technical validation",[11,46,47],{},"Every new account starts at $0.00 with one upload of up to 40 MiB and one download. Tessera covers\nthe hosts for that single validation. The balance stays $0.00. After that upload and download,\ntop up to continue.",[41,49,51],{"id":50},"agent-accounts","Agent accounts",[11,53,54,55,59,60,63],{},"Create the account with the request in ",[24,56,58],{"href":57},"\u002Fdocs\u002Fapi-quickstart","API quickstart",". That call sends ",[15,61,62],{},"X-Altcha"," and returns:",[65,66,71],"pre",{"className":67,"code":68,"language":69,"meta":70,"style":70},"language-json shiki shiki-themes github-dark-default github-dark-default","{ \"account_id\": \"…\", \"api_key\": \"tsk_…_…\" }\n","json","",[15,72,73],{"__ignoreMap":70},[74,75,78,82,86,89,93,96,99,101,104],"span",{"class":76,"line":77},"line",1,[74,79,81],{"class":80},"sb7RM","{ ",[74,83,85],{"class":84},"sV7Mv","\"account_id\"",[74,87,88],{"class":80},": ",[74,90,92],{"class":91},"skZ57","\"…\"",[74,94,95],{"class":80},", ",[74,97,98],{"class":84},"\"api_key\"",[74,100,88],{"class":80},[74,102,103],{"class":91},"\"tsk_…_…\"",[74,105,106],{"class":80}," }\n",[11,108,109,110,113,114,117,118,121],{},"Keys are ",[15,111,112],{},"tsk_\u003Cprefix>_\u003Csecret>",", returned once, stored only as an HMAC digest. Send one as an\n",[15,115,116],{},"Authorization"," bearer header (",[15,119,120],{},"tsk_…",") on every account request.",[123,124,125,138],"table",{},[126,127,128],"thead",{},[129,130,131,135],"tr",{},[132,133,134],"th",{},"Endpoint",[132,136,137],{},"Purpose",[139,140,141,154,164,174,184],"tbody",{},[129,142,143,148],{},[144,145,146],"td",{},[15,147,34],{},[144,149,150,151,153],{},"Create an account and its first key. Needs ",[15,152,62],{},".",[129,155,156,161],{},[144,157,158],{},[15,159,160],{},"GET \u002Fauth\u002Faltcha-challenge",[144,162,163],{},"A single-use proof-of-work challenge.",[129,165,166,171],{},[144,167,168],{},[15,169,170],{},"GET \u002Fagents\u002Fme",[144,172,173],{},"Account summary for the bearer key.",[129,175,176,181],{},[144,177,178],{},[15,179,180],{},"POST \u002Fagents\u002Fme\u002Fkeys",[144,182,183],{},"Mint another key. Shown once.",[129,185,186,191],{},[144,187,188],{},[15,189,190],{},"DELETE \u002Fagents\u002Fme\u002Fkeys\u002F{id}",[144,192,193],{},"Revoke one key.",[11,195,196,197,200],{},"Signup is capped at 3 new accounts per source IP per 24 hours (IPv6: per \u002F64) and 20 per \u002F24\n(IPv6: per \u002F48). Over the cap: ",[15,198,199],{},"429 signup_limit",". Existing accounts signing in are not counted.",[11,202,203],{},"Browser signup is not available on the site. The magic-link endpoints exist; they are not a public\npath today.",[41,205,207],{"id":206},"account-summary","Account summary",[11,209,210,213],{},[15,211,212],{},"GET \u002Faccount"," returns the summary for a bearer caller:",[65,215,217],{"className":67,"code":216,"language":69,"meta":70,"style":70},"{\n  \"billing_id\": \"…\",\n  \"kind\": \"agent\",\n  \"status\": \"active\",\n  \"balance_usd\": \"12.50\",\n  \"open_slabs\": 42,\n  \"egress_used_bytes\": 21000000000,\n  \"days_left\": 23,\n  \"topup_open\": true,\n  \"topup_rails\": { \"nowpayments\": true, \"x402\": true },\n  \"warnings\": []\n}\n",[15,218,219,224,237,250,263,276,290,303,316,329,357,366],{"__ignoreMap":70},[74,220,221],{"class":76,"line":77},[74,222,223],{"class":80},"{\n",[74,225,227,230,232,234],{"class":76,"line":226},2,[74,228,229],{"class":84},"  \"billing_id\"",[74,231,88],{"class":80},[74,233,92],{"class":91},[74,235,236],{"class":80},",\n",[74,238,240,243,245,248],{"class":76,"line":239},3,[74,241,242],{"class":84},"  \"kind\"",[74,244,88],{"class":80},[74,246,247],{"class":91},"\"agent\"",[74,249,236],{"class":80},[74,251,253,256,258,261],{"class":76,"line":252},4,[74,254,255],{"class":84},"  \"status\"",[74,257,88],{"class":80},[74,259,260],{"class":91},"\"active\"",[74,262,236],{"class":80},[74,264,266,269,271,274],{"class":76,"line":265},5,[74,267,268],{"class":84},"  \"balance_usd\"",[74,270,88],{"class":80},[74,272,273],{"class":91},"\"12.50\"",[74,275,236],{"class":80},[74,277,279,282,284,288],{"class":76,"line":278},6,[74,280,281],{"class":84},"  \"open_slabs\"",[74,283,88],{"class":80},[74,285,287],{"class":286},"sEQcL","42",[74,289,236],{"class":80},[74,291,293,296,298,301],{"class":76,"line":292},7,[74,294,295],{"class":84},"  \"egress_used_bytes\"",[74,297,88],{"class":80},[74,299,300],{"class":286},"21000000000",[74,302,236],{"class":80},[74,304,306,309,311,314],{"class":76,"line":305},8,[74,307,308],{"class":84},"  \"days_left\"",[74,310,88],{"class":80},[74,312,313],{"class":286},"23",[74,315,236],{"class":80},[74,317,319,322,324,327],{"class":76,"line":318},9,[74,320,321],{"class":84},"  \"topup_open\"",[74,323,88],{"class":80},[74,325,326],{"class":286},"true",[74,328,236],{"class":80},[74,330,332,335,338,341,343,345,347,350,352,354],{"class":76,"line":331},10,[74,333,334],{"class":84},"  \"topup_rails\"",[74,336,337],{"class":80},": { ",[74,339,340],{"class":84},"\"nowpayments\"",[74,342,88],{"class":80},[74,344,326],{"class":286},[74,346,95],{"class":80},[74,348,349],{"class":84},"\"x402\"",[74,351,88],{"class":80},[74,353,326],{"class":286},[74,355,356],{"class":80}," },\n",[74,358,360,363],{"class":76,"line":359},11,[74,361,362],{"class":84},"  \"warnings\"",[74,364,365],{"class":80},": []\n",[74,367,369],{"class":76,"line":368},12,[74,370,371],{"class":80},"}\n",[123,373,374,384],{},[126,375,376],{},[129,377,378,381],{},[132,379,380],{},"Field",[132,382,383],{},"Meaning",[139,385,386,411,421,431,441,455,469],{},[129,387,388,393],{},[144,389,390],{},[15,391,392],{},"status",[144,394,395,95,398,95,401,95,404,407,408,153],{},[15,396,397],{},"pending",[15,399,400],{},"active",[15,402,403],{},"past_due",[15,405,406],{},"suspended",", or ",[15,409,410],{},"terminated",[129,412,413,418],{},[144,414,415],{},[15,416,417],{},"balance_usd",[144,419,420],{},"Prepaid balance in USD, as a string.",[129,422,423,428],{},[144,424,425],{},[15,426,427],{},"open_slabs",[144,429,430],{},"Slabs currently open.",[129,432,433,438],{},[144,434,435],{},[15,436,437],{},"egress_used_bytes",[144,439,440],{},"Download bytes. On a technical-validation download this is the actual size; after top-up it is billed blocks × 40 MiB.",[129,442,443,448],{},[144,444,445],{},[15,446,447],{},"days_left",[144,449,450,451,454],{},"After top-up: an estimate from balance and burn, not a promise. ",[15,452,453],{},"null"," at $0.00.",[129,456,457,466],{},[144,458,459,462,463],{},[15,460,461],{},"topup_open"," \u002F ",[15,464,465],{},"topup_rails",[144,467,468],{},"Whether top-up is open, and which rail. Check the rail you intend to use.",[129,470,471,476],{},[144,472,473],{},[15,474,475],{},"warnings",[144,477,478],{},"Recent threshold warnings, newest first. Agents poll this; there is no mailbox.",[11,480,481,482,95,485,488,489,153],{},"The response may also carry ",[15,483,484],{},"plan",[15,486,487],{},"period_end",", and ",[15,490,491],{},"included_storage_bytes",[41,493,495],{"id":494},"rates","Rates",[11,497,498,499,502,503,506,507,153],{},"Live rates: ",[15,500,501],{},"GET \u002Fapi\u002Fv1\u002Fbilling\u002Frates"," or ",[15,504,505],{},"tessera rates",". The prices are on\n",[24,508,510],{"href":509},"\u002Fpricing","Pricing",[11,512,513],{},"Storage is metered on logical volume, in 40 MiB blocks. Network redundancy is Tessera's cost,\nalready in the rate. Uploads are metered by what you write; downloads by what you read.",[41,515,517],{"id":516},"top-ups","Top-ups",[11,519,520],{},[24,521],{"id":522},"x402-usdc-on-base",[11,524,525,526,528,529,532,533,153],{},"Check ",[15,527,465],{}," first. A closed rail returns ",[15,530,531],{},"503 topup_closed",". The CLI flow is\n",[24,534,536],{"href":535},"\u002Fwallet","Wallet and top-ups",[11,538,539,542,543,546,547,95,550,553,554,557,558,560,561,564,565,153],{},[15,540,541],{},"POST \u002Fbilling\u002Ftopup"," with ",[15,544,545],{},"{\"amount_usd\": 25}"," returns ",[15,548,549],{},"pay_address",[15,551,552],{},"pay_amount",", and\n",[15,555,556],{},"pay_currency",". Send ",[15,559,552],{}," of that asset on that network. Under the processor minimum the\nresponse is ",[15,562,563],{},"409 below_asset_minimum",". Live minimums: ",[15,566,567],{},"GET \u002Fbilling\u002Ftopup\u002Fminimums",[11,569,570,573,574,577,578,581,582,585,586,589,590,593,594,596,597,599],{},[15,571,572],{},"\"mode\": \"invoice\""," returns a hosted invoice. An address top-up in USDC on Base, through checkout,\nhas a minimum of about $0.38. ",[15,575,576],{},"\"rail\": \"x402\""," is USDC on Base. x402 and the built-in wallet start\nat $0.01. A ",[15,579,580],{},"402"," carries the challenge. Sign an EIP-3009 ",[15,583,584],{},"TransferWithAuthorization","\nand retry with ",[15,587,588],{},"PAYMENT-SIGNATURE",". Settled payments return ",[15,591,592],{},"200"," and the new ",[15,595,417],{},". A\nrefused authorization returns a fresh ",[15,598,580],{},"; a retry with a new authorization is not double-charged.",[41,601,603],{"id":602},"suspension-and-deletion","Suspension and deletion",[11,605,606,607,609],{},"If the balance cannot cover usage, the account moves to ",[15,608,403],{}," and keeps serving through a\ngrace window rather than stopping immediately. Stored data stays retrievable during grace.",[11,611,612,613,615],{},"Warnings fire at the threshold days-left values and at zero, on the ",[15,614,475],{}," array.",[11,617,618],{},"Unpaid past grace, the account is suspended. Funding stops. Contracts already funded are not\nrenewed. When those contracts end, the storage credential is revoked, objects are removed, and\nslabs are queued for pruning. Deletion is not reversible. Export first. Billing records are\nretained as required.",[41,620,622],{"id":621},"recovery-phrase","Recovery phrase",[11,624,625,626,153],{},"Storage registration returns a 12-word phrase once. Tessera cannot recover a lost phrase. Restoring a machine with the CLI is in the ",[24,627,629],{"href":628},"\u002Fdocs\u002Fquickstart","CLI quickstart",[41,631,633],{"id":632},"deleting-your-account","Deleting your account",[11,635,636,542,639,153],{},[15,637,638],{},"POST \u002Faccount\u002Fdelete",[15,640,641],{},"{\"confirm_account_id\":\"\u003Cyour id>\"}",[11,643,644,645,648],{},"Deletion revokes every key and session, deletes stored files, and stops billing. It cannot be\nundone. No balance is refunded; the response reports ",[15,646,647],{},"balance_forfeited_usd",". A closed account\ncannot sign in or be restored from its phrase.",[650,651,652],"style",{},"html pre.shiki code .sb7RM, html code.shiki .sb7RM{--shiki-default:#E6EDF3;--shiki-dark:#E6EDF3}html pre.shiki code .sV7Mv, html code.shiki .sV7Mv{--shiki-default:#7EE787;--shiki-dark:#7EE787}html pre.shiki code .skZ57, html code.shiki .skZ57{--shiki-default:#A5D6FF;--shiki-dark:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sEQcL, html code.shiki .sEQcL{--shiki-default:#79C0FF;--shiki-dark:#79C0FF}",{"title":70,"searchDepth":239,"depth":239,"links":654},[655,656,657,658,659,660,661,662],{"id":43,"depth":226,"text":44},{"id":50,"depth":226,"text":51},{"id":206,"depth":226,"text":207},{"id":494,"depth":226,"text":495},{"id":516,"depth":226,"text":517},{"id":602,"depth":226,"text":603},{"id":621,"depth":226,"text":622},{"id":632,"depth":226,"text":633},"md",{},true,"\u002Fdocs\u002Faccounts","Guides",{"title":5,"description":70},"docs\u002Faccounts","NdD0tj5lkdgmX3QnCjrO1eE-EtyfGA3aOdKCxL35lK0",[672,673,676,680,683,686,689,692,693,697,701,704,707,710],{"path":666,"title":5,"description":70,"section":667,"order":226,"badge":6},{"path":57,"title":58,"description":674,"section":675,"order":77,"badge":6},"Create a billing account over HTTP, then register a storage key with the SDK.","API",{"path":677,"title":678,"description":70,"section":679,"order":265,"badge":6},"\u002Fdocs\u002Fapi\u002Faccount","Account","API reference",{"path":681,"title":682,"description":70,"section":679,"order":252,"badge":6},"\u002Fdocs\u002Fapi\u002Fobjects","Objects",{"path":684,"title":685,"description":70,"section":679,"order":226,"badge":6},"\u002Fdocs\u002Fapi\u002Fplacement","Placement",{"path":687,"title":688,"description":70,"section":679,"order":77,"badge":6},"\u002Fdocs\u002Fapi\u002Fprovisioning","Credentials",{"path":690,"title":691,"description":70,"section":679,"order":239,"badge":6},"\u002Fdocs\u002Fapi\u002Fslabs","Slabs",{"path":26,"title":27,"description":70,"section":667,"order":239,"badge":6},{"path":694,"title":695,"description":70,"section":696,"order":226,"badge":6},"\u002Fdocs\u002Fconcepts","Concepts & data model","Introduction",{"path":698,"title":699,"description":70,"section":700,"order":77,"badge":6},"\u002Fdocs\u002Ferrors","Errors","Reference",{"path":702,"title":703,"description":70,"section":675,"order":77,"badge":6},"\u002Fdocs","Overview",{"path":705,"title":706,"description":70,"section":700,"order":226,"badge":6},"\u002Fdocs\u002Flimits","Limits & quotas",{"path":628,"title":629,"description":708,"section":709,"order":77,"badge":6},"Install the CLI, create an account, store one file, and read it back.","CLI",{"path":711,"title":712,"description":70,"section":667,"order":252,"badge":6},"\u002Fdocs\u002Frecovery","Recovery without Tessera",1794060204952]