Skip to main content

The official Python library for the Picket API (https://picketapi.com/)

Project description

picket-python

The official Python library for the Picket API

Installation

pip install -U picketapi

Usage - Quick Start

Use the Picket class to create the Picket API client. It takes a secret API key as a parameter.

from picketapi import Picket

picket = new Picket("YOU_SECRET_API_KEY")

Nonce

A nonce is random value generated by the Picket API to that user must sign to prove ownership a wallet address. The nonce function can be used to implement your own wallet authentication flow.

A nonce is unique to a project and wallet address. If a nonce doesn't exist for the project and wallet address, Picket will generate a new nonce; otherwise, Picket will return the existing nonce. A nonce is valid for two minutes before self-destructing.

resp = picket.nonce(chain="solana", wallet_address="wAlLetTAdDress")
# resp is of type NonceResponse
print(resp.nonce)

Auth

auth is the server-side equivalent of login. auth should only be used in a trusted server environment. The most common use-case for auth is linking a wallet to an existing application account.

resp = picket.auth(chain="ethereum", wallet_address="0x1234567890", signature="abcdefghijklmnop")
# resp is of type AuthResponse
print(resp.user)
print(resp.access_token)

Authz (Authorize)

authz stands for authorization. Unlike Auth, which handles both authentication and authorization, Authz only handles authorization. Given an authenticated user's access token and authorization requirements, authz will issue a new access token on success (user is authorized) or, on failure, it will return a 4xx HTTP error code.

resp = picket.authz(access_token="xxx.yyy.zzz", requirements={ "contractAddress": "0xContract" })
# resp is of type AuthResponse
print(resp.user)
print(resp.access_token)

Validate

validate validates an access token. validate should be called, or manually access token validation should be done, server-side before trusting a request's access token. It's common to move access token validation and decoding logic to a shared middleware across API endpoints. If the access token is valid, validate returns the decoded claims of the access token.

resp, err := picket.validate(access_token="xxx.yyy.zzz", requirements={"contractAddress": "0xContract", "minTokenBalance": "100"})
# Response is the decoded access token (AuthorizedUser)
print(resp)

Verify Token Ownership

If you only want to verify token ownership server side for a given wallet, tokenOwnership allows you to do just that.

resp = picket.token_ownership(
			chain="solana", 
			wallet_address="waLLETaddRess", 
			requirements={  
			  "collection": "METAPLEX_COLLECTION",
			  "minTokenBalance": "3",
			}
		)
# Response is of type TokenOwnershipResponse
print(resp.allowed)
print(resp.tokenBalances)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

picketapi-0.1.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

picketapi-0.1.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file picketapi-0.1.1.tar.gz.

File metadata

  • Download URL: picketapi-0.1.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.8 Linux/5.15.0-1022-azure

File hashes

Hashes for picketapi-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1e25db25931249e0842729c3515649ade0277cab6da4e7f90238c604d72ae2d2
MD5 6dd0fee426711ed088cf4efad4defe41
BLAKE2b-256 de9ac174114e48c098b981b58715dc026554db342269e3081dbb1c814bb0531b

See more details on using hashes here.

File details

Details for the file picketapi-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: picketapi-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.8 Linux/5.15.0-1022-azure

File hashes

Hashes for picketapi-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cabf07a2ba72524c72e160b77f234f096afef6c2e7f96b2049d052db965fd822
MD5 f9ff68b91f82bbada42eed3782c5dd3f
BLAKE2b-256 696768835fd44d26d4e025f4192e4fd8d0de6c5edff2a75eac8a2067125f2b28

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page